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