廖永為,楊丹,朱勇*
(1 武漢科技學(xué)院, 湖北 武漢 430073; 2 長沙信息職業(yè)技術(shù)學(xué)校, 湖南 長沙 410000)
基于IEEE 488.2的測量儀器控制系統(tǒng)的開發(fā)
廖永為1,楊丹2,朱勇1*
(1 武漢科技學(xué)院, 湖北 武漢 430073; 2 長沙信息職業(yè)技術(shù)學(xué)校, 湖南 長沙 410000)
數(shù)據(jù)采集是當(dāng)今科學(xué)研究中一個(gè)重要手段,對(duì)數(shù)據(jù)進(jìn)行準(zhǔn)確有效的采集以及對(duì)采集的數(shù)據(jù)進(jìn)行精確的計(jì)算就成為研究中關(guān)鍵的一環(huán)。由于通用接口總線(GPIB,General-Purpose Interface Bus) 的簡便易用性和穩(wěn)定性,很多測量系統(tǒng)仍在使用GPIB 的連接方式。為了簡化編程,一種兼容的SCPI(Standard Commands for Programmable Instruments)虛擬儀器標(biāo)準(zhǔn)命令語言應(yīng)運(yùn)而生?;诩嫒菪约熬幊痰暮唵魏头奖阈?世界許多著名的儀器生產(chǎn)公司產(chǎn)品均支持SCPI。簡要介紹了IEEE488.2標(biāo)準(zhǔn),SCPI命令的語法及其使用方法,討論如何使用該協(xié)議對(duì)智能控制系統(tǒng)的開發(fā)。采用Agilent公司的IO libraries套件中的VISA庫實(shí)現(xiàn)對(duì)Agilent34401A數(shù)字萬用表的遠(yuǎn)程控制,結(jié)果表明能滿足測量系統(tǒng)的要求。
IEEE488.2;VISA-COM;Agilent 34401A;SCPI
為了滿足測量控制系統(tǒng)的要求,建立基于GPIB和SCPI的測試系統(tǒng)的平臺(tái),實(shí)現(xiàn)了對(duì)智能儀器的遠(yuǎn)程通信。本文以PC機(jī)和Agilent 34401A為硬件平臺(tái),通過VISA-COM技術(shù)開發(fā)控制系統(tǒng),總結(jié)出一套對(duì)智能儀器通信的控制方法,便于移植到多種工作平臺(tái)。
1.1 IEEE488.2標(biāo)準(zhǔn)
IEEE國際組織在1975年對(duì)HP公司開發(fā)的GPIB通用儀器控制接口總線標(biāo)準(zhǔn)進(jìn)行了標(biāo)準(zhǔn)化。IEEE-488.2定義了TPS(Test Program Set)和儀器之間的軟件接口規(guī)范。IEEE-488.2規(guī)定了數(shù)據(jù)代碼和格式,用一組公用命令和協(xié)議定義了測試系統(tǒng)中控制器和儀器之間的通信標(biāo)準(zhǔn),共有39條,這些命令提供了儀器的內(nèi)部管理功能[1]。
GPIB是一個(gè)數(shù)字化的24線并行總線。它包括8條數(shù)據(jù)線,5條控制線(ATN、EOI、IFC、REN和SRQ),3條握手線和8條地線。GPIB使用8位并行、字節(jié)串行的異步通訊方式,數(shù)據(jù)以ASCII碼字符串方式傳送。
每個(gè)GPIB設(shè)備都必須有一個(gè)0到30之間的GPIB地址。一般GPIB接口卡地址設(shè)置為0,儀器的GPIB地址從1到30[3-13]。
1.2 SCPI命令
SCPI是可編程儀器標(biāo)準(zhǔn)命令,是一種建立在現(xiàn)有標(biāo)準(zhǔn)IEEE488.1 和 IEEE 488.2 基礎(chǔ)上,并遵循了IEEE754 標(biāo)準(zhǔn)中浮點(diǎn)運(yùn)算規(guī)則、ISO646 信息交換7 位編碼符號(hào)(相當(dāng)于ASCll編程)等多種標(biāo)準(zhǔn)的標(biāo)準(zhǔn)化儀器編程語言[4-7]。它采用一套樹狀分層結(jié)構(gòu)的命令集,提出了一個(gè)具有普遍性的通用儀器模型,采用面向信號(hào)的測量;它的助記符產(chǎn)生規(guī)則簡單、明確,且易于記憶[2]。
SCPI是以ASCII字符組成的標(biāo)準(zhǔn)儀器命令語言,可以用于任何一種標(biāo)準(zhǔn)接口,如GPIB,VXI,RS232,USB,LAN。
圖1 SCPI工作流程圖
SCPI命令語法采樹型結(jié)構(gòu),下面介紹常用的測量命令。方括弧 ( [ ]) 表示選擇性的關(guān)鍵字或參數(shù)。大括弧 ({ }) 中為命令字串的參數(shù)。三角括弧(<>)表示必須用一數(shù)值來取代括號(hào)中的參數(shù)。(|)隔開多重參數(shù)的選擇。
命令語法示出,大多數(shù)命令(和部分參數(shù))是以大寫和小寫字母混合使用。大寫字母指出命令中縮寫拼讀,對(duì)于比較短的程序行,送縮寫結(jié)構(gòu),對(duì)于比較易讀的程序送一長的結(jié)構(gòu)。
常用的IEEE488.2共同命令[11-15]:
1.3 VISA-COM
針對(duì)虛擬儀器軟件體系結(jié)構(gòu)(VISA)僅支持少數(shù)幾種語言的局限性,以及VISA函數(shù)庫的版本升級(jí)時(shí)的難度,提出采用COM組件模型設(shè)計(jì)VISA函數(shù)庫的方法;所設(shè)計(jì)的VISA-COM函數(shù)庫可以支持Visual C/C++、VB、Java、Delphi、C++Builder等多種語言;同時(shí)利用組件復(fù)用的特性,極大地降低了軟件版本升級(jí)的難度和復(fù)雜度[8,10];VISA-COM函數(shù)庫支持多語言下的使用,版本升級(jí)簡單,對(duì)VISA函數(shù)庫的開發(fā)具有一定的指導(dǎo)意義。
Agilent 34401A數(shù)字萬用表提供了一個(gè)GPIB接口,在PC 和DMM之間實(shí)現(xiàn)了簡便穩(wěn)定的連接能力。GPIB接口滿足IEEE-488.2 標(biāo)準(zhǔn),可以通過SCPI命令進(jìn)行遠(yuǎn)程控制[5,9]。NI的AT-GPIB/TNT卡能使計(jì)算機(jī)與Agilent 34401A進(jìn)行通信. NI MAX能發(fā)現(xiàn)所有NI接口上的裝置,如:VXI的FireWire接口,USB/GPIB轉(zhuǎn)換器,或PCL-GPIB卡。
硬件安裝與配置步驟如下:
1)先安裝NI-VISA IEEE488.2的板卡驅(qū)動(dòng)程序,按照系統(tǒng)分配的地址配置好GPIB卡。
2)設(shè)置萬用表的通信方式:把a(bǔ)gilent34401A的通信方式設(shè)置為GPIB通信方式,編程語言選擇SCPI。
3) 安裝Agilent 公司的IO套件(iolibs_suite_ 14_2_8931_1_multimedia),隨IO套件一起安裝的還有的.net framework,net framework sp1,VISA庫,IO套件必須要有VISA庫才能正常運(yùn)行。在桌面任務(wù)欄的右下角會(huì)有一個(gè)IO標(biāo)志,打開Agilent connection expert(安捷倫連接專家),它會(huì)自動(dòng)檢測到安裝的硬件,使用GPIB0連接到萬用表,也可以測試計(jì)算機(jī)與萬用表是否能正常通信。
Agilent的Intuilink,VEE和IO Libraries能過NI-VISA和NI488.2來連接GPIB-32.dll,如果應(yīng)用程序使用VISA編程,在對(duì)板卡基址配置完成后,要先安裝NI-VISA軟件包,再安裝Agilent IO Libraries[1,3?4]。Agilent的IO庫支持多種語言的編程,有C,C#,VB,VB.Net。
測試系統(tǒng)的建立,一般采用獨(dú)立的測試或測量儀器,使用SCPI命令或用軟件驅(qū)動(dòng)程序經(jīng)GPIB,USB,LAN接口發(fā)送ASCII命令。下面以VB程序設(shè)計(jì)為基礎(chǔ),通過Agilent IO suite中的VISA-COM技術(shù)實(shí)現(xiàn)對(duì)34401A的遠(yuǎn)程通信控制。
啟動(dòng)Visual Basic 程序后,進(jìn)入Project,然后選擇References[6]。核對(duì)"Agilent VISA COM Resource Manager 1.0"和"VISA COM 1.0 Type Library",點(diǎn)擊"OK" 按鈕。在增加兩個(gè)參考源后,增加下面的代碼[14-15]:
從本文以上的論述中可以看出SCPI命令集其實(shí)就是一種可程控儀器程控制編碼的標(biāo)準(zhǔn),SCPI命令集字符是以英語單詞約定的, 一般情況下取該單詞的前4個(gè)字母,這樣也增加了程序的可讀性和可維護(hù)性, 能為開發(fā)人員充分開發(fā)儀器的程控功能、充分發(fā)揮開發(fā)人員的開發(fā)能力。
我們建立基于GPIB和SCPI的測試系統(tǒng)的平臺(tái),成功實(shí)現(xiàn)了對(duì)智能儀器的遠(yuǎn)程通信??偨Y(jié)出一套對(duì)智能儀器通信的控制方法,便于移植到多種工作平臺(tái)。
[1] Agilent 34401A Multimeter user’s Guide[Z]. Agilent technologies, 2005: 195-226.
[2] Agilent 34401A command reference[Z]. Agilent technologies, 2005: 10-15.
[3] Agilent Connectivity Guide[Z]. Agilent technologies, 2005: 4-8.
[4] Startup of Plug-in Cards[Z]. Advantech,2003: 1-8.
[5] Software Introduction and Testing[p]. Advantech,2004: 10-16.
[6] Standard Commands for Programmable Instruments Manual[Z], 1990: 10-25.
[7] HP531501A the Counter of Microwave user’s Guide[Z]. 1995: 10-14.
[8] HP437B Power Meter user’s Guide[Z]. 1995: 6-12.
[9] 劉建剛,郭占山,閆道廣等,儀器設(shè)備SCPI命令集的使用方法探討[J]. 計(jì)算與測量技術(shù),2001,5:35-37.
[10] 陳貽范,SCPI語法結(jié)構(gòu)分析[J]. 儀表技術(shù),1996,3:18-21.
[11] 李光明. VB6編程實(shí)例大制作[M]. 北京:冶金工業(yè)出版社,2002.
[12] 楊章偉. VB完全自覺寶典[M]. 北京:清華大學(xué)出版社,2007.
[13] 李江全,張麗,岑紅蕾.Visual Basic串口通信與測控應(yīng)用技術(shù)實(shí)戰(zhàn)詳解[M]. 北京:人民郵電出版社,2007.
[14] 陳小蘭,梅順齊,詹白勺,等.基于DRVI虛擬儀器的錠子振動(dòng)測試系統(tǒng)的研究[J].武漢科技學(xué)院學(xué)報(bào),2007(1):58-60
[15] 馬雙寶.基于USB的虛擬示波器的設(shè)計(jì)[J].武漢科技學(xué)院學(xué)報(bào),2007(11): 33-35.
Control System Development of Measurement Instrument Based on IEEE488.2
LIAO Yong-wei1,Yang Dan2,ZHU Yong1
(1. College of Computer Science, Wuhan University of Science and Engineering ,Wuhan 430073, China; 2. Department of Art , Changsha Information Vocational&Technical School, Changsha 410000, China)
Data collection is an important means in modern scientific research, thus the accurate and efficient collection of data and accurate computation of data has become a key part of the study. Owing to its simplicity and stability, many measurement systems are still using GPIB. To simplify programming, a standard of intelligent instruments compatible command language-standard commands for programmable instruments comes into being. On the basis of compatibility and programming simplicity as well as other conveniences, many products of the world famous instrument companies all support SCPI. This paper briefly describes the IEEE488.2 standard, SCPI command syntax and instructions for use, it also discusses how to apply the protocol to program control system of the intelligent instrument. Remote control on Agilent digital multimeter 34401A is accomplished by applying VISA library in Agilent’s IO libraries suite. The results show that the measuring system can meet the requirements.
IEEE488.2;VISA-COM;Agilent 34401A;SCPI
TP316.12
A
1009-5160(2010)01-0048-03
*通訊作者:朱勇(1964-),男,教授、博士,研究方向:嵌入式系統(tǒng)與SoC、紅外圖象處理系統(tǒng)、信息存儲(chǔ)等
湖北省自然科學(xué)基金項(xiàng)目(NO.2008CDB332).