第10章基于研华数据采集卡的LabVIEW程序设计.docx

上传人:b****8 文档编号:30383249 上传时间:2023-08-14 格式:DOCX 页数:27 大小:1.21MB
下载 相关 举报
第10章基于研华数据采集卡的LabVIEW程序设计.docx_第1页
第1页 / 共27页
第10章基于研华数据采集卡的LabVIEW程序设计.docx_第2页
第2页 / 共27页
第10章基于研华数据采集卡的LabVIEW程序设计.docx_第3页
第3页 / 共27页
第10章基于研华数据采集卡的LabVIEW程序设计.docx_第4页
第4页 / 共27页
第10章基于研华数据采集卡的LabVIEW程序设计.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

第10章基于研华数据采集卡的LabVIEW程序设计.docx

《第10章基于研华数据采集卡的LabVIEW程序设计.docx》由会员分享,可在线阅读,更多相关《第10章基于研华数据采集卡的LabVIEW程序设计.docx(27页珍藏版)》请在冰豆网上搜索。

第10章基于研华数据采集卡的LabVIEW程序设计.docx

第10章基于研华数据采集卡的LabVIEW程序设计

第10章基于研华数据采集卡的

LabVIEW程序设计

本章利用研华公司的PCI-1710HG数据采集卡编写LabVIEW程序,包括:

模拟量输入、模拟量输出、开关量输入以及开关量输出等。

10.1模拟量输入(AI)

10.1.1基于研华数据采集卡的LabVIEW程序硬件线路

在图10-1中,通过电位器产生一个模拟变化电压(范围是0V~5V),送入板卡模拟量输入0通道(管脚68),同时在电位器电压输出端接一信号指示灯,用来显示电压变化情况。

图10-1计算机模拟电压输入线路

本设计用到的硬件为:

PCI-1710HG数据采集卡、PCL-10168数据线缆、ADAM-3968接线端子(使用模拟量输入AI0通道)、电位器(10K)、指示灯(DC5V)、直流电源(输出:

DC5V)等。

10.1.2基于研华数据采集卡的LabVIEW程序设计任务

利用LabVIEW编写应用程序实现PCI-1710HG数据采集卡模拟量输入。

任务要求:

(1)以连续方式读取电压测量值,并以数值或曲线形式显示电压测量变化值;

(2)当测量电压小于或大于设定下限或上限值时,程序画面中相应指示灯变换颜色。

10.1.3基于研华数据采集卡的LabVIEW程序任务实现

1.建立新VI程序

启动NILabVIEW程序,选择新建(New)选项中的VI项,建立一个新VI程序。

在进行LabVIEW编程之前,必须首先安装研华设备管理程序DeviceManager、32bitDLL驱动程序以及研华板卡LabVIEW驱动程序。

2.设计程序前面板

8在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。

(1)添加一个实时图形显示控件:

控件(Controls)→新式(Modern)→图形(Graph)→波形图形(WaveformChart),标签改为“实时电压曲线”,将Y轴标尺范围改为0.0-5.0。

(2)添加一个数字显示控件:

控件(Controls)→新式(Modern)→数值(Numeric)→数值显示控件(NumericIndicator),标签改为“当前电压值:

”。

(3)添加两个指示灯控件:

控件(Controls)→新式(Modern)→布尔(Boolean)→圆形指示灯(RoundLED),将标签分别改为“上限指示灯:

”、“下限指示灯:

”。

(4)添加一个停止按钮控件:

控件(Controls)→新式(Modern)→布尔(Boolean)→停止按钮(StopButton)。

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

图10-2程序前面板

图10-3SelectPop函数库

3.框图程序设计——添加函数

8进入框图程序设计界面,在设计区空白处单击鼠标右键,显示函数选板(Functions)。

在函数选板(Functions)下添加需要的函数。

(1)添加选择设备函数:

用户库→AdvantechDA&C(研华公司的LabVIEW函数库)→EASYIO→SelectPOP→,如图10-3所示。

(2)添加打开设备函数:

用户库→AdvantechDA&C→ADVANCE→DeviceManager→,如图10-4所示。

(3)添加选择通道函数:

