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