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

实例3 PCI-6023E数据采集卡温度测控

一、设计任务

采用LabVIEW语言编写应用程序实现PC与PCI-6023E数据采集卡温度测控。

任务要求:自动连续读取并显示温度测量值;绘制测量温度实时变化曲线;实现温度上、下限报警指示并能在程序运行中设置报警上、下限值。

二、线路连接

PC与PCI-6023E数据采集卡组成的温度测控线路如图2-24所示。

图2-24 PC与PCI-6023E数据采集卡组成的温度测控线路

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

图2-24中,温度传感器 Pt100热电阻检测温度变化,通过温度变送器(测量范围0~200℃)转换为4~20mA 电流信号,经过250Ω电阻转换为1~5V电压信号送入数据采集卡模拟量输入0通道(端口68和67)。检测到的电压值经过换算就可得到温度值。温度与电压的数学关系是:温度=(电压-1)×50。

当检测温度大于等于计算机程序设定的上限值时,计算机输出控制信号,使数据采集卡数字量输出1通道PO.1(端口17)置高电平,晶体管V1导通,继电器KM1常开开关KM11闭合,指示灯L1亮;当检测温度小于等于计算机程序设定的下限值,计算机输出控制信号,使数据采集卡数字量输出2通道PO.2(端口49)置高电平,晶体管V2导通,继电器KM2常开开关KM21闭合,指示灯L2亮。

还需进行 AI 参数设置。运行 Measurement & Automation 软件,在参数设置对话框中的AI 设置项,设置模拟信号输入时的量程为-10.0~+10.0V,输入方式采用 Reference Single Ended(单端有参考地输入)。

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

三、任务实现

1.设计程序前面板

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

(1)为了实时显示测量温度实时变化曲线,添加1个波形图表控件:控件→图形→波形图表。标签改为“温度变化曲线”,将Y轴标尺范围改为0~100。

(2)为了显示板卡采集值,添加1个数值显示控件:控件→数值→数值显示控件。标签为“温度值”。

(3)为了设置温度上下限值,添加2个数值输入控件:控件→数值→数值输入控件。标签分别改为“上限值”和“下限值”,将其初始值分别设为“50”和“20”。

(4)为了显示测量温度超限状态,添加2个指示灯控件:控件→布尔→圆形指示灯。将标签分别改为“上限灯”和“下限灯”。

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

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

图2-25 程序前面板

2.框图程序设计

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

1)温度采集程序设计

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

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

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

(3)添加1个数值常量:函数→数值→数值常量。值设为“500”。

(4)将数值常量“500”与时钟函数的输入端口相连。

(5)将停止按钮图标移到While循环结构框架中。将停止按钮与循环结构的条件端口相连。

(6)添加1个顺序结构:函数→结构→层叠式顺序结构(LabVIEW2015以后版本结构子选板中没有直接提供层叠式顺序结构,可先添加平铺式顺序结构,右击边框,弹出快捷菜单,选择“替换为层叠式顺序”)。

将其帧设置为2个(序号0~1)。设置方法:右击顺序式结构上边框,在弹出的快捷菜单中执行“在后面添加帧”选项1次。

在顺序结构框架0中添加函数并连线。

(7)添加1个模拟电压输入函数:函数→测量I/O→Data Acquisition→Analog Input→AI Acquire Waveforms .vi,如图2-26所示。

图2-26 添加AI Acquire Waveform .vi函数

AI Acquire Waveform.vi函数的主要功能是实现单通道数据采集。它有如下几个重要的输入数据端口,分别是device、channel、number of samples以及sample rate。这四个输入数据端口分别用于指定数据采集卡的器件编号、通道编号、采样点数量以及采样速率。其中采样速率不能高于数据采集卡所允许的最高采样速率。AI Acquire Waveform.vi函数的输出数据端口Waveform用于连接Waveform数据类型的控件。

(8)添加6个数值常量:函数→数值→数值常量,将值分别设为1、1000、1000、0、1和50。

(9)添加1个字符串常量:函数→字符串→字符串常量,将值改为“0,1,2,3”。

(10)将数值常量1、1000、1000分别与AI Acquire Waveforms .vi函数的输入端口device、number of samples/ch、scan rate相连。

经过上面的简单设置,程序便可以对任意device number所对应的数据采集硬件的任意一个通道的电压进行数据采集了,采集速率和采集的数据点的个数分别由number of samples和sample rate决定。采集后的数据被实时显示在示波器窗口波形图形上面。

