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