1、第10章基于研华数据采集卡的LabVIEW程序设计第10章 基于研华数据采集卡的LabVIEW程序设计本章利用研华公司的PCI-1710HG数据采集卡编写LabVIEW程序,包括:模拟量输入、模拟量输出、开关量输入以及开关量输出等。10.1 模拟量输入(AI)10.1.1 基于研华数据采集卡的LabVIEW程序硬件线路在图10-1中,通过电位器产生一个模拟变化电压(范围是0V5V),送入板卡模拟量输入0通道(管脚68),同时在电位器电压输出端接一信号指示灯,用来显示电压变化情况。图10-1 计算机模拟电压输入线路本设计用到的硬件为:PCI-1710HG数据采集卡、PCL-10168数据线缆、A
2、DAM-3968接线端子(使用模拟量输入AI0通道)、电位器(10K)、指示灯(DC5V)、直流电源(输出:DC5V)等。10.1.2 基于研华数据采集卡的LabVIEW程序设计任务利用LabVIEW编写应用程序实现PCI-1710HG数据采集卡模拟量输入。任务要求:(1)以连续方式读取电压测量值,并以数值或曲线形式显示电压测量变化值;(2)当测量电压小于或大于设定下限或上限值时,程序画面中相应指示灯变换颜色。10.1.3 基于研华数据采集卡的LabVIEW程序任务实现1建立新VI程序启动NI LabVIEW程序,选择新建(New)选项中的VI项,建立一个新VI程序。在进行LabVIEW编程之
3、前,必须首先安装研华设备管理程序Device Manager、32bit DLL驱动程序以及研华板卡LabVIEW驱动程序。2设计程序前面板8 在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。(1)添加一个实时图形显示控件:控件(Controls)新式(Modern)图形(Graph) 波形图形(Waveform Chart),标签改为“实时电压曲线”,将Y轴标尺范围改为0.0-5.0。(2)添加一个数字显示控件:控件(Controls)新式(Modern)数值(Numeric) 数值显示控件(Numeric Indicator),标签改为“当前电压值:”。(3)添加两个指
4、示灯控件:控件(Controls)新式(Modern)布尔(Boolean)圆形指示灯(Round LED),将标签分别改为“上限指示灯:”、“下限指示灯:”。(4)添加一个停止按钮控件:控件(Controls)新式(Modern)布尔(Boolean)停止按钮(Stop Button)。设计的程序前面板如图10-2所示。图10-2 程序前面板图10-3 SelectPop函数库3框图程序设计添加函数8 进入框图程序设计界面,在设计区空白处单击鼠标右键,显示函数选板(Functions)。在函数选板(Functions)下添加需要的函数。(1)添加选择设备函数:用户库 Advantech DA
5、&C(研华公司的LabVIEW函数库) EASYIO SelectPOP ,如图10-3所示。(2)添加打开设备函数:用户库 Advantech DA&C ADVANCE DeviceManager ,如图10-4所示。(3)添加选择通道函数:用户库Advantech DA&CEASYIOSelectPOP Select ,如图10-3所示。(4)添加选择增益函数:用户库Advantech DA&CEASYIO,如图10-3所示。 (5)添加Unbundle By Name函数:编程(Programming)簇、类与变体(Cluster & Variant)按名称解除捆绑(Unbundle B
6、y Name)。(6)添加Bundle函数:编程(Programming)簇、类与变体(Cluster & Variant)捆绑(Bundle)。(7)添加关闭设备函数:用户库 Advantech DA&C ADVANCE DeviceManager ,如图10-4所示。(8)添加模拟量配置函数:用户库 Advantech DA&CADVANCESlowAI ,如图10-5所示。 图10-4 DeviceManager函数库 图10-5 SlowAI函数库(9)添加一个While循环结构:编程(Programming)结构(Structures)While 循环(While Loop)。以下添
7、加的函数或结构放置在While循环结构框架中。(10)添加模拟量电压输入函数:用户库 Advantech DA&C ADVANCE SlowAI ,如图10-5所示。(11)添加一个比较符号函数“”:编程(Programming)比较(Comparison) 小于等于?(Less Or Equal?)。(12)添加数值常量:编程(Programming) 数值(Numeric) 数值常量(Numeric Constant),将值改为0.5(下限电压值)。(13)添加一个比较符号函数“”:编程(Programming)比较(Comparison) 大于等于?(Greater Or Equal?)
8、。(14)添加数值常量:编程(Programming) 数值(Numeric) 数值常量(Numeric Constant),将值改为3.5(上限电压值)。(15)添加一个时钟函数:编程(Programming)定时(Time & Dialog) 等待下一个整数倍毫秒(Wait Until Next ms Multiple)。(16)添加数值常量:编程(Programming) 数值(Numeric) 数值常量(Numeric Constant),将值改为500(采样频率)。(17)添加Not函数:编程(Programming)布尔(Boolean)非(Not)。(18)添加两个条件结构:编程
9、(Programming)结构(Structures)条件结构(Case Structure)。(19)分别在两个条件结构的真(True)选项中各添加一个比较函数:编程(Programming) 比较(Comparison)不等于0?(Not Equal To 0 ?)。(20)分别在两个条件结构的真(True)选项各添加一个数值常量:编程(Programming) 数值(Numeric) 数值常量(Numeric Constant),值分别为0、0。(21)将数字显示控件(标签为“当前电压值:”)、波形显示控件(标签为“实时电压曲线”)、停止按钮控件从外拖入循环结构中。(22)将指示灯控件“
10、下限指示灯:”、“上限指示灯:”分别拖入两个条件结构的真(True)选项中。添加的函数如图10-6所示。(23)分别在两个条件结构的假(False)选项中各添加一个局部变量:编程(Programming) 结构(Structures)局部变量(Local Variable)。分别选择局部变量,单击鼠标右键,在弹出的快捷菜单的选项(Select Item)选项下,为局部变量选择控件:“下限指示灯:”、“上限指示灯:”,将其读写属性设置为“写”。(24)分别在两个条件结构的假(False)选项中各添加一个比较函数:编程(Programming) 比较(Comparison)不等于0?(Not Eq
11、ual To 0 ?)。(25)分别在两个条件结构的假(False)选项中各添加一个数值常量:编程(Programming) 数值(Numeric)数值常量(Numeric Constant),值分别为1、1。添加的函数如图10-7所示。 图10-6 节点布置图1 图10-7 节点布置图24框图程序设计连线使用工具箱中的连线工具,将所有函数连接起来。(1)将函数的输出端口DevNum与函数的输入端口DevNum相连。(2)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。(3)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。将函数的输出端口Ga
12、in List与函数的输入端口Gain List相连。将函数的输出端口ChanInfo与按名称解除捆绑(Unbundle By Name)函数的输入端口输入簇(Input Cluster)相连。(4)将按名称解除捆绑(Unbundle By Name)函数的输出端口通道(Channel)与捆绑(Bundle)函数的一个输入端口簇元素(Cluster Element)相连。(5)将函数的输出端口GainCode与捆绑(Bundle)函数的一个输入端口簇元素(Cluster Element)相连。(6)将捆绑(Bundle)函数的输出端口输出簇(OutCluster)与函数的输入端口Chan &
13、Gain相连。(7)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。(8)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。将函数的输出端口Voltage与数字显示控件(标签为“当前电压值:”)相连。将函数的输出端口Voltage与波形显示控件(标签为“Waveform Chart”)相连。将函数的输出端口Voltage与小于等于?(Less Or Equal)函数的输入端口x相连。将函数的输出端口Voltage与Greater Or Equal函数的输入端口x相连。(9)将数值常量(值为0.5,下限电压值)与小于等于?(Less Or Equ
14、al)函数的输入端口y相连。(10)将数值常量(值为3.5,上限电压值)与大于等于?(Greater Or Equal?)函数的输入端口y相连。(11)将小于等于?(Less Or Equal?)函数的输出端口x = y? 与条件结构2上的选择端口?相连。(13)在条件结构1的真(True)选项中,将数值常量(值为0)与不等于0?(Not Equal To 0 ?)函数的输入端口x相连;将不等于0?(Not Equal To 0 ?)函数的输出端口x != 0? 与指示灯控件“下限指示灯”相连。(14)在条件结构1的假(False)选项中,将数值常量(值为1)与不等于0?(Not Equal
15、To 0 ?)函数的输入端口x相连;将不等于0?(Not Equal To 0 ?)函数的输出端口x != 0?与局部变量“下限指示灯:”相连。(15)在条件结构2的真(True)选项中,将数值常量(值为0)与不等于0?(Not Equal To 0 ?)函数的输入端口x相连;将不等于0?(Not Equal To 0 ?)函数的输出端口x != 0? 与指示灯控件“上限指示灯”相连。(16)在条件结构2的假(False)选项中,将数值常量(值为1)与不等于0?(Not Equal To 0 ?)函数的输入端口x相连;将不等于0?(Not Equal To 0 ?)函数的输出端口x != 0?
16、与局部变量“上限指示灯:”相连。(17)将数值常量(值为500,时钟周期)与等待下一个整数倍毫秒(Wait Until Next ms Multiple)函数的输入端口毫秒倍数(millisecond multiple)相连。(18)将停止按钮与非(Not)函数的输入端口x相连。(19)将非(Not)函数的输出端口.not. x ? 与循环结构的条件端子相连。设计的框图程序如图10-8和图10-9所示。 图10-8 框图程序2 图10-9 框图程序15运行程序进入程序前面板,执行菜单中的“文件/保存(File/Save)”命令,保存设计好的VI程序。单击快捷工具栏中的“运行(Run)”按钮,运
17、行程序: 执行“”子程序,选择研华板卡设备:PCI-1710HG。 执行“”子程序,选择板卡通道号,如0通道。 执行“”子程序,选择板卡模拟电压输入范围,如+/-5V。硬件设备设置完成,程序开始运行。旋转电位器旋钮,改变其输出电压(范围是0V5V),线路中AI指示灯亮度随之变化,同时,VI程序前面板中的当前电压值、实时图形显示控件中的曲线都将随电位器输出电压变化而变化。当测量电压小于或大于设定下限电压值(0.5V)或上限电压值(3.5V)时,程序画面中相应的指示灯变换颜色。程序运行画面如图10-10所示。图10-10 程序运行画面10.2 模拟量输出(AO)10.2.1 硬件线路在图10-11
18、中,将板卡模拟量输出(范围0V10V)0通道(管脚58)接示波器显示电压变化波形;接发光二极管来显示电压大小变化(范围:0V10V)。本设计用到的硬件为:PCI-1710HG数据采集卡、PCL-10168数据线缆、ADAM-3968接线端子(使用模拟量输出AO通道)、发光二极管、电子示波器等。10.2.2 设计任务利用LabVIEW编写应用程序实现PCI-1710HG数据采集卡模拟量输出。任务要求:在程序画面中产生一个变化的数值(范围:010),绘制数据变化曲线,线路中示波器中显示电压变化波形,发光二极管亮度随电压变化(范围:0V10V)而变化。10.2.3 任务实现1建立新VI程序启动NI
19、LabVIEW程序,选择新建(New)选项中的VI项,建立一个新VI程序。在进行LabVIEW编程之前,必须首先安装研华设备管理程序Device Manager、32bit DLL驱动程序以及研华板卡LabVIEW驱动程序。2设计程序前面板8 在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。(1)添加一个数字显示控件:控件(Controls)新式(Modern)数值(Numeric) 数值显示控件(Numeric Indicator),标签改为“输出电压值”。(2)添加一个实时图形显示控件:控件(Controls)新式(Modern)图形(Graph) 波形图形(Wavef
20、orm Chart),标签改为“电压输出曲线”,将Y轴标尺范围改为010。(3)添加一个垂直滑动控件:控件(Controls)新式(Modern)数值(Numeric) 垂直指针滑动杆(Vertical Pointer Slide),标尺为010。(4)添加一个停止按钮控件:控件(Controls)新式(Modern)布尔(Boolean)停止按钮(Stop Button)。设计的程序前面板如图10-12所示。图10-12 程序前面板3框图程序设计添加函数8 进入框图程序设计界面,在设计区空白处单击鼠标右键,显示函数选板(Functions)。(1)添加选择设备函数:用户库 Advantech
21、 DA&C(研华公司的LabVIEW函数库) EASYIO SelectPOP ,如图10-13所示。(2)添加打开设备函数:用户库 Advantech DA&C ADVANCE DeviceManager ,如图10-14所示。 图10-13 SelectPop函数库 图10-14 DeviceManager函数库(3)添加关闭设备函数:用户库 ADVANCE DeviceManager ,如图10-14所示。(4)添加While循环结构:编程(Programming)结构(Structures)While 循环(While Loop)。图10-15 SlowAO函数库以下添加的函数放置在W
22、hile循环结构框架中。(5)添加模拟量电压输出函数:用户库 Advantech DA&C ADVANCE SlowAO ,如图10-15所示。(6)添加数值常量:编程(Programming)数值(Numeric) 数值常量(Numeric Constant),将值改为0(模拟量输出通道号)。(7)添加数值常量:编程(Programming) 数值(Numeric)数值常量(Numeric Constant),将值改为500(时钟周期)。(8)添加时钟函数:编程(Programming) 定时(Time & Dialog) 等待下一个整数倍毫秒(Wait Until Next ms Mult
23、iple)。(9)添加Not函数:编程(Programming)布尔(Boolean)非(Not)。(10)分别将数值显示控件(标签为“Numeric”)、波形显示控件(标签为“Waveform Chart”)、垂直滑动控件(标签为“Slide”)、按钮控件(标签为“Stop”)等拖入While循环结构中。添加的所有函数及其布置如图10-16所示。图10-16 节点布置图4框图程序设计连线使用工具箱中的连线工具,将所有函数连接起来。(1)将函数的输出端口DevNum与函数的输入端口 DevNum相连。(2)将函数的输出端口DevHandle与函数的输入端口 DevHandle相连。(3)将函数
24、的输出端口DevHandle与函数的输入端口 DevHandle相连。(4)将数值常量(值为0,模拟量输出通道号)与函数的输入端口Channel相连。(5)将滑动杆(Slide)的输出端口与函数的输入端口Voltage相连。将滑动杆(Slide)的输出端口与数字显示控件(标签为“Numeric”)相连。将滑动杆(Slide)的输出端口与波形显示控件(标签为“Waveform Chart”)相连。(6)将数值常量(值为500,时钟周期)与等待下一个整数倍毫秒(Wait Until Next ms Multiple)函数的输入端口毫秒倍数(millisecond multiple)相连。(7)将按
25、钮控件与非(Not)函数的输入端口x相连。(8)将非(Not)函数的输出端口.not. x ? 与While循环结构的条件端子相连。设计的框图程序如图10-17所示。5运行程序进入程序前面板,执行菜单中的“文件/保存(File/Save)”命令,保存设计好的VI程序。图10-17 框图程序连线单击快捷工具栏中的“运行(Run)”按钮,运行程序。首先执行“”子程序,选择研华板卡设备PCI-1710HG。硬件设备设置完成,程序开始运行。用鼠标单击游标上下箭头,改变输出值(010),画面中实时趋势曲线将随游标值变化而变化,板卡AO0_OUT通道输出电压随之改变(0V10V),线路中发光二极管亮度随之
26、变化,在示波器中显示输出电压变化波形。程序运行画面如图10-18所示。图10-18 程序运行画面略。详见网址为:。10.6 温度测量与报警控制10.6.1 硬件线路在图10-39中,Pt100热电阻检测温度变化,通过变送器和250电阻转换为1V5V电压信号送入板卡模拟量1通道(管脚34);当检测温度小于计算机程序设定的下限值,计算图10-39 温度测量与控制线路机输出控制信号,使板卡DO1通道13管脚置高电平,指示灯1亮;当检测温度大于计算机设定的上限值,计算机输出控制信号,使板卡DO2通道46管脚置高电平,指示灯2亮。本设计用到的硬件为:PCI-1710HG数据采集卡、PCL-10168数据
27、线缆、ADAM-3968接线端子(使用模拟量输入AI通道、数字量输出DO通道)、热电阻传感器(Pt100)、温度变送器(输入:0200,输出:4mA20mA)、直流电源(输出:DC24V)、继电器(DC24V)、指示灯(DC24V)、250电阻、电阻(10K)、三极管等。10.6.2 设计任务利用LabVIEW编写应用程序实现PCI-1710HG数据采集卡温度测量与报警控制。任务要求:(1)自动连续读取并显示温度测量值,绘制测量温度实时变化曲线;(2)统计采集的温度平均值、最大值与最小值;(3)实现温度上、下限报警指示,并能在程序运行中设置报警上、下限值。10.6.3 任务实现1建立新VI程序
28、启动NI LabVIEW程序,选择新建(New)选项中的VI项,建立一个新VI程序。2设计程序前面板8 在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。(1)添加一个实时图形显示控件:控件(Controls)新式(Modern)图形(Graph)波形图形(Waveform Chart),将Y轴标尺范围改为0.050.0。(2)添加6个数字显示控件:控件(Controls)新式(Modern)数值(Numeric) 数值显示控件(Numeric Indicator),标签分别为“当前值:”、“测量个数:”、“累加值:”、 “平均值”、“最大值:”、“最小值:”。图10-40
29、程序前面板(3)添加两个数值输入控件:控件(Controls)新式(Modern)数值(Numeric)数值输入控件(Digital control),标签分别为“上限值:”、“下限值:”,将其值改为50、25,并设置为默认值。(4)添加两个指示灯控件:控件(Controls)新式(Modern)布尔(Boolean)圆形指示灯(Round LED),将标签分别改为“上限灯:”、“下限灯:”。(5)添加一个停止按钮控件;控件(Controls)新式(Modern)布尔(Boolean)停止按钮(Stop Button)。设计的程序前面板如图10-40所示。3框图程序设计添加函数8 进入框图程序
30、设计界面,在设计区空白处单击鼠标右键,显示函数选板(Functions)。(1)添加选择设备函数:用户库 Advantech DA&C(研华公司的LabVIEW函数库) EASYIO SelectPOP ,如图10-41所示。(2)添加打开设备函数:用户库 Advantech DA&C ADVANCE DeviceManager ,如图10-42所示。 图10-41 SelectPop函数库 图10-42 DeviceManager函数库(3)添加关闭设备函数:用户库 ADVANCE DeviceManager ,如图10-42所示。(4)添加选择通道函数:用户库 Advantech DA&C EASYIO SelectPOP ,如图10-41所示。(5)添加选择增益函数:用户库 Advantech DA&C EASYIO ,如图10-41所示。(6)添加按名称解除捆绑函数:编程(Programming) 簇(Cluster) 按名称解除捆绑(Unbundle By Name)。(7)添加捆绑函数:编程(Programming) 簇(Cluster)捆绑(Bundle)。图10-43 SlowAI函数库(8)
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1