(11)将字符串“0,1,2,3”与AI Acquire Waveforms .vi函数的输入端口“channel(string)”相连。

(12)添加1个索引数组函数:函数→数组→索引数组。

(13)将AI Acquire Waveforms .vi函数的输出端口“waveforms”与索引数组函数的输入端口“数组”相连。

(14)将数值常量“0”与索引数组函数的输入端口“索引”相连。

(15)添加1个减函数:函数→数值→减。

(16)添加1个乘函数:函数→数值→乘。

(17)将索引数组函数的输出端口“元素”与减函数的输入端口“x”相连。

(18)将数值常量“1”与减函数的输入端口“y”相连。

(19)将减函数的输出端口“x-y”与乘函数的输入端口“x”相连。

(20)将数值常量“50”与乘函数的输入端口“y”相连。

(21)将数值显示控件(标签为“温度值”)、波形显示控件(标签为“温度变化曲线”)移到顺序结构框架 0中。

(22)将乘函数的输出端口“x*y”分别与数值显示控件、波形显示控件相连。

其中第(17)~(22)步的作用是将检测的电压值转换为温度值(温度=(电压-1)*50)。

框架0中连接好的框图程序如图2-27所示。

图2-27 温度采集框图程序

2)超温控制程序设计

以下在顺序结构框架 1中添加节点并连线。

(1)添加2个写数字量函数:函数→测量 I/O→Data Acquisition→Digital I/O→Write to Digital Line.vi。

(2)添加4个数值常量:函数→数值→数值常量。将值分别设为“1”“1”“1”和“2”。

(3)添加2个字符串常量:函数→字符串→字符串常量。将值均设为“0”。

(4)添加1个局部变量:函数→结构→局部变量。

右击局部变量图标,在弹出的快捷菜单中,从“选择项”子菜单为局部变量选择对象“温度值”。单击该局部变量,在弹出菜单中选择“转换为读取”。

(5)添加1个比较函数:函数→比较→“大于等于?”。

(6)添加1个比较函数:函数→比较→“小于等于?”。

(7)将数值输入控件“上限值”和“下限值”以及“上限灯”控件和“下限灯”控件移到顺序结构框架1中。

(8)将2个数值常量“1”(板卡设备号)分别与2个Write to Digital Line.vi函数的输入端口“Device”相连。

(9)将2个字符串常量“0”(通道号)分别与2个Write to Digital Line.vi函数的输入端口“digital channel”相连。

(10)将数值常量“1”和“2”(端口号)分别与2个Write to Digital Line.vi函数的输入端口“Line”相连。

(11)将“温度值”局部变量与“大于等于?”比较函数的输入端口“x”相连。

(12)将“温度值”局部变量与“小于等于?”比较函数的输入端口“x”相连。

(13)将数值输入控件“上限值”与“大于等于?”比较函数的输入端口“y”相连。

(14)将数值输入控件“下限值”与“小于等于?”比较函数的输入端口“y”相连。

(15)将“大于等于?”比较函数的输出端口“x>=y?”与Write to Digital Line.vi函数(上)的输入端口“Line state”相连。

(16)将“小于等于?”比较函数的输出端口“x<=y?”与Write to Digital Line.vi函数(下)的输入端口“Line state”相连。

(17)将“大于等于?”比较函数的输出端口“x>=y?”与“上限灯”控件相连。

(18)将“小于等于?”比较函数的输出端口“x<=y?”与“下限灯”控件相连。

框架1中连接好的框图程序如图2-28所示。

图2-28 超温控制框图程序

3.运行程序

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

给Pt100热电阻传感器升温或降温,程序画面显示温度测量值及实时变化曲线。

当测量温度大于等于设定的上限温度值时,数据采集卡数字量输出1通道PO.1(端口17)置高电平,线路中指示灯L1亮,程序画面中上限指示灯改变颜色。

当测量温度小于等于设定的下限温度值时,数据采集卡数字量输出2通道PO.2(端口49)置高电平,线路中指示灯L2亮,程序画面中下限指示灯改变颜色。

可以改变温度报警上限值和下限值:在“上限值”数值输入控件中输入上限报警值,在“下限值”数值输入控件中输入下限报警值。

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

图2-29 程序运行界面