用户库→AdvantechDA&C→EASYIO→SelectPOP→Select,如图10-3所示。

(4)添加选择增益函数:

用户库→AdvantechDA&C→EASYIO→,如图10-3所示。

(5)添加UnbundleByName函数:

编程(Programming)→簇、类与变体(Cluster&Variant)→按名称解除捆绑(UnbundleByName)。

(6)添加Bundle函数:

编程(Programming)→簇、类与变体(Cluster&Variant)→捆绑(Bundle)。

(7)添加关闭设备函数:

用户库→AdvantechDA&C→ADVANCE→DeviceManager→,如图10-4所示。

(8)添加模拟量配置函数:

用户库→AdvantechDA&C→ADVANCE→SlowAI→,如图10-5所示。

图10-4DeviceManager函数库图10-5SlowAI函数库

(9)添加一个While循环结构:

编程(Programming)→结构(Structures)→While循环(WhileLoop)。

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

(10)添加模拟量电压输入函数:

用户库→AdvantechDA&C→ADVANCE→SlowAI→,如图10-5所示。

(11)添加一个比较符号函数“≤”:

编程(Programming)→比较(Comparison)→小于等于?

(LessOrEqual?

)。

(12)添加数值常量:

编程(Programming)→数值(Numeric)→数值常量(NumericConstant),将值改为0.5(下限电压值)。

(13)添加一个比较符号函数“≥”:

编程(Programming)→比较(Comparison)→大于等于?

(GreaterOrEqual?

)。

(14)添加数值常量:

编程(Programming)→数值(Numeric)→数值常量(NumericConstant),将值改为3.5(上限电压值)。

(15)添加一个时钟函数:

编程(Programming)→定时(Time&Dialog)→等待下一个整数倍毫秒(WaitUntilNextmsMultiple)。

(16)添加数值常量:

编程(Programming)→数值(Numeric)→数值常量(NumericConstant),将值改为500(采样频率)。

(17)添加Not函数:

编程(Programming)→布尔(Boolean)→非(Not)。

(18)添加两个条件结构:

编程(Programming)→结构(Structures)→条件结构(CaseStructure)。

(19)分别在两个条件结构的真(True)选项中各添加一个比较函数:

编程(Programming)→比较(Comparison)→不等于0?

(NotEqualTo0?

)。

(20)分别在两个条件结构的真(True)选项各添加一个数值常量:

编程(Programming)→数值(Numeric)→数值常量(NumericConstant),值分别为0、0。

(21)将数字显示控件(标签为“当前电压值:

”)、波形显示控件(标签为“实时电压曲线”)、停止按钮控件从外拖入循环结构中。

(22)将指示灯控件“下限指示灯:

”、“上限指示灯:

”分别拖入两个条件结构的真(True)选项中。

添加的函数如图10-6所示。

(23)分别在两个条件结构的假(False)选项中各添加一个局部变量:

编程(Programming)→结构(Structures)→局部变量(LocalVariable)。

分别选择局部变量,单击鼠标右键,在弹出的快捷菜单的选项(SelectItem)选项下,为局部变量选择控件:

“下限指示灯:

”、“上限指示灯:

”,将其读写属性设置为“写”。

(24)分别在两个条件结构的假(False)选项中各添加一个比较函数:

编程(Programming)→比较(Comparison)→不等于0?

(NotEqualTo0?

)。

(25)分别在两个条件结构的假(False)选项中各添加一个数值常量:

编程(Programming)→数值(Numeric)→数值常量(NumericConstant),值分别为1、1。

添加的函数如图10-7所示。

图10-6节点布置图1图10-7节点布置图2

4.框图程序设计——连线

使用工具箱中的连线工具,将所有函数连接起来。

(1)将函数的输出端口DevNum与函数的输入端口DevNum相连。

(2)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。

(3)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。

将函数的输出端口GainList与函数的输入端口GainList相连。

将函数的输出端口ChanInfo与按名称解除捆绑(UnbundleByName)函数的输入端口输入簇(InputCluster)相连。

(4)将按名称解除捆绑(UnbundleByName)函数的输出端口通道(Channel)与捆绑(Bundle)函数的一个输入端口簇元素(ClusterElement)相连。

