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

实例1 PCI-6023E数据采集卡数字量输入

一、设计任务

采用LabVIEW语言编写程序实现PC与PCI-6023E数据采集卡数字信号输入。

任务要求如下:利用开关产生数字(开关)信号(0或1),作用于板卡数字量输入通道,使PC程序界面中信号指示灯颜色改变。

二、线路连接

PC与PCI-6023E数据采集卡组成的数字量输入线路如图2-6所示。

首先将PCI-6023E数据采集卡通过R6868数据电缆与CB-68LP接线端子板连接,然后将其他元器件连接到接线端子板上。

图2-6中,由光电接近开关(也可采用电感接近开关)控制1个继电器KM,继电器有2个常开开关,其中1个常开开关KM1接信号指示灯L,另一个常开开关KM2接数据采集卡数字量输入6通道(端口16,50)或其他通道。

也可直接使用按钮、行程开关等的常开触点接数字量输入端口16和50。

图2-6 PC与PCI-6023E数据采集卡组成的数字量输入线路

其他数字量输入通道信号输入接线方法与通道6相同。

实际测试中,可用导线将数字量输入端口(如16端口)与数字地(50端口)之间短接或断开,产生数字量输入信号。

注意:在进行LabVIEW编程之前,首先必须安装NI数据采集卡驱动程序以及传统DAQ函数。

三、任务实现

方法1:采用读写一条数字线的方式实现数字量输入

1.设计程序前面板

新建VI。切换到LabVIEW的前面板窗口,通过控件选板给程序前面板添加控件。

(1)为了显示数字量输入状态,添加1个指示灯控件:控件→布尔→圆形指示灯。将标签改为“端口状态”。

(2)为了输入数字量输入端口号:添加1个数值输入控件:控件→数值→数值输入控件。标签为“端口号”,将初始值设为“6”。

(3)为了设置办卡通道号,添加1个通道设置控件:控件→I/O→传统DAQ通道。标签改为“Traditional DAQ Channel”(传统DAQ通道)。初始值设为0,并设为默认值。

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

设计的程序前面板如图2-7所示。

图2-7 程序前面板

2.框图程序设计

切换到LabVIEW的程序框图窗口,添加节点与连线。

(1)添加1个While循环结构:函数→结构→While循环。

以下在While循环结构框架中添加节点并连线。

(2)添加1个读数字量函数:函数→测量I/O→Data Acquisition→Digital I/O→Read from Digital Line.vi,如图2-8所示。该函数读取用户指定的数字口上的某一位的逻辑状态。

图2-8 添加Read from Digital Line.vi函数

(3)添加1个数值常量:函数→数值→数值常量。将值设为“1”(板卡设备号)。

(4)将前面板添加的所有控件对象的图标移到While循环结构框架中。

(5)将数值常量“1”(板卡设备号)与Read from Digital Line.vi函数的输入端口“Device”相连。“Device”端口表示数字输入输出应用的设备编号。

(6)将传统DAQ通道控件与Read from Digital Line.vi函数的输入端口“digital channel”相连。“digital channel”端口表示数字端口号或在信道向导中设置的数字信道名。

(7)将数值输入控件(标签为“端口号”)与Read from Digital Line.vi函数的输入端口“Line”相连。“Line”端口表示数字端口中的数字线号或位。

(8)将Read from Digital Line.vi函数的输出端口“Line state”与指示灯控件(标签为“端口状态”)相连。“Line state”端口表示数字线或位的状态。这个参数对于Read from Digital Line.vi是一个输出量,当数字线处于关的状态就返回“False”,当数字线处于开的状态就返回“True”。

(9)将停止按钮控件与循环结构的条件端口相连。

设计的框图程序如图2-9所示。

3.运行程序

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

通过接近开关打开/关闭数字量输入6通道“开关”(或用导线将16和50端口短接或断开),产生开关(数字)输入信号,程序画面中信号指示灯颜色改变。

程序运行界面如图2-10所示。

图2-9 框图程序

图2-10 程序运行界面

方法2:采用读写一个数字端口的方式实现数字量输入

1.设计程序前面板

新建VI。切换到LabVIEW的前面板窗口,通过控件选板给程序前面板添加控件。

(1)为了显示各数字量输入端口状态,添加1个数组控件:控件→数组、矩阵与簇→数组。标签改为“输入端口显示”。往数组框里放置“方形指示灯”控件。将数组中的指示灯个数设置为8个。

(2)为了设置板卡通道,添加1个通道设置控件:控件→I/O→传统DAQ通道。标签改为“Traditional DAQ Channel”(传统DAQ通道)。初始值设为0,并设为默认值。

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

设计的程序前面板如图2-11所示。

图2-11 程序前面板

2.框图程序设计

切换到LabVIEW的程序框图窗口,添加节点与连线。

(1)添加1个循环结构:函数→结构→While循环。

以下在While循环结构框架中添加节点并连线。

(2)添加1个读数字量函数:函数→测量I/O→Data Acquisition→Digital I/O→Read from Digital Port.vi,如图2-12所示。

图2-12 添加Read from Digital Port.vi函数

Read from Digital Port.vi 函数用于读一个用户指定的数字口。它与 Read from Digital Line.vi在参数上的不同是,由于它是对整个端口操作,所以没有line和line state这两个参数,而增加了一个波形样式参数 Pattern,它返回一个端口所有数字线的状态。其余参数的意义相同。

Pattern参数是一个整型数,它的二进制形式各个位上的0和1对应数字端口8个数字线的状态。用布尔函数子选板的“数值至布尔数组转换”函数和“布尔数组至数值转换”函数,可以将整型数与布尔数组之间进行转换。转换为布尔数组之后,整型数二进制格式各个位的0和1,转换为数组各个成员的FALSE和TRUE,这样与数字线的对应关系更为直观(数组成员索引号与数字端口的数字线序号一一对应)。

(3)添加1个数值常量:函数→数值→数值常量。将值设为“1”(板卡设备号)。

(4)添加1个数值转布尔数组函数:函数→数值→转换→数值至布尔数组转换。

(5)将前面板添加的所有控件对象的图标移到循环结构框架中。

(6)将数值常量“1”(板卡设备号)与Read from Digital Port.vi函数的输入端口“Device”相连。

(7)将传统DAQ通道控件与Read from Digital Port.vi函数的输入端口“digital channel”相连。

(8)将Read from Digital Port.vi函数的输出端口“Pattern”与数值至布尔数组转换函数的输入端口“数字”相连。

(9)将数值至布尔数组转换函数的输出端口“布尔数组”与数组控件(标签为“输入端口显示”)的输入端口相连。

(10)将停止按钮控件与While循环结构的条件端口相连。

设计的框图程序如图2-13所示。

图2-13 框图程序

3.运行程序

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

通过接近开关打开/关闭数字量输入6通道“开关”(或用导线将16和50端口短接或断开),产生开关(数字)输入信号,程序画面中信号指示灯颜色改变。

程序运行界面如图2-14所示。

图2-14 程序运行界面