种兴静,高军伟
(青岛大学 自动化学院,青岛266071)
LabVIEW 是一种灵活的编程语言,相较于C 语言或者JAVA 语言,LabVIEW 语言是一种图形化的编程语言,程序设计相对比较简单,灵活性很强,利于用户对上位机人机界面的设计。LabVIEW 可以做运动控制、算法的仿真等,但用的最多的还是Lab-VIEW 数据采集,例如一些板卡的测试以及自动化控制类的数据采集等。一个VI 程序包括前面板和程序面板。前面板是用户所能看到的界面,可以实现数据显示、波形显示、数据输入等其他功能,程序面板是前面板运行的一个支持。通过建立VI 程序来实现一系列的功能,达到用户的要求。
基于LabVIEW 数据采集的功能[1-3],本文提出了在LabVIEW 2014 编程软件环境下,利用USB 数据采集卡进行实时的监测电压电流变化情况。在控制器设计过程中,利用LabVIEW 2014 编程软件编写电压电流采集控制程序。该系统可实现电压电流的准确测量,并将测量数据结果保存到数据库。实验结果表明,该系统实时响应性良好,测量结果准确。
在USB 数据采集卡电压电流监测系统中,USB数据采集卡通过USB 接口与上位机搭建,安装驱动程序,实现上位机与USB 数据采集卡的通讯,LabVIEW 调用动态链接库函数,完成串口通讯[4]。LabVIEW 前面板作为人机交互界面,可以实时地监控测量的电压、电流的变化情况,通过波形图方式直接显示出来,并将获得的数据保存到数据库中。
USB 数据采集卡电压电流监测系统的总体结构如图1所示。
图1 系统总体结构图Fig.1 System overall structure
电压电流实时监测系统采用恒凯电子的USBDAQ V1.2 数据采集卡,如图2所示。使用USB2.0高速总线接口,具有即插即用的易用特性,便携式特点可以成为用户的最佳选择,可以取代PCI 卡更加方便的使用。该数据采集卡采用8 路差分/16 路单端输入,具有2 路模拟信号输出,12 位AD,通道转换速度为100 kHz,最大的共模电压为±10 V,可支持输入通道连续自动扫描。USB-DAQ V1.2 数据采集卡可工作多种常用的操作系统,如Win7、XP、Win9x/Me 等。该数据采集卡可用于各种传感器信号的数据采集和数据分析,以及工业生产中的控制和测量,还可以应用于科研等其他领域,结合计算机强大的数据处理能力、便捷的软件编程方式[5],与传感器、控制器搭建,完成各种数据信号处理、分析和保存,可以大大降低设计成本。
图2 USB 采集卡Fig.2 USB data auquision card
USB_DAQ 数据采集卡的模拟输入电路如图3所示,MUX、MUX2 为多路选择器,每次将1 组AI 或1 个AI 接入放大器(AMP)。MUX2 用于切换单端或差分输入模式。AMP 放大器根据板上的跳线和拨码开关选择不同的放大倍数,对输入信号进行调理及缓冲,使信号适合模数转换器(ADC)的量程。ADC模数转换器将模拟电压转换为数字编码,从而实现AI 信号数字化。AI FIFO 可对固定或无限次数采样执行单个或多个A/D 转换。AI 采集过程中,采用先进先出(FIFO)缓存存储数据,确保数据不会丢失[6-7]。
图3 USB_DAQ 模拟输入电路Fig.3 USB_DAQ analog input circuit
被测可调电压模块和蜂鸣电压报警模块如图4和图5所示,电压模块的电压范围为0~5 V,USB 数据采集卡的AD1 端口和GND 端口分别连接可调电压模块端口P7 的1和2,用USB 数据采集卡的模拟通道对模拟电压进行采集[8],对被测电压持续进行监控,获取测量的电压值。图5 为电压报警模块,USB 数据采集卡的数字输出端口OUT1和接地端口GND 分别连接电压报警模块端口P10的1和2,当电压超过设定值,实现电压监控的超压报警。
图4 被测可调电压图Fig.4 Measured adjustable voltage diagram
图5 电压报警模块图Fig.5 Voltage alarm module diagram
测流电路如图6所示,F1 为贴片自恢复保险丝,用以保护测流电路。P8 端口的1、2 分别连接USB 数据采集卡的AD8 端口和AD16 端口。测流电路的P9 的1、2 分别连接P14 的1、2 来测量被测电路中的电流。
图6 测流电路图Fig.6 Flow measurement circuit diagram
被测电流电路如图7所示,被测电流电路采用5 V 电源供电,可通过调节电位器实现电流的改变。
图7 被测电流电路图Fig.7 Measured current circuit diagram
USB 数据采集卡电压监控模块的LabVIEW 程序框图如图8所示。软件采用While 循环与条件结构结合实现电压的连续采集。调用库函数ADSingleV12()完成模拟通道电压的单次采集,设定采集时模拟输入模式ad_mod 为1,实现USB 数据采集卡的单端采集模式;AD 输入通道设置chan 为0,将AD1 端口设为电压数据采集的通道;设置USB 采集卡的量程代码gain 为10,测量电压的量程设定为0~5 V。库函数ADSingleV12()的adResult 将采集到的电压直接显示,并通过反馈节点将采集到的数据通过插入数组,依次将电压数据通过波形图呈现出来。采集到的电压数据再通过创建波形完成电压的实时采集,最后通过“导出波形至电子表格文件”,将采集到的电压数据保存到数据库。库函数DoSetV12 设定chan 为0 来实现USB 数据采集卡的OUT1 端口作为蜂鸣器报警模块的输入端口,通过布尔(0,1)转换函数设置DoSetV12 的state 的状态,state 为1 时报警,为0 时消除报警。
图8 电压监控程序框图Fig.8 Voltage monitoring block diagram
USB 数据采集卡电流监控模块的LabVIEW 程序框图如图9所示。调用库函数ADSingleV12()完成模拟通道电压的单次采集,设定采集时模拟输入模式ad_mod 为0,实现USB 数据采集卡的差分采集模式;AD 输入通道设置chan 为7,将AD8 端口设为电流数据采集的通道;设置USB 采集卡的量程代码gain 为6,测量电压的量程设定为-0.5~0.5 V,由于测流电路中测量1 Ω 电阻两端的电压,所以利用欧姆定律,所测的电压除以1 Ω 等于电流值,单位为安培。库函数ADSingleV12()的adResult 将采集到的电流乘1000,设置测量电流的单位为毫安,并通过反馈节点将采集到的电流数据通过插入数组,依次将电流数据通过波形图呈现出来。采集到的电流数据再通过创建波形完成电流的实时采集,最后使用“导出波形至电子表格文件”函数,将采集到的电流数据保存到数据库。同样,当测量电流值超过设定值,可实现报警功能。
图9 电流监控程序框图Fig.9 Current monitoring block diagram
USB 数据采集监控系统采集到的电压波形图如图10所示,设置报警电压为5 V,当测量电压低于5 V 时,超压指示灯关闭为红色;当测量电压超过5 V 时,超压指示灯开启为绿色,并且蜂鸣电压报警模块自动开启,完成蜂鸣报警。
图10 电压波形图Fig.10 Voltage waveform diagram
通过数据采集监控系统将采集电压保存到数据库,采集到的电压值如图11所示,电压采集的时间间隔为1 s,可以详细记录电压采集的时间,并且能够精确的测量电压数据。
图11 电压值显示Fig.11 Voltage value display
USB 数据采集监控系统采集到的电流结果通过波形图显示,采集结果如图12所示,设定的最大报警电流为500 mA,电流监控系统同样具备电流超值报警功能。
通过数据采集监控系统将采集电流保存到数据库,采集到的电流值如图13所示,电流采集的时间间隔为5 s,可以详细记录电流采集的时间,并且能够精确的测量电流数据,测量电流的单位为毫安。
图12 电流波形图Fig.12 Current waveform
图13 电流值显示Fig.13 Current value display
本文设计了基于USB 采集卡的电压电流实时监测系统,本系统可以安全可靠运行,能够高效、便捷的对电压、电流进行精确的测量,并可实现电压、电流超值报警功能,通过LabVIEW 前面板可以监测到电压、电流数据并实时显示,并将采集的详细数据结果保存到数据库,方便对采集到的数据查看。