王建新 吳曉陽(yáng) 吳獻(xiàn)東 仇高賀
(溫州出入境檢驗(yàn)檢疫局 浙江溫州 325604)
通斷檢測(cè)采集軟件的要求和LabVIEW編程
王建新 吳曉陽(yáng) 吳獻(xiàn)東 仇高賀
(溫州出入境檢驗(yàn)檢疫局 浙江溫州 325604)
闡述了低壓電器通斷檢測(cè)數(shù)據(jù)采集軟件在硬件控制、波形顯示、報(bào)告輸出等方面上的基本要求,分析了LabVIEW軟件實(shí)現(xiàn)這些要求的對(duì)應(yīng)編程功能,并給出了相關(guān)程序示例;與其他軟件對(duì)比說(shuō)明了LabVIEW軟件用于通斷檢測(cè)的優(yōu)缺點(diǎn)。
低壓電器;數(shù)據(jù)采集;LabVIEW
低壓電器通斷檢測(cè)采集軟件的任務(wù)主要是控制采集卡啟/停,隨之進(jìn)行數(shù)據(jù)讀取、顯示、分析計(jì)算、報(bào)告輸出以及與數(shù)據(jù)庫(kù)交互、遠(yuǎn)程控制操作等功能。采集軟件通常采用VC++、VB等較常見(jiàn)的編程軟件開(kāi)發(fā),但對(duì)開(kāi)發(fā)者的要求相對(duì)較高,而使用LabVIEW軟件編程可以更容易、高效地完成相關(guān)功能,因此近年來(lái)它在低壓電器檢測(cè)方面獲得了較多應(yīng)用[1-3]。然而低壓電器通斷檢測(cè)軟件在采集、界面、報(bào)告輸出等有其特殊要求,除滿(mǎn)足檢測(cè)標(biāo)準(zhǔn)的基本要求外,還要在上述方面符合行業(yè)的通用規(guī)則。本研究對(duì)使用LabVIEW開(kāi)發(fā)此類(lèi)軟件時(shí)的幾個(gè)關(guān)鍵問(wèn)題進(jìn)行了分析,并提出了解決辦法。
LabVIEW——實(shí)驗(yàn)室虛擬儀器工程平臺(tái)軟件,是美國(guó)國(guó)家儀器公司所開(kāi)發(fā)的圖形化程序編譯平臺(tái),測(cè)量和測(cè)試是其應(yīng)用最廣泛的領(lǐng)域,并具有以下特色:
(1)采用圖形化編程并且編程簡(jiǎn)單,在流程圖構(gòu)思完畢的同時(shí)也基本上完成了程序的撰寫(xiě);
(2)具備功能豐富的用于測(cè)試的控件和函數(shù);
(3)大量的采集卡和儀器支持LabVIEW,DAQ助手可迅速開(kāi)發(fā)采集控制編程;
(4)默認(rèn)以多線程運(yùn)行程序,簡(jiǎn)化了開(kāi)發(fā)流程。
3.1 采集控制
采集軟件應(yīng)具有采集硬件的量程、采樣速率、采集時(shí)間、觸發(fā)通道、觸發(fā)方式、觸發(fā)前預(yù)留數(shù)據(jù)量等設(shè)置功能,還應(yīng)有控制采集啟動(dòng)、停止的功能。LabVIEW中用DAQ助手可迅速配置一個(gè)采集子VI,并轉(zhuǎn)換成代碼;將代碼中相關(guān)參數(shù)關(guān)聯(lián)到界面中的輸入控件,就可得到比較完善的采集控制。DAQ助手產(chǎn)生代碼的缺點(diǎn)是在采集時(shí)有一個(gè)時(shí)間限制,當(dāng)沒(méi)有采到足夠數(shù)據(jù)且時(shí)間未到時(shí),不能人工停止。為解決此問(wèn)題,可以采用圖1所示的編程方案。
圖1 人工停止采集的一種方法
圖1 中“控制采集.vi”是抽取DAQ助手產(chǎn)生代碼的有用部分形成的子VI,其中包含各通道基本設(shè)置。其停止采集的原理是當(dāng)采集運(yùn)行后進(jìn)入一個(gè)While循環(huán),此循環(huán)可被有條件結(jié)束:① “DAQmx任務(wù)”的“done”參數(shù)為true(采集到數(shù)據(jù)且“DAQmx Read.vi”執(zhí)行);②采樣出錯(cuò)或限制時(shí)間到(圖中的“超 時(shí)S”的設(shè)定時(shí)間);③人工停止信號(hào)(即圖中下方的“采集狀態(tài)”變量)。
由于LabVIEW的程序自動(dòng)為多任務(wù),因此可以把圖1程序放在一個(gè)接受“通知器”函數(shù)消息的條件判斷結(jié)構(gòu)中。當(dāng)開(kāi)始采集時(shí),“通知器”發(fā)出通知,此段程序開(kāi)始執(zhí)行,通過(guò)改變“采集狀態(tài)”變量即可停止采集任務(wù)。
3.2 顯示和操作功能
采集軟件的界面需要能夠使波形數(shù)據(jù)正確、快速顯示,通過(guò)菜單、工具欄、按鈕等提供硬件設(shè)置、顯示設(shè)置、計(jì)算設(shè)置、項(xiàng)目設(shè)置等功能,并能實(shí)現(xiàn)采集數(shù)據(jù)和相關(guān)設(shè)置的存儲(chǔ)等。LabVIEW軟件可以實(shí)現(xiàn)上述要求,由于其支持控件的“自定義”,即改變組成控件的各層圖片或底色,可以高效地設(shè)計(jì)出豐富多彩的界面,在這一點(diǎn)上效率遠(yuǎn)高于VC++等軟件。
LabVIEW具有多個(gè)專(zhuān)用于波形顯示的控件,其中有2個(gè)可以顯示多通道模擬信號(hào)的控件——“混合信號(hào)圖”和“波形圖表”,此外還可以使用多個(gè)“波形圖”控件組合進(jìn)行顯示,見(jiàn)圖2。
圖2 不同控件波形顯示效果
(1)混合信號(hào)圖效果見(jiàn)圖2(a),每個(gè)通道曲線可以用一個(gè)“繪圖區(qū)域”來(lái)顯示,也支持在一個(gè)繪圖區(qū)域顯示多條曲線,同時(shí)支持水平和垂直滾動(dòng)條。其優(yōu)點(diǎn)在于:
①各“繪圖區(qū)域”的操作相互關(guān)聯(lián),例如一個(gè)區(qū)域水平擴(kuò)展,其余區(qū)域則自動(dòng)跟隨;
②各“繪圖區(qū)域”有獨(dú)立的縱坐標(biāo),可以獨(dú)立設(shè)置高度、顏色、曲線類(lèi)型等參數(shù);
③可以滾動(dòng)顯示各“繪圖區(qū)域”,也可以在編程狀態(tài)任意增刪“繪圖區(qū)域”;
④支持自定義改變邊框大小、底色等;
⑤具有圖形工具可以進(jìn)行縮放、拖動(dòng)等操作,有游標(biāo)工具輔助測(cè)量。
當(dāng)只需要在一個(gè)屏幕顯示所有通道的情況下,此時(shí)編程屏蔽垂直滾動(dòng)條、圖例等工具,通過(guò)自定義功能改變外觀,而其縮放、游標(biāo)等功能可通過(guò)其屬性節(jié)點(diǎn)附加到軟件界面中相關(guān)按鈕,同時(shí)通過(guò)消息循環(huán)機(jī)制自動(dòng)設(shè)定各“繪圖區(qū)域高度”,可獲得圖2(b)的顯示效果,基本上符合行業(yè)通用格式。
其缺點(diǎn)是不能在運(yùn)行時(shí)增加或刪除“繪圖區(qū)域”。對(duì)于全部通道在一個(gè)屏幕上顯示的情況(無(wú)垂直滾動(dòng)條),可以在編程時(shí)把混合信號(hào)圖的“繪圖區(qū)域”設(shè)定到所需最大數(shù)目通道,當(dāng)增刪通道時(shí)通過(guò)改變各區(qū)域高度即可“顯示或刪除”通道,但當(dāng)同時(shí)需要滾動(dòng)顯示時(shí)就無(wú)法處理了。
(2)“波形圖表”也可以提供多通道顯示,見(jiàn)圖2(c),用法與混合信號(hào)圖類(lèi)似,但有以下問(wèn)題:
①無(wú)垂直滾動(dòng)條,因此不適用于滾動(dòng)顯示;
②也不能實(shí)現(xiàn)運(yùn)行時(shí)增刪通道。
(3)可以通過(guò)多個(gè)“波形圖”控件組合來(lái)顯示,圖2(d)顯示了相關(guān)效果。這種方法可以實(shí)現(xiàn)比較復(fù)雜的功能,編程也相對(duì)復(fù)雜。可以在軟件中預(yù)先放置多個(gè)“波形圖”控件并按順序排列,按倒序控制每個(gè)控件的顯示或隱藏,同時(shí)將輸入曲線重新排序,即可實(shí)現(xiàn)任意增刪通道的目的。當(dāng)多個(gè)控件在由“分隔欄”構(gòu)成的區(qū)域中,其顯示與該區(qū)域滾動(dòng)條自動(dòng)關(guān)聯(lián),可以實(shí)現(xiàn)滾動(dòng)顯示。但在實(shí)際編程時(shí)還要考慮多個(gè)方面,主要有:任一個(gè)控件的相關(guān)參數(shù)變化需要通過(guò)事件機(jī)制編程來(lái)控制其他控件;當(dāng)控件或界面尺寸變化時(shí),需要重新計(jì)算各控件在界面中的坐標(biāo)位置和控件內(nèi)部各區(qū)域的尺寸;各控件y軸數(shù)字長(zhǎng)度變化引起波形顯示區(qū)域尺寸變化時(shí),其他波形顯示區(qū)域也要相隨變化的問(wèn)題。
相比其他編程工具,采用一般的顯示控件很難達(dá)到類(lèi)似LabVIEW中波形控件的顯示效果,如果采用軟件編程繪圖方式,則要考慮各種圖形操作、曲線繪圖、圖形幾何變換計(jì)算、繪圖速度等問(wèn)題,開(kāi)發(fā)工作量大且效果取決于于編程者的能力。當(dāng)然這些軟件由于編程自由度較高,能夠完成一些更高級(jí)的功能,例如LabVIEW中就無(wú)法對(duì)相鄰幾個(gè)顯示控件用一個(gè)窗口選擇拖動(dòng)放大。
3.3 word報(bào)告輸出
通斷檢測(cè)報(bào)告的格式在行業(yè)內(nèi)基本相似,由波形圖、計(jì)算結(jié)果等信息構(gòu)成,一般采用表格形式,要求:①所見(jiàn)即所得,即波形圖的屏幕顯示和報(bào)告相一致;②可以由用戶(hù)方便地修改模板,實(shí)現(xiàn)不同顯示格式和內(nèi)容。
報(bào)告輸出可以采用軟件自繪方式,也可以采用專(zhuān)用控件如水晶報(bào)表等。目前較常見(jiàn)的是軟件編程控制Word軟件,使用預(yù)先設(shè)置的模板產(chǎn)生報(bào)告文件,然后通過(guò)替換書(shū)簽或字符方式改變內(nèi)容。
在LabVIEW中,波形顯示控件都可以通過(guò)“獲得圖像”調(diào)用節(jié)點(diǎn)從而得到整個(gè)控件的圖像,而后可以通過(guò)“還原像素圖”、“繪制還原像素圖”輸出到空的“Picture”控件中,之后轉(zhuǎn)換成“BMP”格式圖片并將其插入到Word文件中。
在LabVIEW中提供了對(duì)“添加圖像至報(bào)表”函數(shù),可以通過(guò)替換書(shū)簽方式插入圖像。對(duì)于其他如文字類(lèi)型等沒(méi)有提供替換書(shū)簽的函數(shù),可以通過(guò)“Word查找和替換”函數(shù)替換指定字符串實(shí)現(xiàn)。使用VC++等軟件編程則可以做到全部用書(shū)簽替換,這影響到了最終用戶(hù)模板制作方式。
3.3.1 多個(gè)“波形圖”控件報(bào)告輸出
對(duì)于多個(gè)“波形圖”控件報(bào)告輸出要考慮以下幾點(diǎn)問(wèn)題:
(1)每個(gè)控件產(chǎn)生一個(gè)圖像,必須將其合為一個(gè)圖像;
(2)合成時(shí)要考慮每個(gè)分圖像在合成圖像的坐標(biāo)位置;
(3)要考慮到最終圖像與報(bào)告對(duì)應(yīng)單元格的尺寸比例問(wèn)題,如不能匹配則插入的圖片就會(huì)變形,可以通過(guò)LabVIEW提供的Word函數(shù)查詢(xún)報(bào)告輸出文件的表格參數(shù)得到相關(guān)參數(shù)。
圖3 輸出word報(bào)告程序示例
圖4 多個(gè)“波形圖”控件轉(zhuǎn)化“BMP”格式程序
圖3 展示了如何用圖片替換報(bào)告中的書(shū)簽以及將圖中“計(jì)算列表”內(nèi)容替換到Word文件中的程序。其中“報(bào)告圖片高度”和“報(bào)告圖片寬度”是將規(guī)定的每個(gè)“波形圖”控件生成圖像的尺寸,“有效通道”是包含當(dāng)前通道項(xiàng)名列表框的內(nèi)容屬性節(jié)點(diǎn),“窗格2”是分隔欄所劃分區(qū)域中的所有“波形圖”控件集合,“計(jì)算列表填充”用于得到計(jì)算設(shè)置的相關(guān)項(xiàng)目。圖中將得到的通道圖像轉(zhuǎn)換成BMP文件,再通過(guò)替換書(shū)簽“pic1”插入到Word報(bào)表,通過(guò)循環(huán)將所有計(jì)算相關(guān)信息替換Word報(bào)告中的相應(yīng)字符串。
圖4是圖3中“疊加圖片”子V I的程序框圖,展示了如何獲得“波形圖”控件圖像并合成“BMP”格式圖片的程序,“示波控件組”即所有正在顯示的“波形圖”控件組合。圖中“拷貝波形圖”子VI是將界面中所顯示的各“波形圖”控件所有參數(shù)拷貝到一個(gè)已有的“波形圖”控件(圖中為“波形圖1”)?!翱截悺笔峭ㄟ^(guò)使各控件屬性節(jié)點(diǎn)信息相同得以實(shí)現(xiàn),而“波形圖1”的尺寸是由圖中“寬度”和“高度”變量決定,由此控制最終獲得的圖像尺寸比例合適。
3.3.2 “混合信號(hào)圖”控件報(bào)告輸出
“混合信號(hào)圖”控件和“波形圖”控件操作方法類(lèi)似,但不需要多個(gè)通道合成,只需要獲得整個(gè)控件圖像即可,其缺點(diǎn)是如果“混合信號(hào)圖”有垂直滾動(dòng)條則無(wú)法得到控件顯示部分之外的圖像。解決辦法是可以放置另一個(gè)控件,并拷貝相應(yīng)參數(shù)使其與屏幕上控件顯示效果相一致,同時(shí)控制各“繪圖區(qū)域”高度使得所有通道同時(shí)全部顯示在控件中,從而獲得圖像。
3.4 數(shù)據(jù)計(jì)算
計(jì)算功能關(guān)系到測(cè)量準(zhǔn)確度,應(yīng)盡可能自動(dòng)計(jì)算以提高效率。目前除了燃弧時(shí)間外,其他常用計(jì)算均可得到滿(mǎn)意結(jié)果。LabVIEW提供了許多有用的如平均值、峰值、有效值等算法以及擬合濾波等函數(shù),但在應(yīng)用到通斷檢測(cè)時(shí)還需要對(duì)數(shù)據(jù)進(jìn)行一些處理,比如查找波形有效起點(diǎn)、過(guò)零點(diǎn)、去除畸變部分波形等,相較其他軟件而言,仍可大大降低編程強(qiáng)度。對(duì)于低壓電器各種參數(shù)算法,有許多文獻(xiàn)已經(jīng)做了研究[4-5],在LabVIEW中將它們轉(zhuǎn)化并不困難。
根據(jù)低壓電器通斷檢測(cè)軟件其共性的基本要求,本研究中給出了LabVIEW編制采集軟件時(shí)幾個(gè)通用性問(wèn)題的解決示例,表明使用LabVIEW軟件可以滿(mǎn)足常規(guī)的各種要求;通過(guò)靈活使用屬性節(jié)點(diǎn)和調(diào)用節(jié)點(diǎn)可以設(shè)計(jì)出用其他軟件可以做到的大部分效果,而且編程代碼量大大減少;對(duì)比其他編程軟件,LabVIEW軟件在專(zhuān)業(yè)性、易用性、易學(xué)性、易維護(hù)性具有明顯的優(yōu)勢(shì),使用者可針對(duì)不同檢測(cè)要求快速調(diào)整軟件和增加功能,對(duì)提高檢測(cè)水準(zhǔn)具有很高價(jià)值。
[1] 蘇金州,許志紅,施東升. 基于LabVIEW的低壓電器數(shù)據(jù)采集系統(tǒng)[J]. 低壓電器,2009,7:27-30.
[2] 徐敦林. 虛擬儀器在低壓電器中的應(yīng)用[J]. 機(jī)電信息,2010,12:61
[3] 阮慶洲,陳建兵,朱剛. 基于LabVIEW的智能低壓電器測(cè)試技術(shù)[J]. 低壓電器,2011,5:55-57,60.
[4] 龐琳,陳建兵,王愛(ài)國(guó). 包絡(luò)擬合法在求取功率因數(shù)中的應(yīng)用[J]. 低壓電器,2007,23:53-55.
[5] 鄢來(lái)君. 低壓電器短路試驗(yàn)離散數(shù)據(jù)處理[J]. 低壓電器,2010,15:52-55.
[6] 陳錫輝,張銀洪.LabVIEW8.20程序設(shè)計(jì)從入門(mén)到精通[M].北京:清華大學(xué)出版社,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
浙江出入境檢驗(yàn)檢疫局科技計(jì)劃項(xiàng)目(ZK201207);國(guó)家質(zhì)檢總局科技計(jì)劃項(xiàng)目(2010IK076)