摘 要:報(bào)表生成功能是一個(gè)完備的虛擬儀器測(cè)試系統(tǒng)的重要組成部分。比較了兩種LabVIEW平臺(tái)下報(bào)表生成方法及特點(diǎn)。重點(diǎn)闡述LabVIEW與Excel的數(shù)據(jù)通信,并添加了聲音報(bào)警、自動(dòng)打印功能,提高了數(shù)據(jù)的可靠性與安全性。
關(guān)鍵詞:虛擬儀器測(cè)試系統(tǒng);報(bào)表生成;表格處理軟件
[b][align=center]The Development of Complicated Report Generation Technology in LabVIEW
ZHANG Pei JIANG Ying XU Wei-ming ZUO Xiao-wu[/align][/b]
Abstract The function of report generation is an important part of a complete Virtual Instrument system. Two methods of report generation based on LabVIEW and their characteristics are compared. Described the technology that LabVIEW is programmed jointly with Excel, appended the function of vocal alarming and automatic printing, which improves the data’s credibility and security.
Key words LabVIEW; Report Generation; Excel
1 引言
打印報(bào)表是測(cè)控系統(tǒng)普遍要求的一項(xiàng)基本功能,例如對(duì)產(chǎn)品進(jìn)行測(cè)試要有測(cè)試報(bào)告,長(zhǎng)期檢測(cè)一個(gè)生產(chǎn)過(guò)程要求有生產(chǎn)日?qǐng)?bào)表等,對(duì)報(bào)表的實(shí)時(shí)性提出了要求。目前,幾種用于生成報(bào)表的軟件有Visual Basic、Matlab Report Generator等。LabVIEW是NI公司退出的一種基于G語(yǔ)言的虛擬儀器軟件開(kāi)發(fā)工具。利用LabVIEW可以很方便地生成一個(gè)虛擬儀器系統(tǒng),完成信號(hào)的采集、數(shù)據(jù)處理等任務(wù)構(gòu)成一個(gè)完整的測(cè)試系統(tǒng)。LabVIEW本身帶有強(qiáng)大的報(bào)表生成功能,能與多種應(yīng)用程序的通訊成為報(bào)表生成技術(shù)中首選的工具。目前已大量用于測(cè)試系統(tǒng)的后期數(shù)據(jù)處理中,筆者在總結(jié)前人開(kāi)發(fā)報(bào)表生成功能的基礎(chǔ)上,添加了一些新功能,以完善整個(gè)測(cè)試系統(tǒng)。
2 報(bào)表生成功能的完善
報(bào)表生成方法可以通過(guò)這么幾種方法[1]:直接使用NI公司的Report Generation Toolkit生成報(bào)表;使用File I/O類函數(shù)生成報(bào)表;使用Report Generation類函數(shù)生成報(bào)表;利用Excel生成報(bào)表。然而,由于Report Generation Toolkit模塊沒(méi)有集成在LabVIEW中,須額外購(gòu)買,性價(jià)比不高;File I/O類函數(shù)生成的報(bào)表可讀性差,樣式簡(jiǎn)單,因此目前普遍采用后兩種方式。
2.1 使用Report Generation類函數(shù)生成報(bào)表
使用這種方法可以打印格式比較復(fù)雜的報(bào)表,而且操作簡(jiǎn)單。LabVIEW中的Report Generation子模板中提供了豐富的函數(shù)[2]。從生成一個(gè)新的報(bào)表,設(shè)置報(bào)表頁(yè)邊距、方向、頁(yè)眉文本,向報(bào)表中添加文字、圖片和表格等到打印報(bào)表都有全程的幫助文件供開(kāi)發(fā)者使用。以產(chǎn)品檢驗(yàn)報(bào)告為例,報(bào)表生成的程序如圖1所示。
[align=center]
圖1 使用Report Generation類函數(shù)生成報(bào)表框圖[/align]
由圖中,在報(bào)表中添加了曲線、數(shù)據(jù)、表格等,最終通過(guò)一個(gè)Case語(yǔ)句在LabVIEW主程序中直接打印報(bào)表,前面板如圖2所示。要注意的是,由于打印報(bào)表只能打印瞬間的數(shù)據(jù)值,故要求打印圖標(biāo)按鈕不能長(zhǎng)期處于閉合狀態(tài),在此設(shè)置Mechanical Action為L(zhǎng)atch when pressed。
[align=center]
圖2使用ReportGeneration類函數(shù)生成報(bào)表前面板[/align]
使用該方法雖然操作簡(jiǎn)單,但也有一些不足。比如,對(duì)于復(fù)雜的數(shù)據(jù)就顯得力不從心;在實(shí)際測(cè)試系統(tǒng)中要求測(cè)量的點(diǎn)數(shù)往往上百個(gè),大批的數(shù)據(jù)要在LabVIEW要在前面板中設(shè)置顯然不切實(shí)際;雖然實(shí)現(xiàn)了打印功能,但打印效果不符合傳統(tǒng)觀念中的報(bào)表,數(shù)據(jù)可移植性不高。鑒于此,提出用Excel生成報(bào)表。
2.2 利用Excel生成報(bào)表
Microsoft Excel是強(qiáng)大的數(shù)據(jù)處理軟件,應(yīng)用極為廣泛,通過(guò)與LabVIEW的結(jié)合,將采集到的數(shù)據(jù)傳送到Excel中,充分利用了兩者的功能。Excel本身含有大量的模板,用戶可以預(yù)先定制模板以確定報(bào)告格式,通過(guò)兩大應(yīng)用程序之間的通訊協(xié)議,利用DDE和ActiveX方式生成報(bào)表,然后在程序中添加語(yǔ)音效果、打印功能、數(shù)據(jù)保存等功能,進(jìn)一步完善報(bào)表的附帶功能。下面以鍋爐供熱自動(dòng)控制系統(tǒng)的報(bào)表程序?yàn)槔?,介紹一個(gè)功能齊全的報(bào)表生成系統(tǒng)。
[align=center]
圖3 報(bào)表生成前面板[/align]
首先,報(bào)表的主界面如圖3所示,用戶可以設(shè)置報(bào)表生成即Excel文件生成的路徑,在報(bào)表名稱、報(bào)表生成的起始與終止時(shí)間處分別填入需要的參數(shù)。左方為各項(xiàng)測(cè)量指標(biāo)的名稱,用戶可以根據(jù)需要修改,而且設(shè)置了冗余項(xiàng),在右下角的要測(cè)的指標(biāo)中選擇數(shù)目,主界面可自動(dòng)擴(kuò)展指標(biāo)項(xiàng)供用戶添加。
其次,如用戶需要打印前面板,可以按打印前面板按鈕實(shí)現(xiàn)。界面的右下角附有使用說(shuō)明,方便開(kāi)發(fā)者與用戶的溝通。部分程序框圖如圖4、5所示。
[align=center]
圖4 設(shè)置路徑與表名[/align]
[align=center]
圖5 向Excel傳送數(shù)據(jù)[/align]
由于LabVIEW提供了自動(dòng)打印的功能,故要打印前面板中的曲線,只需要將需要打印的對(duì)象做成子VI,當(dāng)程序調(diào)用該子VI時(shí)實(shí)現(xiàn)打印功能[3]。主程序框圖如圖6所示,該方法實(shí)現(xiàn)的關(guān)鍵點(diǎn)在于:主程序需要將曲線坐標(biāo)的上下限傳給子VI,通過(guò)屬性節(jié)點(diǎn)實(shí)現(xiàn),如圖中所示。
[align=center]
圖6 自動(dòng)打印主程序框圖[/align]
最后,在該系統(tǒng)中加入聲音報(bào)警功能[4]。在線檢測(cè)系統(tǒng)一般都需要報(bào)警功能,實(shí)現(xiàn)的方法為在程序中預(yù)先錄入一段聲音,當(dāng)報(bào)表生成過(guò)程中出現(xiàn)報(bào)錯(cuò)等意外出錯(cuò)時(shí),可以及時(shí)提醒工作人員,以免造成因數(shù)據(jù)錯(cuò)誤帶來(lái)的事故,這在工業(yè)監(jiān)控過(guò)程中是非常必要的。我們還是利用LabVIEW中的聲音函數(shù)錄制聲音,程序框圖如圖7所示。
[align=center]
圖7 錄制聲音[/align]
在SI CONFIG函數(shù)中可以選擇立體聲或者單通道。然后我們把生成的文件作為聲音文件,作為出錯(cuò)報(bào)警時(shí)的源文件,框圖如圖8所示。
[align=center]
圖8 播放聲音[/align]
3 結(jié)論與應(yīng)用
到此,一個(gè)完整的功能齊全的報(bào)表生成系統(tǒng)已經(jīng)介紹好了。并已在汽車熱工性能測(cè)試系統(tǒng)中試用,大大減輕了工作人員的數(shù)據(jù)記錄的負(fù)擔(dān),同時(shí)提高了安全性、可靠性,在數(shù)據(jù)圖表打印方面真正做到了所見(jiàn)即所出。
本文作者創(chuàng)新點(diǎn):集成各種功能如數(shù)據(jù)、圖表實(shí)時(shí)打印等,開(kāi)發(fā)出了一套功能齊全的報(bào)表生成系統(tǒng),操作簡(jiǎn)單,數(shù)據(jù)可移植性強(qiáng),優(yōu)于目前普遍使用的報(bào)表生成系統(tǒng);同時(shí),在程序設(shè)計(jì)中添加了報(bào)警功能,為工況現(xiàn)場(chǎng)的安全性和可靠性提供了保障。
參考文獻(xiàn)
[1] 楊樂(lè)平等.LabVIEW高級(jí)程序設(shè)計(jì).北京:清華大學(xué)出版社,2003.
[2] 石博強(qiáng)等.LabVIEW編程技術(shù)實(shí)用教程.北京:中國(guó)鐵道出版社,2002.
[3] 趙海龍.給LabVIEW中的對(duì)象添加自動(dòng)打印功能[J].微計(jì)算機(jī)信息,2001,17(12):32-34.
[4] 雷振山.LabVIEW7Express實(shí)用技術(shù)教程.北京:中國(guó)鐵道出版社,2005.