《电子技术应用》
您所在的位置:首页 > 测试测量 > 设计应用 > LabVIEW中综合报表生成技术的开发
LabVIEW中综合报表生成技术的开发
摘要: 报表生成功能是一个完备的虚拟仪器测试系统的重要组成部分。比较了两种LabVIEW平台下报表生成方法及特点。重点阐述LabVIEW与Excel的数据通信,并添加了声音报警、自动打印功能,提高了数据的可靠性与安全性。
Abstract:
Key words :

1 引言

  打印报表是测控系统普遍要求的一项基本功能,例如对产品进行测试要有测试报告,长期检测一个生产过程要求有生产日报表等,对报表的实时性提出了要求。目前,几种用于生成报表的软件有Visual Basic、Matlab Report Generator等。LabVIEW是NI公司退出的一种基于 G语言的虚拟仪器软件开发工具。利用LabVIEW可以很方便地生成一个虚拟仪器系统,完成信号的采集、数据处理等任务构成一个完整的测试系统。 LabVIEW本身带有强大的报表生成功能,能与多种应用程序的通讯成为报表生成技术中首选的工具。目前已大量用于测试系统的后期数据处理中,笔者在总结前人开发报表生成功能的基础上,添加了一些新功能,以完善整个测试系统。

2 报表生成功能的完善

  报表生成方法可以通过这么几种方法[1]:直接使用NI公司的Report Generation Toolkit生成报表;使用File I/O类函数生成报表;使用Report Generation类函数生成报表;利用Excel生成报表。然而,由于 Report Generation Toolkit模块没有集成在LabVIEW中,须额外购买,性价比不高;File I/O类函数生成的报表可读性差,样式简单,因此目前普遍采用后两种方式。

  2.1 使用Report Generation类函数生成报表

  使用这种方法可以打印格式比较复杂的报表,而且操作简单。LabVIEW中的Report Generation子模板中提供了丰富的函数[2]。从生成一个新的报表,设置报表页边距、方向、页眉文本,向报表中添加文字、图片和表格等到打印报表都有全程的帮助文件供开发者使用。以产品检验报告为例,报表生成的程序如图1所示。

 


图1 使用Report Generation类函数生成报表框图

  由图中,在报表中添加了曲线、数据、表格等,最终通过一个Case语句在LabVIEW主程序中直接打印报表,前面板如图2所示。要注意的是,由于打印报表只能打印瞬间的数据值,故要求打印图标按钮不能长期处于闭合状态,在此设置Mechanical Action为 Latch when pressed。

 


图2使用ReportGeneration类函数生成报表前面板

  使用该方法虽然操作简单,但也有一些不足。比如,对于复杂的数据就显得力不从心;在实际测试系统中要求测量的点数往往上百个,大批的数据要在 LabVIEW要在前面板中设置显然不切实际;虽然实现了打印功能,但打印效果不符合传统观念中的报表,数据可移植性不高。鉴于此,提出用Excel生成报表。

  2.2 利用Excel生成报表

  Microsoft Excel是强大的数据处理软件,应用极为广泛,通过与LabVIEW的结合,将采集到的数据传送到Excel中,充分利用了两者的功能。Excel本身含有大量的模板,用户可以预先定制模板以确定报告格式,通过两大应用程序之间的通讯协议,利用DDE和ActiveX方式生成报表,然后在程序中添加语音效果、打印功能、数据保存等功能,进一步完善报表的附带功能。下面以锅炉供热自动控制系统的报表程序为例,介绍一个功能齐全的报表生成系统。

 


图3 报表生成前面板

  首先,报表的主界面如图3所示,用户可以设置报表生成即Excel文件生成的路径,在报表名称、报表生成的起始与终止时间处分别填入需要的参数。左方为各项测量指标的名称,用户可以根据需要修改,而且设置了冗余项,在右下角的要测的指标中选择数目,主界面可自动扩展指标项供用户添加。

  其次,如用户需要打印前面板,可以按打印前面板按钮实现。界面的右下角附有使用说明,方便开发者与用户的沟通。部分程序框图如图4、5所示。

 


图4 设置路径与表名



图5 向Excel传送数据

  由于LabVIEW提供了自动打印的功能,故要打印前面板中的曲线,只需要将需要打印的对象做成子VI,当程序调用该子VI时实现打印功能[3]。主程序框图如图6所示,该方法实现的关键点在于:主程序需要将曲线坐标的上下限传给子VI,通过属性节点实现,如图中所示。

 


图6 自动打印主程序框图

  最后,在该系统中加入声音报警功能[4]。在线检测系统一般都需要报警功能,实现的方法为在程序中预先录入一段声音,当报表生成过程中出现报错等意外出错时,可以及时提醒工作人员,以免造成因数据错误带来的事故,这在工业监控过程中是非常必要的。我们还是利用LabVIEW中的声音函数录制声音,程序框图如图7所示。

 


图7 录制声音

  在SI CONFIG函数中可以选择立体声或者单通道。然后我们把生成的文件作为声音文件,作为出错报警时的源文件,框图如图8所示。

 


图8 播放声音

3 结论与应用

  到此,一个完整的功能齐全的报表生成系统已经介绍好了。并已在汽车热工性能测试系统中试用,大大减轻了工作人员的数据记录的负担,同时提高了安全性、可靠性,在数据图表打印方面真正做到了所见即所出。

  本文作者创新点:集成各种功能如数据、图表实时打印等,开发出了一套功能齐全的报表生成系统,操作简单,数据可移植性强,优于目前普遍使用的报表生成系统;同时,在程序设计中添加了报警功能,为工况现场的安全性和可靠性提供了保障。

参考文献

  [1] 杨乐平等.LabVIEW高级程序设计.北京:清华大学出版社,2003.

  [2] 石博强等.LabVIEW编程技术实用教程.北京:中国铁道出版社,2002.

  [3] 赵海龙.给LabVIEW中的对象添加自动打印功能[J].微计算机信息,2001,17(12):32-34.

  [4] 雷振山.LabVIEW7Express实用技术教程.北京:中国铁道出版社,2005.

此内容为AET网站原创,未经授权禁止转载。