没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
第
第
10
10
章
章
基于研华数据采集卡的
基于研华数据采集卡的
LabVIEW
LabVIEW
程序设计
程序设计
本章利用研华公司的 PCI-1710HG 数据采集卡编写 LabVIEW 程序,包括:模拟量输入、
模拟量输出、开关量输入以及开关量输出等。
10.1 模拟量输入(AI)
10.1.1 基于研华数据采集卡的 LabVIEW 程序硬件线路
在图 10-1 中,通过电位器产生一个模拟变化电压(范围是 0V~5V),送入板卡模拟
量输入 0 通道(管脚 68),同时在电位器电压输出端接一信号指示灯,用来显示电压变化
情况。
PCI
1
7
1
0
H
G
多
功
能
卡
计
算
机
60
68
DC5V
+
_
10K
AI指示灯
0∽5V
图 10-1 计算机模拟电压输入线路
本设计用到的硬件为:PCI-1710HG 数据采集卡、PCL-10168 数据线缆、ADAM-3968 接
线端子(使用模拟量输入 AI0 通道)、电位器(10K)、指示灯(DC5V)、直流电源(输出:
DC5V)等。
10.1.2 基于研华数据采集卡的 LabVIEW 程序设计任务
利用 LabVIEW 编写应用程序实现 PCI-1710HG 数据采集卡模拟量输入。
任务要求:
(1)以连续方式读取电压测量值,并以数值或曲线形式显示电压测量变化值;
(2)当测量电压小于或大于设定下限或上限值时,程序画面中相应指示灯变换颜色。
~
编号:
时间:2021 年 x 月 x 日
书山有路勤为径,学海无涯苦作舟
页码:第 209 页 共 22 页
第 209 页 共 22 页
10.1.3 基于研华数据采集卡的 LabVIEW 程序任务实现
1.建立新 VI 程序
启动 NI LabVIEW 程序,选择新建(New)选项中的 VI 项,建立一个新 VI 程序。
在进行 LabVIEW 编程之前,必须首先安装研华设备管理程序 Device Manager、32bit DLL 驱动
程序以及研华板卡 LabVIEW 驱动程序。
2.设计程序前面板
在前面板设计区空白处单击鼠标右键,显示控件选板(Controls)。
(1)添加一个实时图形显示控件:控件(Controls)→新式(Modern)→图形(Graph) →
波形图形(Waveform Chart),标签改为“实时电压曲线”,将 Y 轴标尺范围改为 0.0-5.0。
(2)添加一个数字显示控件:控件(Controls)→新式(Modern)→数值(Numeric)→
数值显示控件(Numeric Indicator),标签改为“当前电压值:”。
(3)添加两个指示灯控件:控件(Controls)→新式(Modern)→布尔(Boolean)→圆
形指示灯(Round LED),将标签分别改为“上限指示灯:”、“下限指示灯:”。
(4)添加一个停止按钮控件:控件(Controls)→新式(Modern)→布尔(Boolean)→
停止按钮(Stop Button)。
设计的程序前面板如图 10-2 所示。
图 10-2 程序前面板
3.框图程序设计——添加函数
进入框图程序设计界面,在设计区空
白 处 单 击 鼠 标 右 键 , 显 示 函 数 选 板
(Functions)。在函数选板(Functions)下添加需
要的函数。
图 10-3 SelectPop 函数库
编号:
时间:2021 年 x 月 x 日
书山有路勤为径,学海无涯苦作舟
页码:第 210 页 共 22 页
第 210 页 共 22 页
(1)添加选择设备函数:用户库→ Advantech DA&C (研华公司的 LabVIEW 函数库)→
EASYIO → SelectPOP → SelectDevicePop.vi,如图 10-3 所示。
(2)添加打开设备函数:用户库→ Advantech DA&C → ADVANCE → DeviceManager →
DeviceOpen.vi,如图 10-4 所示。
(3)添加选择通道函数:用户库→Advantech DA&C→EASYIO→SelectPOP→ Select
ChannelPop.vi,如图 10-3 所示。
(4)添加选择增益函数:用户库→Advantech DA&C→EASYIO→SelectGainPop.vi,如
图 10-3 所示。
(5)添加 Unbundle By Name 函数:编程(Programming)→簇、类与变体(Cluster &
Variant)→按名称解除捆绑(Unbundle By Name)。
(6)添加 Bundle 函数:编程(Programming)→簇、类与变体(Cluster & Variant)→
捆绑(Bundle)。
(7)添加关闭设备函数:用户库→ Advantech DA&C → ADVANCE → DeviceManager →
DeviceClose.vi,如图 10-4 所示。
( 8 ) 添 加 模 拟 量 配 置 函 数 : 用 户 库 → Advantech DA&C→ADVANCE→SlowAI→
AIConfig.vi ,如图 10-5 所示。
图 10-4 DeviceManager 函数库 图 10-5 SlowAI 函数库
(9)添加一个 While 循环结构:编程(Programming)→结构(Structures)→While 循
环(While Loop)。
以下添加的函数或结构放置在 While 循环结构框架中。
(10)添加模拟量电压输入函数:用户库 → Advantech DA&C → ADVANCE → SlowAI
→ AIVoltageIn.vi,如图 10-5 所示。
(11)添加一个比较符号函数“≤”:编程(Programming)→比较(Comparison)→ 小
于等于?(Less Or Equal?)。
(12)添加数值常量:编程(Programming) → 数值(Numeric) → 数值常量(Numeric
Constant),将值改为 0.5(下限电压值)。
(13)添加一个比较符号函数“≥”:编程(Programming)→比较(Comparison)→ 大
于等于?(Greater Or Equal?)。
编号:
时间:2021 年 x 月 x 日
书山有路勤为径,学海无涯苦作舟
页码:第 211 页 共 22 页
第 211 页 共 22 页
(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)添加两个条件结构:编程(Programming)→结构(Structures)→条件结构(Case
Structure)。
( 19 ) 分 别 在 两 个 条 件 结 构 的 真 ( True ) 选 项 中 各 添 加 一 个 比 较 函 数 : 编 程
(Programming) → 比较(Comparison)→不等于 0?(Not Equal To 0 ?)。
( 20 ) 分 别 在 两 个 条 件 结 构 的 真 ( True ) 选 项 各 添 加 一 个 数 值 常 量 : 编 程
(Programming) → 数值(Numeric)→ 数值常量(Numeric Constant),值分别为 0、0。
(21)将数字显示控件(标签为“当前电压值:”)、波形显示控件(标签为“实时电压
曲线”)、停止按钮控件从外拖入循环结构中。
(22)将指示灯控件“下限指示灯:”、“上限指示灯:”分别拖入两个条件结构的真
(True)选项中。
添加的函数如图 10-6 所示。
( 23 ) 分 别 在 两 个 条 件 结 构 的 假 ( False ) 选 项 中 各 添 加 一 个 局 部 变 量 : 编 程
(Programming) →结构(Structures)→局部变量(Local Variable)。
分别选择局部变量,单击鼠标右键,在弹出的快捷菜单的选项(Select Item)选项下,
为局部变量选择控件:“下限指示灯:”、“上限指示灯:”,将其读写属性设置为“写”。
( 24 ) 分 别 在 两 个 条 件 结 构 的 假 ( False ) 选 项 中 各 添 加 一 个 比 较 函 数 : 编 程
(Programming) → 比较(Comparison)→不等于 0?(Not Equal To 0 ?)。
( 25 ) 分 别 在 两 个 条 件 结 构 的 假 ( False ) 选 项 中 各 添 加 一 个 数 值 常 量 : 编 程
(Programming) → 数值(Numeric)→数值常量(Numeric Constant),值分别为 1、1。
添加的函数如图 10-7 所示。
图 10-6 节点布置图 1 图 10-7 节点布置图 2
编号:
时间:2021 年 x 月 x 日
书山有路勤为径,学海无涯苦作舟
页码:第 212 页 共 22 页
第 212 页 共 22 页
4.框图程序设计——连线
使用工具箱中的连线工具,将所有函数连接起来。
(1)将 SelectDevicePop.vi 函数的输出端口 DevNum 与 DeviceOpen.vi 函数的输入端口
DevNum 相连。
(2)将 DeviceOpen.vi 函数的输出端口 DevHandle 与 SelectChannelPop.vi 函数的输入端
口 DevHandle 相连。
(3)将 SelectChannelPop.vi 函数的输出端口 DevHandle 与 AIConfig.vi 函数的输入端口
DevHandle 相连。
将 SelectChannelPop.vi 函数的输出端口 Gain List 与 SelectGainPop.vi 函数的输入端口 Gain
List 相连。
将 SelectChannelPop.vi 函 数 的 输 出 端 口 ChanInfo 与 按 名 称 解 除 捆 绑 ( Unbundle By
Name)函数的输入端口输入簇(Input Cluster)相连。
(4)将按名称解除捆绑(Unbundle By Name)函数的输出端口通道(Channel)与捆绑
(Bundle)函数的一个输入端口簇元素(Cluster Element)相连。
(5)将 SelectGainPop.vi 函数的输出端口 GainCode 与捆绑(Bundle)函数的一个输入端
口簇元素(Cluster Element)相连。
(6)将捆绑(Bundle)函数的输出端口输出簇(OutCluster)与 AIConfig.vi 函数的输入
端口 Chan & Gain 相连。
(7) 将 AIConfig.vi 函数 的 输 出端口 DevHandle 与 AIVoltageIn.vi 函 数的输 入 端 口
DevHandle 相连。
(8)将 AIVoltageIn.vi 函数的输出端口 DevHandle 与 DeviceClose.vi 函数的输入端口
DevHandle 相连。
将 AIVoltageIn.vi 函数的输出端口 Voltage 与数字显示控件(标签为“当前电压值:”)相连。
将 AIVoltageIn.vi 函数的输出端口 Voltage 与波形显示控件(标签为“Waveform Chart”)
相连。
将 AIVoltageIn.vi 函数的输出端口 Voltage 与小于等于?(Less Or Equal)函数的输入端
口 x 相连。
将 AIVoltageIn.vi 函数的输出端口 Voltage 与 Greater Or Equal 函数的输入端口 x 相连。
(9)将数值常量(值为 0.5,下限电压值)与小于等于?(Less Or Equal)函数的输入
端口 y 相连。
(10)将数值常量(值为 3.5,上限电压值)与大于等于?(Greater Or Equal?)函数的
输入端口 y 相连。
(11)将小于等于?(Less Or Equal?)函数的输出端口 x <= y? 与条件结构 1 上的选
择端口?相连。
(12)将大于等于?(Greater Or Equal?)函数的输出端口 x >= y? 与条件结构 2 上的
选择端口?相连。
剩余21页未读,继续阅读
资源评论
m0_63741889
- 粉丝: 0
- 资源: 7万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功