实例2 PCI-6023E数据采集卡数字量输出
一、设计任务
采用LabVIEW语言编写程序实现PC与PCI-6023E数据采集卡数字信号输出。
任务要求:在 PC 程序画面中执行“打开/关闭”命令,画面中信号指示灯变换颜色,同时,线路中数字量输出端口输出高/低电平,信号指示灯亮/灭。
二、线路连接
PC与PCI-6023E数据采集卡组成的数字量输出线路如图2-15所示。
图2-15 PC与PCI-6023E数据采集卡组成的数字量输出线路
首先将PCI-6023E数据采集卡通过R6868数据电缆与CB-68LP接线端子板连接,然后将其他元器件连接到接线端子板上。
图2-15中,数据采集卡数字量输出1通道(PO.1,端口17)接三极管基极,当计算机输出控制信号置17端口为高电平时,三极管导通,继电器KM常开开关KM1闭合,指示灯L亮;当置17端口为低电平时,三极管截止,继电器KM常开开关KM1打开,指示灯L灭。
也可使用万用表直接测量各数字量输出1通道与数字地(如端口17与端口53)之间的输出电压(高电平或低电平)来判断数字量输出状态。
其他数字量输出通道信号输出接线方法与1通道相同。
也可不连线,使用万用表直接测量数字量输出1通道(端口17与端口53)之间的输出电压(高电平或低电平)。
注意:在进行LabVIEW编程之前,首先必须安装NI板卡驱动程序以及传统DAQ函数。
三、任务实现
方法1:采用读写一条数字线的方式实现数字量输出
1.设计程序前面板
新建VI。切换到LabVIEW的前面板窗口,通过控件选板给程序前面板添加控件。
(1)为了显示数字量输出状态,添加1个指示灯控件:控件→布尔→圆形指示灯。标签为“指示灯”。
(2)为了改变数字量输出状态,添加1个滑动开关控件:控件→布尔→垂直滑动杆开关。标签为“置位按钮”。
(3)为了设置数字量输出端口号,添加1个数值输入控件:控件→数值→数值输入控件。标签为“端口号”。
(4)为了设置板卡通道号,添加1个通道设置控件:控件→I/O→传统DAQ通道。标签改为“Traditional DAQ Channel”(传统DAQ通道)。初始值设为0,并设为默认值。
(5)为了关闭程序,添加1个停止按钮控件:控件→布尔→停止按钮。
设计的程序前面板如图2-16所示。
2.框图程序设计
切换到LabVIEW的程序框图窗口,添加节点与连线。
(1)添加1个循环结构:函数→结构→While循环。
以下在While循环结构框架中添加函数并连线。
(2)添加1个写数字量函数:函数→测量 I/O→Data Acquisition→Digital I/O→Write to Digital Line.vi,如图2-17所示。该函数用于把用户指定的一个数字口上的某一位设置为逻辑1或0。
图2-16 程序前面板
图2-17 添加Write to Digital Line.vi函数
(3)添加1个数值常量:函数→数值→数值常量。将值设为“1”(板卡设备号)。
(4)将前面板添加的传统DAQ通道控件、数值输入控件(标签为“端口号”)、滑动开关控件(标签为“置位按钮”)、指示灯控件和停止按钮控件的图标移到循环结构框架中。
(5)将数值常量“1”(板卡设备号)与Write to Digital Line.vi函数的输入端口“Device”相连。“Device”端口表示数字输入输出应用的设备编号。
(6)将传统DAQ通道控件与Write to Digital Line.vi函数的输入端口“digital channel”相连。“digital channel”端口表示数字端口号或在信道向导中设置的数字信道名。
(7)将数值输入控件(标签为“端口号”)与Write to Digital Line.vi函数的输入端口“Line”相连。“Line”端口指定了数字端口中要进行操作的数字线或位。
(8)将滑动开关控件(标签为“置位按钮”)与Write to Digital Line.vi函数的输入端口“Line state“相连。“Line state”端口决定数字线或位的状态是“True”还是“False”。这个参数对于Write to Digital Line.vi是一个输入量,要将数字线置于关的状态就输入FALSE,要将数字线置于开的状态就输入TRUE。
(9)将滑动开关控件与指示灯控件(标签为“指示灯”)相连。
(10)将停止按钮控件与循环结构的条件端口相连。
设计的框图程序如图2-18所示。
3.运行程序
单击快捷工具栏“运行”按钮,运行程序:
首先选择端口号1,单击程序画面中开关(打开或关闭),画面中指示灯改变颜色,同时,线路中数据采集卡数字量输出1通道置高/低电平,指示灯亮/灭。
可使用万用表直接测量数字量输出1通道(端口17与端口53之间)的输出电压来判断数字量输出状态。
程序运行界面如图2-19所示。
图2-18 框图程序
图2-19 程序运行界面
方法2:采用读写一个数字端口的方式实现数字量输出
1.设计程序前面板
新建VI。切换到LabVIEW的前面板窗口,通过控件选板给程序前面板添加控件。
(1)为了生成数字量输出状态值,添加1个数组控件:控件→数组、矩阵与簇→数组。标签改为“输出端口控制”。往数组框里放置“方形指示灯”控件,属性设为“输入”。设置方法:右击数组框架中的指示灯对象,从弹出的快捷菜单中选择“转换为输入控件”。将数组中的指示灯个数设置为8个。
(2)为了设置板卡通道号,添加1个通道设置控件:控件→I/O→传统DAQ通道。标签改为“Traditional DAQ Channel”(传统DAQ通道)。初始值设为0,并设为默认值。
(3)为了关闭程序,添加1个停止按钮控件:控件→布尔→停止按钮。
设计的程序前面板如图2-20所示。
图2-20 程序前面板
2.框图程序设计
切换到LabVIEW的程序框图窗口,添加节点与连线。
(1)添加1个循环结构:函数→结构→While 循环。
以下在While循环结构框架中添加节点并连线。
(2)添加1个写数字量函数:函数→测量 I/O→Data Acquisition→Digital I/O→Write to Digital Port.vi,如图2-21所示。
图2-21 添加Write to Digital Port.vi函数
Write to Digital Port.vi与Write to Digital Line.vi在参数上的不同是,由于前者是对整个端口操作,所以没有line和line state这两个参数,而增加了一个波形样式参数Pattern,它控制一个端口所有数字线的状态。其余参数的意义相同。
(3)添加1个数值常数:函数→数值→数值常量。将值设为1(板卡设备号)。
(4)添加1个布尔型数组转数值函数:函数→数值→转换→布尔数组至数值转换。
(5)将前面板添加的所有控件对象的图标移到循环结构框架中。
(6)将数值常量“1”(板卡设备号)与Write to Digital Port.vi函数的输入端口“Device”相连。
(7)将传统DAQ通道控件与Write to Digital Port.vi函数的输入端口“digital channel”相连。
(8)将数组控件(标签为“输出端口控制”)与布尔数组至数值转换函数的输入端口“布尔数组”相连。
(9)将布尔数组至数值转换函数的输出端口“数字”与Write to Digital Port.vi函数的输入端口“Pattern”相连。
(10)将停止按钮控件与循环结构的条件端口相连。
设计的框图程序如图2-22所示。
图2-22 框图程序
3.运行程序
单击快捷工具栏“运行”按钮,运行程序。
用鼠标单击程序画面数组中各指示灯,相应指示灯亮/灭(颜色改变),同时,线路中相应的数字量输出通道输出高/低电平。
程序运行界面如图2-23所示。
图2-23 程序运行界面