《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > LabVIEW中綜合報(bào)表生成技術(shù)的開發(fā)
LabVIEW中綜合報(bào)表生成技術(shù)的開發(fā)
摘要: 報(bào)表生成功能是一個(gè)完備的虛擬儀器測試系統(tǒng)的重要組成部分。比較了兩種LabVIEW平臺下報(bào)表生成方法及特點(diǎn)。重點(diǎn)闡述LabVIEW與Excel的數(shù)據(jù)通信,并添加了聲音報(bào)警、自動打印功能,提高了數(shù)據(jù)的可靠性與安全性。
關(guān)鍵詞: 虛擬儀器 報(bào)表生成 NI
Abstract:
Key words :

1 引言

  打印報(bào)表是測控系統(tǒng)普遍要求的一項(xiàng)基本功能,例如對產(chǎn)品進(jìn)行測試要有測試報(bào)告,長期檢測一個(gè)生產(chǎn)過程要求有生產(chǎn)日報(bào)表等,對報(bào)表的實(shí)時(shí)性提出了要求。目前,幾種用于生成報(bào)表的軟件有Visual Basic、Matlab Report Generator等。LabVIEW是NI公司退出的一種基于 G語言的虛擬儀器軟件開發(fā)工具。利用LabVIEW可以很方便地生成一個(gè)虛擬儀器系統(tǒng),完成信號的采集、數(shù)據(jù)處理等任務(wù)構(gòu)成一個(gè)完整的測試系統(tǒng)。 LabVIEW本身帶有強(qiáng)大的報(bào)表生成功能,能與多種應(yīng)用程序的通訊成為報(bào)表生成技術(shù)中首選的工具。目前已大量用于測試系統(tǒng)的后期數(shù)據(jù)處理中,筆者在總結(jié)前人開發(fā)報(bào)表生成功能的基礎(chǔ)上,添加了一些新功能,以完善整個(gè)測試系統(tǒng)。

2 報(bào)表生成功能的完善

  報(bào)表生成方法可以通過這么幾種方法[1]:直接使用NI公司的Report Generation Toolkit生成報(bào)表;使用File I/O類函數(shù)生成報(bào)表;使用Report Generation類函數(shù)生成報(bào)表;利用Excel生成報(bào)表。然而,由于 Report Generation Toolkit模塊沒有集成在LabVIEW中,須額外購買,性價(jià)比不高;File I/O類函數(shù)生成的報(bào)表可讀性差,樣式簡單,因此目前普遍采用后兩種方式。

  2.1 使用Report Generation類函數(shù)生成報(bào)表

  使用這種方法可以打印格式比較復(fù)雜的報(bào)表,而且操作簡單。LabVIEW中的Report Generation子模板中提供了豐富的函數(shù)[2]。從生成一個(gè)新的報(bào)表,設(shè)置報(bào)表頁邊距、方向、頁眉文本,向報(bào)表中添加文字、圖片和表格等到打印報(bào)表都有全程的幫助文件供開發(fā)者使用。以產(chǎn)品檢驗(yàn)報(bào)告為例,報(bào)表生成的程序如圖1所示。

 


圖1 使用Report Generation類函數(shù)生成報(bào)表框圖

  由圖中,在報(bào)表中添加了曲線、數(shù)據(jù)、表格等,最終通過一個(gè)Case語句在LabVIEW主程序中直接打印報(bào)表,前面板如圖2所示。要注意的是,由于打印報(bào)表只能打印瞬間的數(shù)據(jù)值,故要求打印圖標(biāo)按鈕不能長期處于閉合狀態(tài),在此設(shè)置Mechanical Action為 Latch when pressed。

 


圖2使用ReportGeneration類函數(shù)生成報(bào)表前面板

  使用該方法雖然操作簡單,但也有一些不足。比如,對于復(fù)雜的數(shù)據(jù)就顯得力不從心;在實(shí)際測試系統(tǒng)中要求測量的點(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)用極為廣泛,通過與LabVIEW的結(jié)合,將采集到的數(shù)據(jù)傳送到Excel中,充分利用了兩者的功能。Excel本身含有大量的模板,用戶可以預(yù)先定制模板以確定報(bào)告格式,通過兩大應(yīng)用程序之間的通訊協(xié)議,利用DDE和ActiveX方式生成報(bào)表,然后在程序中添加語音效果、打印功能、數(shù)據(jù)保存等功能,進(jìn)一步完善報(bào)表的附帶功能。下面以鍋爐供熱自動控制系統(tǒng)的報(bào)表程序?yàn)槔?,介紹一個(gè)功能齊全的報(bào)表生成系統(tǒng)。

 


