師文江 潘峰 中國(guó)飛行試驗(yàn)研究院遠(yuǎn)方測(cè)試系統(tǒng)研究中心 710089
多總線綜合測(cè)試系統(tǒng)的虛擬儀器應(yīng)用
師文江 潘峰 中國(guó)飛行試驗(yàn)研究院遠(yuǎn)方測(cè)試系統(tǒng)研究中心 710089
測(cè)試系統(tǒng)是復(fù)雜多樣的,往往無(wú)法只用一種硬件體系平臺(tái)或者一種集成方式就能滿足應(yīng)用需求。而虛擬儀器技術(shù)正是從軟件上解決復(fù)雜測(cè)試系統(tǒng)集成問(wèn)題的辦法。本文通過(guò)介紹虛擬儀器技術(shù)在多總線綜合測(cè)試系統(tǒng)項(xiàng)目中的應(yīng)用,反映了這種技術(shù)的靈活性和實(shí)用性。
虛擬儀器;測(cè)試系統(tǒng);LabView;驅(qū)動(dòng)程序;動(dòng)態(tài)可編程技術(shù)
在大型的測(cè)試系統(tǒng)當(dāng)中,往往會(huì)遇到VXI、PXI、CompactPCI、VME等多總線系統(tǒng),還有IEEE1394、GPIB、以太網(wǎng)、USB等多種接口。這么多種接口和總線,如何用軟件來(lái)把它們集成起來(lái)實(shí)現(xiàn)應(yīng)用功能呢?在這種多接口和多總線的前提下很難找到一種軟件,能同時(shí)把整個(gè)系統(tǒng)所有的功能都控制起來(lái)。虛擬儀器技術(shù)正是為復(fù)雜集成環(huán)境提供的一種軟件技術(shù),它可以跨總線平臺(tái),且不論任何廠家的硬件產(chǎn)品都可以兼容,為測(cè)試系統(tǒng)提供了統(tǒng)一的軟件編程環(huán)境。虛擬儀器技術(shù)的應(yīng)用,既可以節(jié)約硬件成本,又縮短了開(kāi)發(fā)周期,在測(cè)試、測(cè)量、工業(yè)自動(dòng)化等場(chǎng)合都比較適用。以下是借助虛擬儀器技術(shù)實(shí)現(xiàn)的一種多總線綜合測(cè)試系統(tǒng),通過(guò)分析,闡明了這種技術(shù)的特點(diǎn)和優(yōu)越性。
系統(tǒng)主要結(jié)構(gòu)如圖1所示。
系統(tǒng)中所包括的測(cè)試設(shè)備如下:
PXI Bus測(cè)試系統(tǒng)包括:
多功能模擬量卡;
數(shù)字IO卡;
數(shù)字萬(wàn)用表卡;
多路復(fù)用卡;
電源開(kāi)關(guān)卡;
光纖控制卡——用來(lái)和計(jì)算機(jī)通訊,并且傳輸數(shù)據(jù)。
Agilent 電源設(shè)備分別是:
正負(fù)5V或正負(fù)15V可選量程電源一個(gè);
0~28V電源一個(gè);
計(jì)算機(jī)內(nèi)包括:
Mil-1553B采集卡;
ARINC429采集卡;
RS232接口。
測(cè)試的目的是對(duì)用戶提供的產(chǎn)品進(jìn)行驗(yàn)收、檢測(cè),這些產(chǎn)品就是具備一定功能的板卡,包括:模擬量多組接口,開(kāi)關(guān)量多組接口,RS232接口,Mil-1553B模塊接口,Arinc429接口,還有各種電源過(guò)載性能的測(cè)試。系統(tǒng)是通過(guò)控制盒里的連接線纜和被測(cè)產(chǎn)品進(jìn)行連接的,測(cè)試非常方便。系統(tǒng)在不下電的情況下,可以對(duì)多種型號(hào)的板卡進(jìn)行驗(yàn)收,由軟件來(lái)實(shí)現(xiàn)控制功能。
從系統(tǒng)結(jié)構(gòu)中看出,設(shè)備很多,如何才能把這些設(shè)備統(tǒng)一規(guī)劃起來(lái),合理的進(jìn)行控制呢?這就要借助LabView虛擬儀器編譯器對(duì)硬件底層進(jìn)行良好的控制,再加上靈活、合理的組織程序結(jié)構(gòu),最后就能穩(wěn)定地運(yùn)行起來(lái)。
要想在LabView下實(shí)現(xiàn)對(duì)某種硬件設(shè)備的控制,就必須具備相應(yīng)硬件設(shè)備的軟件驅(qū)動(dòng)程序。軟件驅(qū)動(dòng)程序一般是用光盤來(lái)承載的,當(dāng)把它安裝進(jìn)操作系統(tǒng)之后,在LabView下就可以方便的對(duì)硬件進(jìn)行控制了。不同的設(shè)備儀器由不同的廠商提供,每個(gè)廠家的軟件驅(qū)動(dòng)程序形式也是不一樣的,所以可以按照廠家來(lái)對(duì)它們進(jìn)行劃分。以下就通過(guò)對(duì)軟件驅(qū)動(dòng)程序的介紹,來(lái)反映每種硬件在LabView下的加載和控制過(guò)程。
PXI機(jī)箱和它內(nèi)部的板卡是由National Instrument (NI)公司提供的。NI的大多數(shù)產(chǎn)品都有LabView下的驅(qū)動(dòng)程序,而且對(duì)這些驅(qū)動(dòng)進(jìn)行了分門別類,不同功能的產(chǎn)品有不同類的軟件驅(qū)動(dòng)程序模塊。另外,驅(qū)動(dòng)程序還可以用來(lái)檢測(cè)板卡功能,如NI Measurement & Automation Explorer(簡(jiǎn)稱MAX)瀏覽器軟件就是用來(lái)對(duì)板卡功能進(jìn)行檢測(cè)的。以下對(duì)多種NI板卡的驅(qū)動(dòng)進(jìn)行介紹:
(1)光纖接口卡驅(qū)動(dòng):
PXI設(shè)備是一個(gè)完整的機(jī)箱,它通過(guò)采用MXI協(xié)議標(biāo)準(zhǔn),實(shí)現(xiàn)了PXI設(shè)備和計(jì)算機(jī)主機(jī)之間的通訊,計(jì)算機(jī)可以通過(guò)一根光纖控制PXI機(jī)箱內(nèi)的板卡。安裝好MXI驅(qū)動(dòng)以后,PXI機(jī)箱內(nèi)的板卡就都被映射到計(jì)算機(jī)系統(tǒng)中了,所以光纖接口卡驅(qū)動(dòng)相當(dāng)于這些板卡和計(jì)算機(jī)的通訊橋梁。在安裝好驅(qū)動(dòng)以后,MAX瀏覽器就可以顯示所有可檢測(cè)到的設(shè)備了,瀏覽器界面如圖2所示。
(2)NI DAQ驅(qū)動(dòng):
NI DAQ驅(qū)動(dòng)是Data Acquisition Device的簡(jiǎn)寫,它是NI多種數(shù)據(jù)采集卡的驅(qū)動(dòng)程序總稱。在本系統(tǒng)中DAQ驅(qū)動(dòng)支持以下板卡:多功能模擬量卡和數(shù)字IO卡。NI DAQ驅(qū)動(dòng)加載進(jìn)操作系統(tǒng)之后,對(duì)相應(yīng)板卡的編程控制就變得非常容易和方便,圖3是模擬量采集卡在LabView下的程序結(jié)構(gòu)。
(3)NI Switch驅(qū)動(dòng):
通常開(kāi)關(guān)控制卡可以控制開(kāi)關(guān)通斷,NI Switch驅(qū)動(dòng)程序涵蓋了NI廠家的許多開(kāi)關(guān)控制板卡,在本系統(tǒng)中它為以下板卡提供驅(qū)動(dòng)程序:多路復(fù)用卡和電源開(kāi)關(guān)卡。
(4)NI DMM驅(qū)動(dòng):
NI DMM驅(qū)動(dòng)是 NI Digital Multimeter的簡(jiǎn)寫,它支持?jǐn)?shù)字萬(wàn)用表卡;安裝驅(qū)動(dòng)以后,可程序控制萬(wàn)用表卡的配置、選取和檢測(cè)。
VISA的全稱是Virtual Instrument Standard Architecture,它起源于VXI Play&Plug(即插即用)設(shè)備的驅(qū)動(dòng)程序規(guī)范,很多測(cè)試儀器廠家都利用它作為設(shè)備驅(qū)動(dòng)程序的標(biāo)準(zhǔn),后來(lái)逐漸發(fā)展成一種通用的虛擬儀器標(biāo)準(zhǔn),專門用于控制設(shè)備和編程。Agilent 采用VISA標(biāo)準(zhǔn)生成了很多可編程控制接口形式的驅(qū)動(dòng)程序,其中GPIB接口也采用這種編程控制方式,用簡(jiǎn)單的函數(shù)就可以滿足要求了。本系統(tǒng)中,兩個(gè)Angilent電源設(shè)備采用的都是VISA標(biāo)準(zhǔn)驅(qū)動(dòng)。
Mil-1553B板卡是美國(guó)某廠家的產(chǎn)品,它自帶LabView下的驅(qū)動(dòng)程序;并且提供各種 LabView下的1553程序控制模塊,如BC模塊,BM模塊,RT模塊等。開(kāi)發(fā)人員可以靈活的調(diào)用程序模塊,然后組合成所需要的功能。
ARINC429板卡是國(guó)內(nèi)某廠家的產(chǎn)品,它被提供了完整的Windows下編程的驅(qū)動(dòng)程序,并支持C語(yǔ)言編程。它的接口函數(shù)可以通過(guò)DLL動(dòng)態(tài)鏈接庫(kù)的形式在LabView下加載調(diào)用。
計(jì)算機(jī)通用串口COM接口,LabView本身自帶它的驅(qū)動(dòng),它屬于LabView VISA驅(qū)動(dòng)程序。
以上驅(qū)動(dòng)程序的加載過(guò)程體現(xiàn)了虛擬儀器對(duì)設(shè)備的良好控制屬性,另外虛擬儀器技術(shù)在編程的靈活性上也是很有優(yōu)勢(shì)的,動(dòng)態(tài)可編程技術(shù)正是反映了這一點(diǎn)。
VI Server是LabView的一種動(dòng)態(tài)可編程技術(shù),它可以在程序模塊(VI)執(zhí)行時(shí),動(dòng)態(tài)的改變它的屬性或執(zhí)行某些特殊功能,這樣就大大增強(qiáng)了程序的可控制性。
在本系統(tǒng)中,對(duì)程序模塊VI的界面屬性進(jìn)行了動(dòng)態(tài)控制,合理編制了程序界面的顯示,不僅保證了正常的界面顯示,而且實(shí)現(xiàn)了操作的靈活性。系統(tǒng)軟件的顯示規(guī)則是這樣的:新的界面顯示時(shí)——自動(dòng)關(guān)閉上一級(jí)界面,當(dāng)前界面關(guān)閉時(shí)——自動(dòng)彈出上一級(jí)界面。通過(guò)這種控制,程序在運(yùn)行時(shí)始終只有一個(gè)界面面對(duì)用戶,使顯示簡(jiǎn)單而且清晰。
在LabView下有多種方式實(shí)現(xiàn)數(shù)據(jù)庫(kù)功能,選擇用代碼形式實(shí)現(xiàn)是最好且最穩(wěn)定的方式,例如選擇C語(yǔ)言編碼,可以在Visual C++中編程,然后再加載進(jìn)LaView中。以代碼方式編程時(shí),可以借助動(dòng)態(tài)鏈接庫(kù)DLL模式和ActiveX控件形式在LabView中進(jìn)行調(diào)用。LabView不僅能夠和微軟的.NET平臺(tái)建立起良好的交互模式,并且支持C語(yǔ)言編程和DLL程序模塊加載。代碼編程功能的支持,體現(xiàn)了LabView 和其他編譯器的良好兼容性。本系統(tǒng)中數(shù)據(jù)庫(kù)應(yīng)用,就是借助C語(yǔ)言編碼,然后再和LabView中的數(shù)據(jù)進(jìn)行交互,這種方式大大提高了查詢速度。
系統(tǒng)中的Excel報(bào)表功能和數(shù)據(jù)庫(kù)有些類似,也是用VC++來(lái)編碼,然后以動(dòng)態(tài)鏈接庫(kù)的形式在LabView 中進(jìn)行調(diào)用。只要考慮好數(shù)據(jù)交互的格式,在LabView中調(diào)用動(dòng)態(tài)鏈接庫(kù)是非常方便的。
整個(gè)軟件無(wú)論從界面美觀性,使用的實(shí)用性和靈活性方面,還是從硬件的功能方面都能滿足用戶的要求。正是LabView強(qiáng)大的硬件控制功能和靈活的圖形化編程功能,使整個(gè)系統(tǒng)不管是從基本功能還是美觀性上都取得了較滿意的效果。以下是整個(gè)系統(tǒng)的功能結(jié)構(gòu)圖,從圖上體現(xiàn)了系統(tǒng)所實(shí)現(xiàn)的主要功能。
以上系統(tǒng)最復(fù)雜的地方在于驅(qū)動(dòng)程序的加載,最困難的環(huán)節(jié)是數(shù)據(jù)庫(kù)管理功能,但是通過(guò)虛擬儀器技術(shù)完整的將硬件控制功能和軟件管理功能融合在了一起,而且開(kāi)發(fā)過(guò)程即靈活又方便;另外借助井井有條的程序結(jié)構(gòu),又保證了系統(tǒng)的穩(wěn)定性。在后期的項(xiàng)目實(shí)施中,由于需要對(duì)某些功能進(jìn)行反復(fù)的修改,所以給最終驗(yàn)收帶來(lái)了一定的困難。在已經(jīng)編制好的程序上對(duì)代碼進(jìn)行修改是較難的,但是由于虛擬儀器程序有穩(wěn)定的程序結(jié)構(gòu),無(wú)論修改過(guò)程多復(fù)雜,并不影響程序的穩(wěn)定性,從而使整個(gè)項(xiàng)目最終能夠順利的完成??梢?jiàn),本系統(tǒng)通過(guò)采用虛擬儀器技術(shù)的集成方式不僅節(jié)省了開(kāi)發(fā)時(shí)間,而且也為以后功能的修改和擴(kuò)展提供了保障。因此虛擬儀器技術(shù)在測(cè)試系統(tǒng)集成上不失為一種可靠、實(shí)用的開(kāi)發(fā)技術(shù)。
[1]林君,謝宣松等著.虛擬儀器原理及應(yīng)用.科學(xué)出版社.
[2]蔣榮華,吳西北.USB-GPIB控制器的VISA設(shè)計(jì)與實(shí)現(xiàn).中國(guó)測(cè)試技術(shù).2007年7月第32卷第4期;
[3]孫亞飛,梁斌. LabView開(kāi)發(fā)環(huán)境對(duì)C代碼的移植方法研究.測(cè)控技術(shù).2010年2月第29卷.
10.3969/j.issn.1001-8972.2010.16.057