LabVIEW虚拟仪器数据采集与通信控制35例
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

实例5 PCI-1710HG数据采集卡数字量输出

一、设计任务

采用LabVIEW语言编写程序实现PC与PCI-1710HG数据采集卡数字量输出。

任务要求如下:在程序界面中执行“打开”/“关闭”命令,界面中信号指示灯变换颜色,同时,线路中数字量输出端口输出高/低电平。

二、线路连接

PC与PCI-1710HG数据采集卡组成的数字量输出线路如图3-20所示。

图3-20 PC与PCI-1710HG数据采集卡组成的数字量输出线路

图3-20中,PCI-1710HG数据采集卡数字量输出1通道(端口13和39)接三极管基极,当计算机输出控制信号置13端口为高电平时,三极管导通,继电器常开开关KM1闭合,指示灯L亮;当置13端口为低电平时,三极管截止,继电器常开开关KM1打开,指示灯L灭。

也可使用万用表直接测量各数字量输出通道与数字地(如DO1与DGND)之间的输出电压(高电平或低电平)来判断数字量输出状态。

本实例用到的硬件包括PCI-1710HG数据采集卡,PCL-10168数据线缆,ADAM-3968接线端子(使用数字量输出DO通道),继电器(DC 24V),指示灯(DC 24V),直流电源(输出DC 24V),电阻(10kΩ),三极管等。

三、任务实现

1.设计程序前面板

(1)为了输出数字信号,添加1个垂直滑动杆开关控件:控件→新式→布尔→垂直滑动杆开关,将标签改为“开关”。

(2)为了显示数字输出信号状态,添加1个指示灯控件:控件→新式→布尔→圆形指示灯,将标签改为“指示灯”。

(3)为了关闭程序,添加1个停止按钮控件:控件→新式→布尔→停止按钮。

用画线工具将指示灯控件、开关控件等连接起来。

设计的程序前面板如图3-21所示。

图3-21 程序前面板

2.框图程序设计

在进行LabVIEW编程之前,必须首先安装研华设备管理程序(Device Manager)、32bit DLL驱动程序及研华板卡LabVIEW驱动程序。

(1)添加选择设备函数:函数→用户库→Advantech DA&C(研华公司的LabVIEW函数库)→EASYIO→SelectPOP→SelectDevicePop.vi。

(2)添加打开设备函数:函数→用户库→Advantech DA&C→ADVANCE→DeviceManager→DeviceOpen.vi。

(3)添加关闭设备函数:函数→用户库→ADVANCE→DeviceManager→DeviceClose.vi。

(4)添加While循环结构:函数→编程→结构→While 循环。

以下添加的函数或结构放置在While循环结构框架中。

图3-22 SlowDIO函数库

(5)添加写端口位函数:函数→用户库→Advantech DA&C→ADVANCE→SlowDIO→DIOWriteBit.vi,如图3-22所示。

(6)添加4个数值常量:函数→编程→数值→数值常量,值分别为设备号0、DO通道号1、比较量0、时钟周期200。

(7)添加1个布尔值至(0,1)转换函数:函数→编程→布尔→布尔值至(0,1)转换。

(8)添加1个“等于?”函数:函数→编程→比较→等于。

(9)添加1个时钟函数:函数→编程→定时→等待下一个整数倍毫秒。

(10)添加非函数:函数→编程→布尔→非,并从外拖入控件While 循环中。

(11)添加1个条件结构:函数→编程→结构→条件结构。

(12)在条件结构的真(True)选项中,添加1个数值常量(值为0):函数→编程→数值→数值常量。

(13)在条件结构的真选项中,添加1个“不等于0?”函数:函数→编程→比较→不等于0?。

(14)在条件结构的假(False)选项中,添加1个数值常量(值为1):函数→编程→数值→数值常量。

(15)在条件结构的假选项中,添加1个“不等于0?”函数:函数→编程→比较→不等于0?。

(16)在条件结构的假(False)选项中,添加1个局部变量:函数→编程→结构→局部变量。

选择局部变量,单击鼠标右键,在弹出菜单的选项下,为局部变量选择控件“指示灯”,设置为“写”属性。

(17)分别将垂直滑动杆开关控件(标签为“开关”)、停止按钮控件(标签为“Stop”)等从外拖入循环结构中;将指示灯控件(标签为“指示灯”)放入条件结构的真(True)选项中。

(18)将函数SelectDevicePop.vi的输出端口“DevNum”与函数DeviceOpen.vi的输入端口“DevNum”相连。

(19)将函数DeviceOpen.vi的输出端口“DevHandle”与函数DIOWriteBit.vi的输入端口“DevHandle”相连。

(20)将数值常量(值为0,设备号)与函数DIOWriteBit.vi的输入端口“Port”相连。

(21)将数值常量(值为1,通道号)与函数DIOWriteBit.vi的输入端口“BitPos”相连。

(22)将函数 DIOWriteBit.vi 的输出端口 DevHandle 与函数 DeviceClose.vi 的输入端口“DevHandle”相连。

(23)将开关控件(标签为“开关”)与布尔值至(0,1)转换函数的输入端口“布尔”相连。

(24)将布尔值至(0,1)转换函数的输出端口(0,1)与函数DIOWriteBit.vi的输入端口“State”相连。

将布尔值至(0,1)转换函数的输出端口(0,1)与比较函数“等于?”的输入端口“x”相连。

(25)将数值常量(值为0)与“等于?”函数的输入端口“y”相连。

(26)将“等于?”函数的输出端口“x = y?”与条件结构上的选择端口相连。

(27)在条件结构的真(True)选项中,将数值常量(值为0)与“不等于0?”函数的输入端口x相连;将“不等于0?”函数的输出端口“x != 0?”与指示灯控件相连。

(28)在条件结构的假(False)选项中,将数值常量(值为1)与“不等于0?”函数的输入端口x相连;将“不等于0?”函数的输出端口“x != 0?”与局部变量“指示灯”相连。

(29)将数值常量(值为200,时钟周期)与等待下一个整数倍毫秒函数的输入端口“毫秒倍数”相连。

(30)将停止按钮控件与非函数的输入端口“x”相连。

(31)将非函数的输出端口“非x ?”与循环结构的条件端子相连。

设计的框图程序如图3-23所示。

3.运行程序

单击快捷工具栏“运行”按钮,运行程序。

运行“SelectDevicePop.vi”子程序,选择研华板卡设备PCI-1710HG。

用鼠标推动程序界面中开关,界面中指示灯亮/灭(颜色改变),同时,线路中数字量输出通道输出高/低电平。

程序运行界面如图3-24所示。

图3-23 框图程序

图3-24 程序运行界面