李海明,朱保安,王雙記
(91388部隊(duì)96分隊(duì),廣東 湛江 524022)
隨著現(xiàn)代化科學(xué)技術(shù)的發(fā)展,自動(dòng)化技術(shù)在計(jì)量領(lǐng)域得到了廣泛應(yīng)用,自動(dòng)化測(cè)試系統(tǒng)省去了重復(fù)而繁雜的手工操作和計(jì)算,檢測(cè)效率大大提高,而且避免了人為誤差,但是由于被測(cè)電子儀器種類繁多,配備的通信接口和控制命令各不相同,自動(dòng)化測(cè)試系統(tǒng)的開(kāi)發(fā)往往只能針對(duì)某些具體型號(hào)被測(cè)儀器,極大制約了自動(dòng)化測(cè)試系統(tǒng)的使用和推廣。利用LabVIEW構(gòu)建自動(dòng)測(cè)試模塊,為用戶提供了定制被測(cè)儀器的平臺(tái),解決了自動(dòng)化測(cè)試系統(tǒng)的瓶頸問(wèn)題。
目前,集成在電子儀器上的標(biāo)準(zhǔn)通信接口主要有RS-232串行接口、RS-485、GPIB和USB總線接口等[1]。LabVIEW提供具有可擴(kuò)展性的、開(kāi)放性的虛擬儀器接口,支持VXI總線、PXI總線、GPIB總線、VISA總線、串行通訊總線等多種類型的儀器,LabVIEW平臺(tái)不限制包含的儀器數(shù)目,所有符合VXI即插即用規(guī)范的虛擬儀器均可在平臺(tái)中進(jìn)行操作與控制[2]。
計(jì)算機(jī)通過(guò)電子儀器各自的控制命令完成讀寫(xiě)操作,實(shí)現(xiàn)對(duì)儀器的控制。構(gòu)建自動(dòng)測(cè)試模塊的目的是在自動(dòng)化測(cè)試系統(tǒng)中為用戶提供定制被測(cè)儀器的平臺(tái),所謂“定制”就是用戶根據(jù)測(cè)試流程將所要用到的控制命令組合在一起,形成相應(yīng)的測(cè)量命令集,測(cè)試時(shí)執(zhí)行命令集來(lái)實(shí)現(xiàn)自動(dòng)測(cè)試。
自動(dòng)測(cè)試模塊由建集模塊、執(zhí)行模塊和命令集數(shù)據(jù)庫(kù)組成,如圖1所示。建集模塊形成的測(cè)量命令集存入數(shù)據(jù)庫(kù)中,測(cè)試時(shí)由執(zhí)行模塊從數(shù)據(jù)庫(kù)中調(diào)用命令序列。
3.3.1 建集流程
不同的儀器擁有各自的控制命令,通過(guò)查詢儀器使用手冊(cè)可以得到??刂泼畎凑帐褂脮r(shí)機(jī)分為測(cè)量前設(shè)置、測(cè)量時(shí)讀數(shù)和測(cè)量后復(fù)位三類,按照功能又劃分為讀取、寫(xiě)入和延時(shí)三類。建集模塊根據(jù)測(cè)試流程將所要用到的控制命令組合在一起,形成相應(yīng)的測(cè)量命令集,建集流程如圖2所示。
圖1 自動(dòng)測(cè)試模塊的組成
圖2 建集流程圖
儀器接口類型包括GPIB、RS-232和USB。在建集流程圖中虛框?yàn)榭蛇x過(guò)程,其中“輸入儀器地址”適用于GPIB接口的儀器;“設(shè)置命令變量”用于根據(jù)實(shí)際參數(shù)對(duì)儀器進(jìn)行設(shè)置的場(chǎng)合,例如對(duì)信號(hào)源的設(shè)置包括頻率、幅度、衰減等,根據(jù)命令集的需要,可以設(shè)置“頻率”、“幅度”和“衰減”三個(gè)變量,在書(shū)寫(xiě)命令內(nèi)容的時(shí)候用變量表示具體的參數(shù)。
3.3.2 測(cè)量命令集實(shí)例
測(cè)量命令集與被測(cè)儀器、參數(shù)有關(guān),以實(shí)例進(jìn)行說(shuō)明,其中表1列出的是數(shù)字多用表34401A測(cè)量命令集,被測(cè)參數(shù)為直流電壓,接口類型為GPIB和RS-232;表2列出的是信號(hào)發(fā)生器33220A測(cè)量命令集,被測(cè)參數(shù)為輸出頻率,接口類型為GPIB和USB。
執(zhí)行模塊是自動(dòng)測(cè)試模塊的核心部分,采用LabVIEW語(yǔ)言開(kāi)發(fā)設(shè)計(jì)。LabVIEW是一種基于G語(yǔ)言的圖形化開(kāi)發(fā)平臺(tái),主要用于數(shù)據(jù)的采集、分析、處理和表達(dá),總線接口、VXI儀器、PXI儀器以及GPIB與串口儀器的驅(qū)動(dòng)程序編制和驅(qū)動(dòng)虛擬儀器,由于其強(qiáng)大、靈活的儀器控制功能使LabVIEW成為開(kāi)發(fā)虛擬儀器的首選編程語(yǔ)言[3]。
表1 數(shù)字多用表34401A測(cè)量命令集
表2 信號(hào)發(fā)生器33220A測(cè)量命令集
在LabVIEW中為實(shí)現(xiàn)與儀器通信有兩種方式,一種是利用函數(shù)模板中Instrument I/O子模板下的相關(guān)函數(shù),如GPIB函數(shù),另一種是利用函數(shù)模板中Instrument I/O子模板下的VISA函數(shù)[4],實(shí)際上VISA函數(shù)能與各種接口類型的儀器通信,所以采用VISA函數(shù)實(shí)現(xiàn)各種接口的儀器測(cè)試。
3.4.1 NI-VISA簡(jiǎn)介[5]
NI-VISA(Virtual Instrument Software Architecture,以下簡(jiǎn)稱為“VISA”)是美國(guó)國(guó)家儀器NI(National Instrument)公司開(kāi)發(fā)的一種用來(lái)與各種儀器總線進(jìn)行通信的高級(jí)應(yīng)用編程接口。VISA總線I/O軟件是一個(gè)綜合軟件包,不受平臺(tái)、總線和環(huán)境的限制,可用來(lái)對(duì) USB、GPIB、串口、VXI、PXI和以太網(wǎng)系統(tǒng)進(jìn)行配置、編程和調(diào)試。VISA是虛擬儀器系統(tǒng)I/O接口軟件,基于自底向上結(jié)構(gòu)模型的VISA創(chuàng)造了一個(gè)統(tǒng)一形式的I/O控制函數(shù)集。一方面,對(duì)初學(xué)者或是簡(jiǎn)單任務(wù)的設(shè)計(jì)者來(lái)說(shuō),VISA提供了簡(jiǎn)單易用的控制函數(shù)集,在應(yīng)用形式上相當(dāng)簡(jiǎn)單;另一方面,對(duì)復(fù)雜系統(tǒng)的組建者來(lái)說(shuō),VISA提供了非常強(qiáng)大的儀器控制功能與資源管理。
3.4.2 常用VISA函數(shù)[6]
(1)ViOpen,打開(kāi)并指定 VISA resource name的設(shè)備的連接。
(2)ViProperty,VISA 設(shè)備的屬性子節(jié)點(diǎn),可以設(shè)置端點(diǎn)或傳輸方式。
(3)ViWrite,向 VISA resource name指定的設(shè)備寫(xiě)入數(shù)據(jù)。
(4)ViRead,從VISA resource name指定的設(shè)備讀出數(shù)據(jù)。
(5)ViClose,結(jié)束設(shè)備讀寫(xiě)并關(guān)閉與指定設(shè)備的連接。
3.4.3 通過(guò)VISA控制儀器
每一個(gè)VISA函數(shù)都有一個(gè)VISA資源名稱參數(shù),用來(lái)指明該函數(shù)對(duì)應(yīng)的硬件設(shè)備,使用不同接口類型的儀器由程序自動(dòng)更換VISA資源名稱參數(shù)。如用GPIB接口測(cè)量數(shù)字多用表34401A[4],其GPIB地址為 22,則其VISA資源名稱為GPIB∶22,其中GPIB用于指明接口的類型。與被測(cè)量?jī)x器通信的第一步是建立計(jì)算機(jī)與儀器的連接,此任務(wù)可以通過(guò)ViOpen函數(shù)來(lái)實(shí)現(xiàn),接著利用ViWrite函數(shù)根據(jù)需要向儀器發(fā)送各種命令,ViRead函數(shù)讀取儀器響應(yīng)的任何數(shù)據(jù),完成所有測(cè)試任務(wù)后,使用ViClose函數(shù)斷開(kāi)計(jì)算機(jī)與儀器的通信連接。
圖3 儀器測(cè)量流程圖
圖4 執(zhí)行模塊流程圖
3.4.4 儀器測(cè)量流程
儀器測(cè)量按照測(cè)量前設(shè)置、測(cè)量時(shí)讀數(shù)、測(cè)量后復(fù)位的時(shí)序進(jìn)行,流程如圖3所示。在測(cè)量的每個(gè)時(shí)機(jī),均通過(guò)執(zhí)行模塊檢索并執(zhí)行數(shù)據(jù)庫(kù)中相應(yīng)的命令序列,實(shí)現(xiàn)儀器的設(shè)置、讀數(shù)及復(fù)位等功能,完成儀器的自動(dòng)測(cè)量,執(zhí)行模塊流程如圖4所示。
3.4.5 執(zhí)行模塊程序
圖5是執(zhí)行模塊的LabVIEW程序,輸入?yún)?shù)有VISA資源名稱、命令集數(shù)組、錯(cuò)誤輸入,輸出參數(shù)為VISA資源名稱輸出、讀取數(shù)據(jù)、錯(cuò)誤輸出。其中VISA資源名稱根據(jù)不同的儀器通信接口類型而改變,命令集數(shù)組是從命令集數(shù)據(jù)庫(kù)中根據(jù)測(cè)量時(shí)機(jī)檢索而生成,命令格式為功能:命令內(nèi)容,如讀?。?0字符、寫(xiě)入:*cls。
圖5 執(zhí)行模塊程序
介紹了利用LabVIEW構(gòu)建自動(dòng)測(cè)試模塊的思路及方法,該方法在“通用儀器儀表綜合檢定系統(tǒng)”中得到了實(shí)際應(yīng)用?;贚abVIEW構(gòu)建的自動(dòng)測(cè)試模塊準(zhǔn)確可靠、可移植性強(qiáng)、用途廣泛,任意接口儀器的測(cè)試工作均可順利開(kāi)展,大大提高了測(cè)試能力。
[1] 葉文生,王思華.基于虛擬儀器技術(shù)的USB接口儀器通信軟件設(shè)計(jì)[J].電子技術(shù)應(yīng)用,2006,32(10):86-88.
[2] 吳成東,孫秋野,盛 科.LabVIEW虛擬儀器程序設(shè)計(jì)及應(yīng)用[M].北京:人民郵電出版社,2008.
[3] 戴鵬飛.測(cè)試工程與LabVIEW應(yīng)用[M].北京:電子工業(yè)出版社,2006.
[4]張小琴,林建輝.LabVIEW環(huán)境下的GPIB總線虛擬儀器開(kāi)發(fā)[J].中國(guó)測(cè)試技術(shù),2004,30(1):53-55.
[5] 余志榮,楊 莉.基于NI-VISA與LabVIEW的USB接口應(yīng)用設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(1):66-69.
[6]劉昌偉,邵左文,畢 文.基于LABVIEW的USB接口多路高速數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)[J].世界電子元器件,2008(12):85-88.
[7] 陳錫輝,張銀鴻.LabVIEW 8.20程序設(shè)計(jì)從入門(mén)到精通[M].北京:清華大學(xué)出版社,2007.