(5)将函数的输出端口GainCode与捆绑(Bundle)函数的一个输入端口簇元素(ClusterElement)相连。

(6)将捆绑(Bundle)函数的输出端口输出簇(OutCluster)与函数的输入端口Chan&Gain相连。

(7)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。

(8)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。

将函数的输出端口Voltage与数字显示控件(标签为“当前电压值:

”)相连。

将函数的输出端口Voltage与波形显示控件(标签为“WaveformChart”)相连。

将函数的输出端口Voltage与小于等于?

(LessOrEqual)函数的输入端口x相连。

将函数的输出端口Voltage与GreaterOrEqual函数的输入端口x相连。

(9)将数值常量(值为0.5,下限电压值)与小于等于?

(LessOrEqual)函数的输入端口y相连。

(10)将数值常量(值为3.5,上限电压值)与大于等于?

(GreaterOrEqual?

)函数的输入端口y相连。

(11)将小于等于?

(LessOrEqual?

)函数的输出端口x<=y?

与条件结构1上的选择端口?

相连。

(12)将大于等于?

(GreaterOrEqual?

)函数的输出端口x>=y?

与条件结构2上的选择端口?

相连。

(13)在条件结构1的真(True)选项中,将数值常量(值为0)与不等于0?

(NotEqualTo0?

)函数的输入端口x相连;将不等于0?

(NotEqualTo0?

)函数的输出端口x!

=0?

与指示灯控件“下限指示灯”相连。

(14)在条件结构1的假(False)选项中,将数值常量(值为1)与不等于0?

(NotEqualTo0?

)函数的输入端口x相连;将不等于0?

(NotEqualTo0?

)函数的输出端口x!

=0?

与局部变量“下限指示灯:

”相连。

(15)在条件结构2的真(True)选项中,将数值常量(值为0)与不等于0?

(NotEqualTo0?

)函数的输入端口x相连;将不等于0?

(NotEqualTo0?

)函数的输出端口x!

=0?

与指示灯控件“上限指示灯”相连。

(16)在条件结构2的假(False)选项中,将数值常量(值为1)与不等于0?

(NotEqualTo0?

)函数的输入端口x相连;将不等于0?

(NotEqualTo0?

)函数的输出端口x!

=0?

与局部变量“上限指示灯:

”相连。

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

(18)将停止按钮与非(Not)函数的输入端口x相连。

(19)将非(Not)函数的输出端口.not.x?

与循环结构的条件端子

相连。

设计的框图程序如图10-8和图10-9所示。

图10-8框图程序2图10-9框图程序1

5.运行程序

进入程序前面板,执行菜单中的“文件/保存(File/Save)”命令,保存设计好的VI程序。

单击快捷工具栏中的“运行(Run)”按钮,运行程序:

∙执行“”子程序,选择研华板卡设备:

PCI-1710HG。

∙执行“”子程序,选择板卡通道号,如0通道。

∙执行“”子程序,选择板卡模拟电压输入范围,如+/-5V。

硬件设备设置完成,程序开始运行。

旋转电位器旋钮,改变其输出电压(范围是0V~5V),线路中AI指示灯亮度随之变化,同时,VI程序前面板中的当前电压值、实时图形显示控件中的曲线都将随电位器输出电压变化而变化。

当测量电压小于或大于设定下限电压值(0.5V)或上限电压值(3.5V)时,程序画面中相应的指示灯变换颜色。

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

图10-10程序运行画面

10.2模拟量输出(AO)

10.2.1硬件线路

在图10-11中,将板卡模拟量输出(范围0V~10V)0通道(管脚58)接示波器显示电压变化波形;接发光二极管来显示电压大小变化(范围:

0V~10V)。

本设计用到的硬件为:

PCI-1710HG数据采集卡、PCL-10168数据线缆、ADAM-3968接线端子(使用模拟量输出AO通道)、发光二极管、电子示波器等。

10.2.2设计任务

利用LabVIEW编写应用程序实现PCI-1710HG数据采集卡模拟量输出。

任务要求:

