通断检测采集软件的要求和LabVIEW编程
2014-07-01王建新吴晓阳吴献东仇高贺
王建新 吴晓阳 吴献东 仇高贺
(温州出入境检验检疫局 浙江温州 325604)
通断检测采集软件的要求和LabVIEW编程
王建新 吴晓阳 吴献东 仇高贺
(温州出入境检验检疫局 浙江温州 325604)
阐述了低压电器通断检测数据采集软件在硬件控制、波形显示、报告输出等方面上的基本要求,分析了LabVIEW软件实现这些要求的对应编程功能,并给出了相关程序示例;与其他软件对比说明了LabVIEW软件用于通断检测的优缺点。
低压电器;数据采集;LabVIEW
1 前言
低压电器通断检测采集软件的任务主要是控制采集卡启/停,随之进行数据读取、显示、分析计算、报告输出以及与数据库交互、远程控制操作等功能。采集软件通常采用VC++、VB等较常见的编程软件开发,但对开发者的要求相对较高,而使用LabVIEW软件编程可以更容易、高效地完成相关功能,因此近年来它在低压电器检测方面获得了较多应用[1-3]。然而低压电器通断检测软件在采集、界面、报告输出等有其特殊要求,除满足检测标准的基本要求外,还要在上述方面符合行业的通用规则。本研究对使用LabVIEW开发此类软件时的几个关键问题进行了分析,并提出了解决办法。
2 LabVIEW软件的特色
LabVIEW——实验室虚拟仪器工程平台软件,是美国国家仪器公司所开发的图形化程序编译平台,测量和测试是其应用最广泛的领域,并具有以下特色:
(1)采用图形化编程并且编程简单,在流程图构思完毕的同时也基本上完成了程序的撰写;
(2)具备功能丰富的用于测试的控件和函数;
(3)大量的采集卡和仪器支持LabVIEW,DAQ助手可迅速开发采集控制编程;
(4)默认以多线程运行程序,简化了开发流程。
3 开发采集软件的几个关键问题
3.1 采集控制
采集软件应具有采集硬件的量程、采样速率、采集时间、触发通道、触发方式、触发前预留数据量等设置功能,还应有控制采集启动、停止的功能。LabVIEW中用DAQ助手可迅速配置一个采集子VI,并转换成代码;将代码中相关参数关联到界面中的输入控件,就可得到比较完善的采集控制。DAQ助手产生代码的缺点是在采集时有一个时间限制,当没有采到足够数据且时间未到时,不能人工停止。为解决此问题,可以采用图1所示的编程方案。
图1 人工停止采集的一种方法
图1 中“控制采集.vi”是抽取DAQ助手产生代码的有用部分形成的子VI,其中包含各通道基本设置。其停止采集的原理是当采集运行后进入一个While循环,此循环可被有条件结束:① “DAQmx任务”的“done”参数为true(采集到数据且“DAQmx Read.vi”执行);②采样出错或限制时间到(图中的“超 时S”的设定时间);③人工停止信号(即图中下方的“采集状态”变量)。
由于LabVIEW的程序自动为多任务,因此可以把图1程序放在一个接受“通知器”函数消息的条件判断结构中。当开始采集时,“通知器”发出通知,此段程序开始执行,通过改变“采集状态”变量即可停止采集任务。
3.2 显示和操作功能
采集软件的界面需要能够使波形数据正确、快速显示,通过菜单、工具栏、按钮等提供硬件设置、显示设置、计算设置、项目设置等功能,并能实现采集数据和相关设置的存储等。LabVIEW软件可以实现上述要求,由于其支持控件的“自定义”,即改变组成控件的各层图片或底色,可以高效地设计出丰富多彩的界面,在这一点上效率远高于VC++等软件。
LabVIEW具有多个专用于波形显示的控件,其中有2个可以显示多通道模拟信号的控件——“混合信号图”和“波形图表”,此外还可以使用多个“波形图”控件组合进行显示,见图2。
图2 不同控件波形显示效果
(1)混合信号图效果见图2(a),每个通道曲线可以用一个“绘图区域”来显示,也支持在一个绘图区域显示多条曲线,同时支持水平和垂直滚动条。其优点在于:
①各“绘图区域”的操作相互关联,例如一个区域水平扩展,其余区域则自动跟随;
②各“绘图区域”有独立的纵坐标,可以独立设置高度、颜色、曲线类型等参数;
③可以滚动显示各“绘图区域”,也可以在编程状态任意增删“绘图区域”;
④支持自定义改变边框大小、底色等;
⑤具有图形工具可以进行缩放、拖动等操作,有游标工具辅助测量。
当只需要在一个屏幕显示所有通道的情况下,此时编程屏蔽垂直滚动条、图例等工具,通过自定义功能改变外观,而其缩放、游标等功能可通过其属性节点附加到软件界面中相关按钮,同时通过消息循环机制自动设定各“绘图区域高度”,可获得图2(b)的显示效果,基本上符合行业通用格式。
其缺点是不能在运行时增加或删除“绘图区域”。对于全部通道在一个屏幕上显示的情况(无垂直滚动条),可以在编程时把混合信号图的“绘图区域”设定到所需最大数目通道,当增删通道时通过改变各区域高度即可“显示或删除”通道,但当同时需要滚动显示时就无法处理了。
(2)“波形图表”也可以提供多通道显示,见图2(c),用法与混合信号图类似,但有以下问题:
①无垂直滚动条,因此不适用于滚动显示;
②也不能实现运行时增删通道。
(3)可以通过多个“波形图”控件组合来显示,图2(d)显示了相关效果。这种方法可以实现比较复杂的功能,编程也相对复杂。可以在软件中预先放置多个“波形图”控件并按顺序排列,按倒序控制每个控件的显示或隐藏,同时将输入曲线重新排序,即可实现任意增删通道的目的。当多个控件在由“分隔栏”构成的区域中,其显示与该区域滚动条自动关联,可以实现滚动显示。但在实际编程时还要考虑多个方面,主要有:任一个控件的相关参数变化需要通过事件机制编程来控制其他控件;当控件或界面尺寸变化时,需要重新计算各控件在界面中的坐标位置和控件内部各区域的尺寸;各控件y轴数字长度变化引起波形显示区域尺寸变化时,其他波形显示区域也要相随变化的问题。
相比其他编程工具,采用一般的显示控件很难达到类似LabVIEW中波形控件的显示效果,如果采用软件编程绘图方式,则要考虑各种图形操作、曲线绘图、图形几何变换计算、绘图速度等问题,开发工作量大且效果取决于于编程者的能力。当然这些软件由于编程自由度较高,能够完成一些更高级的功能,例如LabVIEW中就无法对相邻几个显示控件用一个窗口选择拖动放大。
3.3 word报告输出
通断检测报告的格式在行业内基本相似,由波形图、计算结果等信息构成,一般采用表格形式,要求:①所见即所得,即波形图的屏幕显示和报告相一致;②可以由用户方便地修改模板,实现不同显示格式和内容。
报告输出可以采用软件自绘方式,也可以采用专用控件如水晶报表等。目前较常见的是软件编程控制Word软件,使用预先设置的模板产生报告文件,然后通过替换书签或字符方式改变内容。
在LabVIEW中,波形显示控件都可以通过“获得图像”调用节点从而得到整个控件的图像,而后可以通过“还原像素图”、“绘制还原像素图”输出到空的“Picture”控件中,之后转换成“BMP”格式图片并将其插入到Word文件中。
在LabVIEW中提供了对“添加图像至报表”函数,可以通过替换书签方式插入图像。对于其他如文字类型等没有提供替换书签的函数,可以通过“Word查找和替换”函数替换指定字符串实现。使用VC++等软件编程则可以做到全部用书签替换,这影响到了最终用户模板制作方式。
3.3.1 多个“波形图”控件报告输出
对于多个“波形图”控件报告输出要考虑以下几点问题:
(1)每个控件产生一个图像,必须将其合为一个图像;
(2)合成时要考虑每个分图像在合成图像的坐标位置;
(3)要考虑到最终图像与报告对应单元格的尺寸比例问题,如不能匹配则插入的图片就会变形,可以通过LabVIEW提供的Word函数查询报告输出文件的表格参数得到相关参数。
图3 输出word报告程序示例
图4 多个“波形图”控件转化“BMP”格式程序
图3 展示了如何用图片替换报告中的书签以及将图中“计算列表”内容替换到Word文件中的程序。其中“报告图片高度”和“报告图片宽度”是将规定的每个“波形图”控件生成图像的尺寸,“有效通道”是包含当前通道项名列表框的内容属性节点,“窗格2”是分隔栏所划分区域中的所有“波形图”控件集合,“计算列表填充”用于得到计算设置的相关项目。图中将得到的通道图像转换成BMP文件,再通过替换书签“pic1”插入到Word报表,通过循环将所有计算相关信息替换Word报告中的相应字符串。
图4是图3中“叠加图片”子V I的程序框图,展示了如何获得“波形图”控件图像并合成“BMP”格式图片的程序,“示波控件组”即所有正在显示的“波形图”控件组合。图中“拷贝波形图”子VI是将界面中所显示的各“波形图”控件所有参数拷贝到一个已有的“波形图”控件(图中为“波形图1”)。“拷贝”是通过使各控件属性节点信息相同得以实现,而“波形图1”的尺寸是由图中“宽度”和“高度”变量决定,由此控制最终获得的图像尺寸比例合适。
3.3.2 “混合信号图”控件报告输出
“混合信号图”控件和“波形图”控件操作方法类似,但不需要多个通道合成,只需要获得整个控件图像即可,其缺点是如果“混合信号图”有垂直滚动条则无法得到控件显示部分之外的图像。解决办法是可以放置另一个控件,并拷贝相应参数使其与屏幕上控件显示效果相一致,同时控制各“绘图区域”高度使得所有通道同时全部显示在控件中,从而获得图像。
3.4 数据计算
计算功能关系到测量准确度,应尽可能自动计算以提高效率。目前除了燃弧时间外,其他常用计算均可得到满意结果。LabVIEW提供了许多有用的如平均值、峰值、有效值等算法以及拟合滤波等函数,但在应用到通断检测时还需要对数据进行一些处理,比如查找波形有效起点、过零点、去除畸变部分波形等,相较其他软件而言,仍可大大降低编程强度。对于低压电器各种参数算法,有许多文献已经做了研究[4-5],在LabVIEW中将它们转化并不困难。
4 结论
根据低压电器通断检测软件其共性的基本要求,本研究中给出了LabVIEW编制采集软件时几个通用性问题的解决示例,表明使用LabVIEW软件可以满足常规的各种要求;通过灵活使用属性节点和调用节点可以设计出用其他软件可以做到的大部分效果,而且编程代码量大大减少;对比其他编程软件,LabVIEW软件在专业性、易用性、易学性、易维护性具有明显的优势,使用者可针对不同检测要求快速调整软件和增加功能,对提高检测水准具有很高价值。
[1] 苏金州,许志红,施东升. 基于LabVIEW的低压电器数据采集系统[J]. 低压电器,2009,7:27-30.
[2] 徐敦林. 虚拟仪器在低压电器中的应用[J]. 机电信息,2010,12:61
[3] 阮庆洲,陈建兵,朱刚. 基于LabVIEW的智能低压电器测试技术[J]. 低压电器,2011,5:55-57,60.
[4] 庞琳,陈建兵,王爱国. 包络拟合法在求取功率因数中的应用[J]. 低压电器,2007,23:53-55.
[5] 鄢来君. 低压电器短路试验离散数据处理[J]. 低压电器,2010,15:52-55.
[6] 陈锡辉,张银洪.LabVIEW8.20程序设计从入门到精通[M].北京:清华大学出版社,2007.
Requirements of Making and Breaking Data Acquisition Software and LabVIEW Programming
Wang Jianxin, Wu Xiaoyang, Wu Xiandong, Qiu Gaohe
(Wenzhou Entry-Exit Inspection and Quarantine Bureau, Wenzhou, Zhejiang, 325604)
The basic requirements of making and breaking data acquisition software for low-voltage electrical apparatus in hardware control, waveform display, report output and so on were elaborated. The functional programming of LabVIEW software to achieve these requirements was analyzed and the related sample programs were given. And the advantages and disadvantages of LabVIEW software used for making and breaking data acquisition were illustrated.
Low voltage electrical appratus; Data acquisition; PLC; LabVIEW
TP274.2
浙江出入境检验检疫局科技计划项目(ZK201207);国家质检总局科技计划项目(2010IK076)