基于 DAQmx的模拟电压生成与采集系统设计
在 Labview 中,快速 Express VI 和底层 DAQmx VI 都可以实现数据采集。 快速 VI 简单、
方便、易用,在实现功能相对单一的数据采集任务时经常选用;然而,底层
地实现功能比较复杂的数据采集任务。另外,底层
际应用中,选择使用底层 VI 。基于这一思想,本设计选用底层
据采集卡以及数据采集卡配置软件
中生成并采集电压模拟信号。
VI 却可以灵活
VI 的执行效率高于快速 VI 。因此,在实
VI ,借助于 NI USB6009 数
MAX ( Measurement&Automation Explorer ),在 Labview
一、总体方案设计
本系统前面板的虚拟界面如图 1 所示。
图 1 系统前面板
1、前面板功能说明与使用方法
( 1)系统实现的功能
系统运行状态下,选择好通道,配置相应参数后,按下绿色“启动”按钮,生成的电压
波形和采集到的电压波形分别在各自的波形图表中显示出来,
显示,指示灯由红变绿,表示数据生成与采集程序正在运行。按下红色“停止”按钮,波形
图表所显示的数据定格, 指示灯由绿变红, 表示数据生成与采集程序停止运行。 再次按下“启
动”(或“停止” )按钮,数据生成与采集程序继续(或停止)运行。按下蓝色“退出系统”
按钮,整个程序停止运行, “启动”和“停止”不再具有启停功能。
生成电压频率由数值显示控件
( 2)界面的使用方法
第一步,运行程序。
第二步,配置参数。
首先,选择生成电压的输出通道以及采集电压的输入通道。由于采用了
NI USB6009 数
据采集卡,在 MAX 中创建了相应任务,这里选用 USB-6009/ao0 和 USB-6009/ai0 通道。
然后,配置输出电压最大和最小伏值、输出速率与每周期点数。
NI USB6009 模拟电压
的输出伏值是 0-5V ,最大最小伏值设置时要在这个范围中进行;输出速率配置的是
数值越大,输出波形变化越缓慢;每周期点数越多,生成的波形越平滑,越接近正弦波。
ms 数,
最后配置通道采样数。 USB6009 支持的采样数为 1-1024 ,超限系统会以对话框的形式
报错,并指出原因。
第三步,操作按钮。
按下“启动”按钮,如若配置参数正确,波形图表显示波形,数值显示控件显示显示输
出频率。
按下“停止”按钮,同时停止数据的生成与采集。
再次按下“启动”按钮,继续生成和采集数据。
按下“退出系统”按钮,整个程序终止运行。
补充说明,如若在运行状态下修改程序,需要再次“启动”后,方能实现新配置参数下
数据的生成与采集;而“启动”按钮在“停止”按钮按下,即“停止”状态下才生效。所以,
在启动状态下调整参数配置,需要先转换到停止状态,配置好后,重新转换到启动状态。
另外,也可以在运行程序之前,首先完成参数的配置。
2、程序框图的总体架构
本系统程序框图如图 2 所示。
图
2
系
统
程
序
框
图
( 1)结构关系
系统的主体模块是模拟电压生成模块和模拟电压采集模块
(这两个模块将在后面详细说
明),主体模块程序由条件结构触发,触发条件是“启动”按钮按下。
为了保证条件结构的循环扫描,在条件结构之外使用
while 循环结构。该循环的跳出条
件是,“停止” 按钮按下。 同时,“退出系统” 按钮按下也可以终止本循环。 因为“退出系统”
的属性节点(值改变)与“停止”按钮的状态做“或”运算后的结果赋给该循环终止条件。
由于布尔输入控件使用了属性节点,其机械动作只兼容前三种,按下后无法自动跳回。
这就要求系统在运行上述循环程序之前,
对这些布尔输入控件恢复默认值。 另外, 系统运行
状态指示灯在主体程序运行之前, 也应保持关闭的显示状态。 所以在这里引入顺序结构, 在
主体程序执行之前,使用这些控件的调用节点,将其全部恢复默认值。
为了在“退出系统”按钮按下之前, “启动”、“停止”按钮能够无限次实现启停操作,
在顺序结构之外,再次使用 while 循环,以“退出系统”按钮作为终止条件。
( 2)主体模块
主体模块由三部分组成,分别是系统运行状态指示、模拟电压生成和模拟电压采集。
后两个部分在后文具体说明,这里仅对“系统运行状态指示”部分进行说明。
“系统运行状态指示” 在虚拟界面上显示为一个指示灯的两种颜色变化:
绿色表示 “启
动”,红色表示“停止” 。如图 3 所示。
(a)启动状态
( b)停止状态
图 3 运行状态指示控件在前面板中的两种颜色变化
该部分的程序框图由条件循环中的布尔显示控件与顺序结构第一帧中的调用节点构成。
如图 4 所示, 当“运行”按钮按下时,条件结构 “真” 状态下的程序 (主体程序)开始运行,
“系统运行状态”指示灯 VI 被赋真值,使界面中的指示灯控件显现绿色;当“停止”按钮
while 循环停止运行,本次顺序执行结束,然而,在最外层
按下时,包含上述条件结构的
while 循环的连续执行下,顺序结构再次运行,第一帧中的“系统运行状态”的恢复默认值
调用节点将指示灯关闭。
(a)条件结构中赋真值的布尔显示控件
( b)顺序结构第一帧中布尔显示控件的调用节点
图 4 运行状态指示程序框图中的具体实现方法
二、主体程序设计说明
1、模拟电压生成
模拟电压生成部分的程序框图如图
5 所示。
图 5 模拟电压生成部分程序框图
模拟电压生成部分的程序由 DAQmx 通道创建 VI 、DAQmx 开始任务 VI 、DAQmx 写入
VI 、DAQmx 清除任务 VI 和简易错误处理器 VI 组成。 DAQmx 通道选择 VI 选择模拟电压
输出模式。 DAQmx 写入 VI 选择“模拟” 、“单通道”、“单采样”、“ DBL ”。对简易错误处理
器 VI 创建“对话框类型”常量,在其下拉菜单中选择“
OK message + warnings ”。
DAQmx 写入 VI 是这个部分的核心, 图 6 所示, 为该 VI 的图标及其在模拟 DBL1 通道
1 采样模式下的接线端子。任务 /通道输入端与 DAQmx 开始任务 VI 的任务输出端相连。数
while 循环中,实现波形的连续
据端送予数学运算生成的正弦波形。整个写入过程放在一个
生成与向通道不断写入。该循环的停止条件是,
道写入出错,三种情况其中之一发生。
“停止”或“退出系统”按钮按下,或者通
图 6 DAQmx写入(模拟 DBL1通道 1 采样)
当停止循环写入之后,使用 DAQmx 清除任务 VI 清除通道中写入的数据。使用该
VI ,
在清除之前, VI 将停止该任务,并在必要情况下释放任务保留的资源。
如在写入的过程中出错,简单错误处理器
VI 将以对话框形式显示有错误发生。由于设
置的对话框类型为 OK message with warnings ,则显示含有警告和确定按钮的对话框。确认
该对话框后,该 VI 将控制返回至主 VI 。
2、模拟电压采集
模拟电压采集部分的程序框图如图
7 所示。
图 7 模拟电压采集部分程序框图
模拟电压采集部分的程序由 DAQmx 通道创建 VI 、DAQmx 开始任务 VI 、DAQmx 读取
VI 、DAQmx 停止任务 VI 和简易错误处理器 VI 组成。 DAQmx 通道选择 VI 选择模拟电压
输入模式。 DAQmx 读取 VI 选择“模拟” 、“多通道”、“多采样”、“1D 波形”。对简易错误
处理器 VI 创建“对话框类型”常量,在其下拉菜单中选择“
OK message + warnings ”。
DAQmx 读取 VI 是这个部分的核心,图 8 所示,为该 VI 的图标及其在模拟 1D 波形 N
通道 N 采样模式下的接线端子。 任务 /通道输入端与 DAQmx 开始任务 VI 的任务输出端相连。
在每通道采样数端创建输入控件, 这样, 在前面板就可以配置其采样数值。 读取的数据由波
形图表显示在前面板中, 在数据端创建标签为 “采集电压波形”的波形图表。整个读取过程
放在一个 while 循环中,实现通道数据的连续读取。该循环的停止条件是,
出系统”按钮按下,或者通道读取出错,三种情况其中之一发生。
“停止”或“退
图 8 DAQmx读取(模拟 1D 波形 N 通道 N 采样)
当停止循环读取之后,使用 DAQmx 停止任务 VI 终止任务,使其返回 DAQmx 开始任
务 VI 尚未运行。
如在读取的过程中出错,简单错误处理器
VI 将以对话框形式显示有错误发生。由于设
置的对话框类型为 OK message with warnings ,则显示含有警告和确定按钮的对话框。确认
该对话框后,该 VI 将控制返回至主 VI 。
三、 USB6009 及 MAX 与 LabVIEW 的配合使用
基于 LabVIEW 的数据采集系统由数据采集硬件、 驱动程序的用户接口和 DAQ VI 构成。
硬件驱动程序是应用软件对硬件的编程接口,
包含对硬件的操作命令, 并完成与硬件之
间的数据传递;在 Measurement & Automation Explorer 中,用户可以对硬件进行必要的设置
和测试。 LabVIEW 中的数据采集 VI 按照 Measurement & Automation Explorer 中的设置采集
数据。它们的结构关系如图 9 所示。
驱 动 程 序 的 用 户 接 口
Measurement&Automation Explorer
LabVIEW 开发环境
数据采集 VI
数据采集硬件
硬件驱动程序
图 9 基于 LabVIEW 的数据采集系统
1、 M AX 创建任务
在计算机上接入 USB6009 数据采集卡,打开 MAX 软件,创建模拟电压输出任务,即
模拟电压生成任务,如图 10。
(a) 新建任务
( b)选择通道
图 10 使用 MAX 创建模拟电压输出任务
在 MAX 中创建任务后,要对任务进行配置。设置最大伏值为
端配置采用 RSE 模式(参考单端模式) ,即以系统地作为参考进行测量;生成模式选用
样(按要求) 。具体配置如图 11 所示。
5,最小伏值为 0;接线
1 采
图 11 USB6009 模拟电压输出任务的参数配置
本次设计中, 还需要创建模拟电压输入任务, 即模拟电压采集任务。 其配置与输出任务
类似,这里不再骜述。
2、 USB6009 数据采集卡硬件连线
本设计选用的数据采集硬件是 NI USB6009 数据采集卡。使用 USB 数据线与计算机相
连。使用导线将 AI0 于 AO0 连接起来。如图 12。