在程序画面中产生一个变化的数值(范围:

0~10),绘制数据变化曲线,线路中示波器中显示电压变化波形,发光二极管亮度随电压变化(范围:

0V~10V)而变化。

10.2.3任务实现

1.建立新VI程序

启动NILabVIEW程序,选择新建(New)选项中的VI项,建立一个新VI程序。

在进行LabVIEW编程之前,必须首先安装研华设备管理程序DeviceManager、32bitDLL驱动程序以及研华板卡LabVIEW驱动程序。

2.设计程序前面板

8在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。

(1)添加一个数字显示控件:

控件(Controls)→新式(Modern)→数值(Numeric)→数值显示控件(NumericIndicator),标签改为“输出电压值”。

(2)添加一个实时图形显示控件:

控件(Controls)→新式(Modern)→图形(Graph)→波形图形(WaveformChart),标签改为“电压输出曲线”,将Y轴标尺范围改为0~10。

(3)添加一个垂直滑动控件:

控件(Controls)→新式(Modern)→数值(Numeric)→垂直指针滑动杆(VerticalPointerSlide),标尺为0~10。

(4)添加一个停止按钮控件:

控件(Controls)→新式(Modern)→布尔(Boolean)→停止按钮(StopButton)。

设计的程序前面板如图10-12所示。

图10-12程序前面板

3.框图程序设计——添加函数

8进入框图程序设计界面,在设计区空白处单击鼠标右键,显示函数选板(Functions)。

(1)添加选择设备函数:

用户库→AdvantechDA&C(研华公司的LabVIEW函数库)→EASYIO→SelectPOP→,如图10-13所示。

(2)添加打开设备函数:

用户库→AdvantechDA&C→ADVANCE→DeviceManager→,如图10-14所示。

图10-13SelectPop函数库图10-14DeviceManager函数库

(3)添加关闭设备函数:

用户库→ADVANCE→DeviceManager→,如图10-14所示。

(4)添加While循环结构:

编程(Programming)→结构(Structures)→While循环(WhileLoop)。

图10-15SlowAO函数库

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

(5)添加模拟量电压输出函数:

用户库→AdvantechDA&C→ADVANCE→SlowAO→,如图10-15所示。

(6)添加数值常量:

编程(Programming)→数值(Numeric)→数值常量(NumericConstant),将值改为0(模拟量输出通道号)。

(7)添加数值常量:

编程(Programming)→数值(Numeric)→数值常量(NumericConstant),将值改为500(时钟周期)。

(8)添加时钟函数:

编程(Programming)→定时(Time&Dialog)→等待下一个整数倍毫秒(WaitUntilNextmsMultiple)。

(9)添加Not函数:

编程(Programming)→布尔(Boolean)→非(Not)。

(10)分别将数值显示控件(标签为“Numeric”)、波形显示控件(标签为“WaveformChart”)、垂直滑动控件(标签为“Slide”)、按钮控件(标签为“Stop”)等拖入While循环结构中。

添加的所有函数及其布置如图10-16所示。

图10-16节点布置图

4.框图程序设计——连线

使用工具箱中的连线工具,将所有函数连接起来。

(1)将函数的输出端口DevNum与函数的输入端口DevNum相连。

(2)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。

(3)将函数的输出端口DevHandle与函数的输入端口DevHandle相连。

(4)将数值常量(值为0,模拟量输出通道号)与函数的输入端口Channel相连。

(5)将滑动杆(Slide)的输出端口与函数的输入端口Voltage相连。

将滑动杆(Slide)的输出端口与数字显示控件(标签为“Numeric”)相连。

将滑动杆(Slide)的输出端口与波形显示控件(标签为“WaveformChart”)相连。

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

(7)将按钮控件与非(Not)函数的输入端口x相连。

(8)将非(Not)函数的输出端口.not.x?

与While循环结构的条件端子

相连。

设计的框图程序如图10-17所示。

5.运行程序

进入程序前面板,执行菜单中的“文件/保存(File/Save)”命令,保存设计好的VI程序。

图10-17框图程序连线

单击快捷工具栏中的“运行(Run)”按钮,运行程序。

首先执行“”子程序,选择研华板卡设备PCI-1710HG。

硬件设备设置完成,程序开始运行。