圖3 報(bào)表生成前面板

  首先,報(bào)表的主界面如圖3所示,用戶可以設(shè)置報(bào)表生成即Excel文件生成的路徑,在報(bào)表名稱、報(bào)表生成的起始與終止時(shí)間處分別填入需要的參數(shù)。左方為各項(xiàng)測量指標(biāo)的名稱,用戶可以根據(jù)需要修改,而且設(shè)置了冗余項(xiàng),在右下角的要測的指標(biāo)中選擇數(shù)目,主界面可自動擴(kuò)展指標(biāo)項(xiàng)供用戶添加。

  其次,如用戶需要打印前面板,可以按打印前面板按鈕實(shí)現(xiàn)。界面的右下角附有使用說明,方便開發(fā)者與用戶的溝通。部分程序框圖如圖4、5所示。

 


圖4 設(shè)置路徑與表名



圖5 向Excel傳送數(shù)據(jù)

  由于LabVIEW提供了自動打印的功能,故要打印前面板中的曲線,只需要將需要打印的對象做成子VI,當(dāng)程序調(diào)用該子VI時(shí)實(shí)現(xiàn)打印功能[3]。主程序框圖如圖6所示,該方法實(shí)現(xiàn)的關(guān)鍵點(diǎn)在于:主程序需要將曲線坐標(biāo)的上下限傳給子VI,通過屬性節(jié)點(diǎn)實(shí)現(xiàn),如圖中所示。

 


圖6 自動打印主程序框圖

  最后,在該系統(tǒng)中加入聲音報(bào)警功能[4]。在線檢測系統(tǒng)一般都需要報(bào)警功能,實(shí)現(xiàn)的方法為在程序中預(yù)先錄入一段聲音,當(dāng)報(bào)表生成過程中出現(xiàn)報(bào)錯等意外出錯時(shí),可以及時(shí)提醒工作人員,以免造成因數(shù)據(jù)錯誤帶來的事故,這在工業(yè)監(jiān)控過程中是非常必要的。我們還是利用LabVIEW中的聲音函數(shù)錄制聲音,程序框圖如圖7所示。

 


圖7 錄制聲音

  在SI CONFIG函數(shù)中可以選擇立體聲或者單通道。然后我們把生成的文件作為聲音文件,作為出錯報(bào)警時(shí)的源文件,框圖如圖8所示。

 


圖8 播放聲音

3 結(jié)論與應(yīng)用

  到此,一個(gè)完整的功能齊全的報(bào)表生成系統(tǒng)已經(jīng)介紹好了。并已在汽車熱工性能測試系統(tǒng)中試用,大大減輕了工作人員的數(shù)據(jù)記錄的負(fù)擔(dān),同時(shí)提高了安全性、可靠性,在數(shù)據(jù)圖表打印方面真正做到了所見即所出。

  本文作者創(chuàng)新點(diǎn):集成各種功能如數(shù)據(jù)、圖表實(shí)時(shí)打印等,開發(fā)出了一套功能齊全的報(bào)表生成系統(tǒng),操作簡單,數(shù)據(jù)可移植性強(qiáng),優(yōu)于目前普遍使用的報(bào)表生成系統(tǒng);同時(shí),在程序設(shè)計(jì)中添加了報(bào)警功能,為工況現(xiàn)場的安全性和可靠性提供了保障。

參考文獻(xiàn)

  [1] 楊樂平等.LabVIEW高級程序設(shè)計(jì).北京:清華大學(xué)出版社,2003.

  [2] 石博強(qiáng)等.LabVIEW編程技術(shù)實(shí)用教程.北京:中國鐵道出版社,2002.

  [3] 趙海龍.給LabVIEW中的對象添加自動打印功能[J].微計(jì)算機(jī)信息,2001,17(12):32-34.

  [4] 雷振山.LabVIEW7Express實(shí)用技術(shù)教程.北京:中國鐵道出版社,2005.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。