黃 幸,孟 進,唐 健,張嘉毫
(海軍工程大學(xué)艦船綜合電力技術(shù)國防科技重點實驗室,武漢 430033)
基于LabVIEW的艦船多通道濾波系統(tǒng)報表生成技術(shù)
黃 幸,孟 進,唐 健,張嘉毫
(海軍工程大學(xué)艦船綜合電力技術(shù)國防科技重點實驗室,武漢 430033)
報表生成是實驗系統(tǒng)記錄和保存數(shù)據(jù)的重要組成部分。本文介紹了LabVIEW中的幾種報表生成方法及特點,給出了利用NI公司的Report Generation Toolkit 生成專業(yè)Excel報表的具體編程方法,在多個通道的艦船濾波實驗測試系統(tǒng)中,實現(xiàn)了將三個通道的數(shù)據(jù)存入到報表中,并按需求在表格中插入公式處理數(shù)據(jù)、設(shè)定閾值,以按實驗需要顯示數(shù)據(jù)。
LabVIEW Excel報表 Report Generation技術(shù) 閾值
信息時代來臨,軍隊進入現(xiàn)代化,現(xiàn)代艦船系統(tǒng)共平臺通信系統(tǒng)中各類收發(fā)天線相互干擾問題嚴(yán)重。實驗室在解決空間耦合輻射干擾的問題上做了大量研究并取得了不錯的成果。但在實際試驗時,獲取濾波結(jié)果、記錄和保存實驗數(shù)據(jù)的過程十分重復(fù)繁瑣,且非常不智能。1986年NI公司提出虛擬儀器的概念,改變了傳統(tǒng)儀器的模式和結(jié)構(gòu),它對虛擬儀器和LabVIEW(Laboratory Virtual Instrument Engineering Workbench——實驗室虛擬儀器工程平臺)長期、系統(tǒng)、有效的研究開發(fā)使得該公司成為業(yè)界公認(rèn)的權(quán)威[1]。利用LabVIEW可以設(shè)計實驗室儀器自動測試和控制系統(tǒng),報表報表生成功能是一個完備自動測控系統(tǒng)的重要組成部分。在一些現(xiàn)有的測試系統(tǒng)中,對數(shù)據(jù)和分析結(jié)果仍用手動記錄、處理和保存。這種方式簡單直接,但許多實驗是多頻次的重復(fù)機械操作,以多通道濾波系統(tǒng)為例,實驗過程中需要記錄每一通道在一種實驗條件下信號頻率由2 MHz~29 MHz的濾波前后功率值,并計算功率比。針對多個通道多種實驗條件需記錄、處理、保存數(shù)據(jù)量就比較龐大,手動記錄效率低、易出錯的弊端就暴露出來了。所以利用LabVIEW實現(xiàn)將數(shù)據(jù)存儲成Excel報表形式具有重要的工程應(yīng)用價值與意義[2]。
利用LabVIEW生成報表的方式多種多樣[3],而生成Excel報表一般有以下幾種方法:1)使用File I/O類函數(shù)生成報表;2)利用Report Generation類函數(shù)生成報表;3)利用DDE生成報表[4];4)利用ActiveX生成報表[5];5)直接使用NI公司的Report Generation Toolkit工具包生成報表[6-7]。幾種方法生成報表方法的比較如表1所示。
表1 五種方法生成報表的方法比較
根據(jù)表1的比較,由于在實際試驗的自動測控系統(tǒng)中,有三個通道的實驗數(shù)據(jù)需要記錄保存,數(shù)據(jù)數(shù)量龐大、類目較多。實驗?zāi)苤苯訙y得的數(shù)據(jù)只包括濾掉干擾信號前的輸入信號功率P0和通過實驗裝置濾除干擾信號后的輸出信號功率P1,我們還要求對前后的數(shù)據(jù)進行算法比較處理,所以決定利用Report Generation Toolkit For Microsoft Office來開發(fā)生成所需要的報表程序。
LabVIEW的Report Generation Toolkit工具包包含了3類VIs(類似傳統(tǒng)語言的函數(shù)或過程):1)高級報告生成VIs,用于新建報告和進行常規(guī)操作;2)專門用于生成Word格式的報告VIs,其中包括了文檔管理、查找、替換、編輯和格式化word中的圖表、圖片,通過編寫VBA代碼自定義各種復(fù)雜的操作;3)專門用于生成Excel格式的報告VIs,其除了能進行常規(guī)的Excel操作外,還可以操作Excel中的宏[8]。
下面的舉例說明如何利用Report Generation技術(shù)實現(xiàn)LabVIEW與Excel間的通信。首先依實驗需要創(chuàng)建一個命名為三通道實驗數(shù)據(jù).xlsx的 Excel空文件模板。具體生成Excel報表步驟如下:
1)打開報表文件向指定單元格填寫對應(yīng)欄目名稱、輸入實驗測量數(shù)據(jù)。利用New Report.vi設(shè)置其report type屬性為Excel,在前面板選擇已建空模板三通道實驗數(shù)據(jù).xlsx的存放路徑即可打開該Excel文件。通過Excel Easy Title.vi函數(shù)給字符串變量Title賦值,可以自定義報告的標(biāo)題內(nèi)容,并設(shè)置標(biāo)題的字體、字號等參數(shù)。調(diào)用Append Report Text.vi功能子函數(shù)填寫對應(yīng)欄目名稱,由于輸入數(shù)據(jù)數(shù)量較多遂利用Append Table to Report.vi向報告中的指定位置插入表格,程序中將測試數(shù)據(jù)以二維數(shù)組的方式賦值給Append Table to Report.vi,并自定義row headers和column headers。在輸入這些標(biāo)題和數(shù)據(jù)時可利用參數(shù)MS Office parameters簇中的name(excel)參數(shù),或者可以輸入row和column來指定欄目名稱在報表中的位置。實現(xiàn)的部分程序如圖1所示。
2)輸入數(shù)據(jù)處理公式、按用戶需求顯示數(shù)據(jù)。實驗可直接測得消除干擾前的信號功率P0、消除干擾后的信號功率P1,算出信號處理前后的功率差I(lǐng)CR=P0-P1,利用Excel Insert Formula.vi向報表指定單元格輸入公式,求出每一個通道對應(yīng)的不同頻率下的ICR值,并在每一組通道數(shù)據(jù)的最后計算出ICR平均值。由于試驗對濾波效果有性能指標(biāo)要求,ICR需不低于40 dB。故借助條件結(jié)構(gòu)設(shè)定閾值,利用Excel Set Cell Font.vi顯示實驗數(shù)據(jù)使ICR值低于40 dB時顯示為紅色并劃上刪除線,當(dāng)值不低于40 dB時顯示為綠色。調(diào)用Excel Set Cell Alignment.vi設(shè)置單元格對齊方式。具體實現(xiàn)程序如圖2所示。
圖1 打開Excel模板并向指定單元格輸入標(biāo)題、數(shù)據(jù)程序
圖2 輸入公式并設(shè)定閾值程序
3)繪制對比圖。利用LabVIEW的程序通信功能可以把各項數(shù)據(jù)和曲線圖分別寫入表格中的指定位置。由于一共有三個通道的數(shù)據(jù),所以需要對這三個通道作一個縱向比較。當(dāng)檢測到三個通道的數(shù)據(jù)全部輸入三通道實驗數(shù)據(jù).xlsx表格中并完成算法處理后,程序設(shè)置與門判斷就生成三個通道的P0、P1和ICR值比較曲線圖。具體實現(xiàn)如圖3。最后使用Dispose Report.vi去關(guān)閉對Excel的調(diào)用,默認(rèn)情況下,調(diào)用Dispose Report.vi后,會連同打開的Excel模板也一同關(guān)閉,利用布爾變量將“Close Report”設(shè)置為“False”,在關(guān)閉Excel調(diào)用時就不會同時將模板文件關(guān)閉[9],用戶就可以繼續(xù)對填充的模板進行相應(yīng)的操作,比如打印、修改、保存等。至此完成了三通道實驗數(shù)據(jù)報表的生成。
圖3 繪制三個通道的對比圖程序
生成報表技術(shù)的前面板操作如圖4所示。打開三通道實驗數(shù)據(jù).xlsx的文件存放路徑,設(shè)定實驗閾值40,選擇好通道,運行程序,F(xiàn)ormat Data.vi會自動反饋數(shù)據(jù)輸入的時間和日期,便于日后查詢。圖5顯示了選擇通道一運行程序時在三通道實驗數(shù)據(jù).xlsx表格文件中的結(jié)果顯示,在Excel中保存寫入的數(shù)據(jù)然后在前面板選擇其它的通道將數(shù)據(jù)依次寫入報表,每次數(shù)據(jù)輸入報表并在表格中完成顯示后,都要注意保存數(shù)據(jù)。當(dāng)三個通道的數(shù)據(jù)都寫入、處理完畢時,程序則會繪制三個通道的縱向比較圖,如圖6即為將三個通道數(shù)據(jù)輸入Excel完成后的顯示結(jié)果。
圖4 生成報表程序前面板
本文介紹了比較了幾種利用LabVIEW生成報表的方法和特點。結(jié)合實際實驗處理數(shù)據(jù)的需要,采用Report Generation Toolkit For Microsoft Office模塊和Report Generation類函數(shù)模塊生成了界面清晰明了、功能復(fù)雜、內(nèi)容專業(yè)的Microsoft Excel格式報表。在實際的艦船試驗測試系統(tǒng)中,對于龐大的數(shù)據(jù)群,其準(zhǔn)確、快速的操作方式大大提高了工作效率,計算處理的實驗結(jié)果也一目了然。相比于其它報表生成技術(shù),這種方式在生成復(fù)雜報表時有明顯優(yōu)勢。
圖5 通道一實驗數(shù)據(jù)寫入Excel結(jié)果顯示
圖6三個通道數(shù)據(jù)輸入Excel完成后的顯示結(jié)果
[1] Zhao J, Abu-Mulaweh H I.Rejuvenate an old Tinius Olsen machine with computer data acquisition using its existing hardware and LabVIEW[J]. Computer Applications in Engineering Education, 2008, 16 (3): 165-171.
[2] 熊舸, 劉嫻, 張煜, 等. 基于LabVIEW的實時串口數(shù)據(jù)采集及Excel報表生成技術(shù)[J]. 軟件, 2014, 5(3): 28-32.
[3] 曲海山, 龔明, 馮云. 基于LabVIEW的Word報表生成方法[J]. 制導(dǎo)與引信, 2013(1): 54-58.
[4] 陳金平, 王生澤, 吳文英. LabVIEW與Excel的通信方法[J]. 自動化儀表, 2006, 27(4): 65-67.
[5] 劉允峰. 基于LabVIEW8.5和ActiveX技術(shù)的報表生成[J]. 國外電子測量技術(shù), 2011, 30(1): 64-66.
[6] 張磊, 王斌. LabVIEW報表生成技術(shù)在計量系統(tǒng)中的應(yīng)用[J]. 計測技術(shù), 2005, 25(3): 61-62.
[7] 閆群民. 基于LabVIEW的超文本報表生成方法[J].自動化儀表, 2010, 31(7): 29-31.
[8] 侯國屏, 王珅, 葉齊鑫. LabVIEW7.1編程與虛擬儀器設(shè)計[M]. 北京: 清華大學(xué)出版社有限公司, 2005.
[9] 苑光明, 申敏, 張春慧, 等. 基于LabVIEW的液力變矩器性能測試系統(tǒng)報表生成技術(shù)研究[J]. 工程機械, 2013, 44(9).
LabVIEW-based Report Generation Technique in the Warship's Multichannel Test System
Huang Xing, Meng Jin, Tang Jian, Zhang Jiahao
(National Key Laboratory for Vessel Integrated Power System Technology, Naval University of Engineering, Wuhan 430033, China)
Report generation is an important part of the test system to record and save the data. This paper introduces several methods of report generation based on LabVIEW and their characteristics and illustrates in detail the programming method which makes use of Report Generation Toolkit to generate professional Excel report. In the Multichannel Warship Test System these functions that users can store three-channel data into table, insert formulas to process data, set a threshold value and display the data according to demand are realized.
LabVIEW; Excel report; report generation technique; threshold
TP311.1
A
1003-4862(2015)06-0015-04
2015-02-03
國家自然科學(xué)基金資助項目(61201055)
國家自然科學(xué)基金資助項目(51422705)
黃幸(1991-),女,碩士研究生。研究方向:電力系統(tǒng)電磁兼容技術(shù)。