用鼠标单击游标上下箭头,改变输出值(0~10),画面中实时趋势曲线将随游标值变化而变化,板卡AO0_OUT通道输出电压随之改变(0V~10V),线路中发光二极管亮度随之变化,在示波器中显示输出电压变化波形。

程序运行画面如图10-18所示。

图10-18程序运行画面

略。

详见网址为:

10.6温度测量与报警控制

10.6.1硬件线路

在图10-39中,Pt100热电阻检测温度变化,通过变送器和250Ω电阻转换为1V~5V电压信号送入板卡模拟量1通道(管脚34);当检测温度小于计算机程序设定的下限值,计算

图10-39温度测量与控制线路

机输出控制信号,使板卡DO1通道13管脚置高电平,指示灯1亮;当检测温度大于计算机设定的上限值,计算机输出控制信号,使板卡DO2通道46管脚置高电平,指示灯2亮。

本设计用到的硬件为:

PCI-1710HG数据采集卡、PCL-10168数据线缆、ADAM-3968接线端子(使用模拟量输入AI通道、数字量输出DO通道)、热电阻传感器(Pt100)、温度变送器(输入:

0~200℃,输出:

4mA~20mA)、直流电源(输出:

DC24V)、继电器(DC24V)、指示灯(DC24V)、250Ω电阻、电阻(10K)、三极管等。

10.6.2设计任务

利用LabVIEW编写应用程序实现PCI-1710HG数据采集卡温度测量与报警控制。

任务要求:

(1)自动连续读取并显示温度测量值,绘制测量温度实时变化曲线;

(2)统计采集的温度平均值、最大值与最小值;

(3)实现温度上、下限报警指示,并能在程序运行中设置报警上、下限值。

10.6.3任务实现

1.建立新VI程序

启动NILabVIEW程序,选择新建(New)选项中的VI项,建立一个新VI程序。

2.设计程序前面板

8在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。

(1)添加一个实时图形显示控件:

控件(Controls)→新式(Modern)→图形(Graph)→波形图形(WaveformChart),将Y轴标尺范围改为0.0~50.0。

(2)添加6个数字显示控件:

控件(Controls)→新式(Modern)→数值(Numeric)→数值显示控件(NumericIndicator),标签分别为“当前值:

”、“测量个数:

”、“累加值:

”、“平均值”、“最大值:

”、“最小值:

”。

图10-40程序前面板

(3)添加两个数值输入控件:

控件(Controls)→新式(Modern)→数值(Numeric)→数值输入控件(Digitalcontrol),标签分别为“上限值:

”、“下限值:

”,将其值改为50、25,并设置为默认值。

(4)添加两个指示灯控件:

控件(Controls)→新式(Modern)→布尔(Boolean)→圆形指示灯(RoundLED),将标签分别改为“上限灯:

”、“下限灯:

”。

(5)添加一个停止按钮控件;控件(Controls)→新式(Modern)→布尔(Boolean)→停止按钮(StopButton)。

设计的程序前面板如图10-40所示。

3.框图程序设计——添加函数

8进入框图程序设计界面,在设计区空白处单击鼠标右键,显示函数选板(Functions)。

(1)添加选择设备函数:

用户库→AdvantechDA&C(研华公司的LabVIEW函数库)→EASYIO→SelectPOP→,如图10-41所示。

(2)添加打开设备函数:

用户库→AdvantechDA&C→ADVANCE→DeviceManager→,如图10-42所示。

 图10-41SelectPop函数库图10-42DeviceManager函数库

(3)添加关闭设备函数:

用户库→ADVANCE→DeviceManager→,如图10-42所示。

(4)添加选择通道函数:

用户库→AdvantechDA&C→EASYIO→SelectPOP→,如图10-41所示。

(5)添加选择增益函数:

用户库→AdvantechDA&C→EASYIO→,如图10-41所示。

(6)添加按名称解除捆绑函数:

编程(Programming)→簇(Cluster)→按名称解除捆绑(UnbundleByName)。

(7)添加捆绑函数:

编程(Programming)→簇(Cluster)→捆绑(Bundle)。

图10-43SlowAI函数库

(8)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1