APP下载

基于IEEE 488.2的测量仪器控制系统的开发

2010-09-15廖永为杨丹朱勇

武汉纺织大学学报 2010年1期
关键词:万用表命令编程

廖永为,杨丹,朱勇*

(1 武汉科技学院, 湖北 武汉 430073; 2 长沙信息职业技术学校, 湖南 长沙 410000)

基于IEEE 488.2的测量仪器控制系统的开发

廖永为1,杨丹2,朱勇1*

(1 武汉科技学院, 湖北 武汉 430073; 2 长沙信息职业技术学校, 湖南 长沙 410000)

数据采集是当今科学研究中一个重要手段,对数据进行准确有效的采集以及对采集的数据进行精确的计算就成为研究中关键的一环。由于通用接口总线(GPIB,General-Purpose Interface Bus) 的简便易用性和稳定性,很多测量系统仍在使用GPIB 的连接方式。为了简化编程,一种兼容的SCPI(Standard Commands for Programmable Instruments)虚拟仪器标准命令语言应运而生。基于兼容性及编程的简单和方便性,世界许多著名的仪器生产公司产品均支持SCPI。简要介绍了IEEE488.2标准,SCPI命令的语法及其使用方法,讨论如何使用该协议对智能控制系统的开发。采用Agilent公司的IO libraries套件中的VISA库实现对Agilent34401A数字万用表的远程控制,结果表明能满足测量系统的要求。

IEEE488.2;VISA-COM;Agilent 34401A;SCPI

1 引言

为了满足测量控制系统的要求,建立基于GPIB和SCPI的测试系统的平台,实现了对智能仪器的远程通信。本文以PC机和Agilent 34401A为硬件平台,通过VISA-COM技术开发控制系统,总结出一套对智能仪器通信的控制方法,便于移植到多种工作平台。

1.1 IEEE488.2标准

IEEE国际组织在1975年对HP公司开发的GPIB通用仪器控制接口总线标准进行了标准化。IEEE-488.2定义了TPS(Test Program Set)和仪器之间的软件接口规范。IEEE-488.2规定了数据代码和格式,用一组公用命令和协议定义了测试系统中控制器和仪器之间的通信标准,共有39条,这些命令提供了仪器的内部管理功能[1]。

GPIB是一个数字化的24线并行总线。它包括8条数据线,5条控制线(ATN、EOI、IFC、REN和SRQ),3条握手线和8条地线。GPIB使用8位并行、字节串行的异步通讯方式,数据以ASCII码字符串方式传送。

每个GPIB设备都必须有一个0到30之间的GPIB地址。一般GPIB接口卡地址设置为0,仪器的GPIB地址从1到30[3-13]。

1.2 SCPI命令

SCPI是可编程仪器标准命令,是一种建立在现有标准IEEE488.1 和 IEEE 488.2 基础上,并遵循了IEEE754 标准中浮点运算规则、ISO646 信息交换7 位编码符号(相当于ASCll编程)等多种标准的标准化仪器编程语言[4-7]。它采用一套树状分层结构的命令集,提出了一个具有普遍性的通用仪器模型,采用面向信号的测量;它的助记符产生规则简单、明确,且易于记忆[2]。

SCPI是以ASCII字符组成的标准仪器命令语言,可以用于任何一种标准接口,如GPIB,VXI,RS232,USB,LAN。

图1 SCPI工作流程图

SCPI命令语法采树型结构,下面介绍常用的测量命令。方括弧 ( [ ]) 表示选择性的关键字或参数。大括弧 ({ }) 中为命令字串的参数。三角括弧(<>)表示必须用一数值来取代括号中的参数。(|)隔开多重参数的选择。

命令语法示出,大多数命令(和部分参数)是以大写和小写字母混合使用。大写字母指出命令中缩写拼读,对于比较短的程序行,送缩写结构,对于比较易读的程序送一长的结构。

常用的IEEE488.2共同命令[11-15]:

1.3 VISA-COM

针对虚拟仪器软件体系结构(VISA)仅支持少数几种语言的局限性,以及VISA函数库的版本升级时的难度,提出采用COM组件模型设计VISA函数库的方法;所设计的VISA-COM函数库可以支持Visual C/C++、VB、Java、Delphi、C++Builder等多种语言;同时利用组件复用的特性,极大地降低了软件版本升级的难度和复杂度[8,10];VISA-COM函数库支持多语言下的使用,版本升级简单,对VISA函数库的开发具有一定的指导意义。

2 硬件平台安装与配置

Agilent 34401A数字万用表提供了一个GPIB接口,在PC 和DMM之间实现了简便稳定的连接能力。GPIB接口满足IEEE-488.2 标准,可以通过SCPI命令进行远程控制[5,9]。NI的AT-GPIB/TNT卡能使计算机与Agilent 34401A进行通信. NI MAX能发现所有NI接口上的装置,如:VXI的FireWire接口,USB/GPIB转换器,或PCL-GPIB卡。

硬件安装与配置步骤如下:

1)先安装NI-VISA IEEE488.2的板卡驱动程序,按照系统分配的地址配置好GPIB卡。

2)设置万用表的通信方式:把agilent34401A的通信方式设置为GPIB通信方式,编程语言选择SCPI。

3) 安装Agilent 公司的IO套件(iolibs_suite_ 14_2_8931_1_multimedia),随IO套件一起安装的还有的.net framework,net framework sp1,VISA库,IO套件必须要有VISA库才能正常运行。在桌面任务栏的右下角会有一个IO标志,打开Agilent connection expert(安捷伦连接专家),它会自动检测到安装的硬件,使用GPIB0连接到万用表,也可以测试计算机与万用表是否能正常通信。

Agilent的Intuilink,VEE和IO Libraries能过NI-VISA和NI488.2来连接GPIB-32.dll,如果应用程序使用VISA编程,在对板卡基址配置完成后,要先安装NI-VISA软件包,再安装Agilent IO Libraries[1,3−4]。Agilent的IO库支持多种语言的编程,有C,C#,VB,VB.Net。

3 程序设计

测试系统的建立,一般采用独立的测试或测量仪器,使用SCPI命令或用软件驱动程序经GPIB,USB,LAN接口发送ASCII命令。下面以VB程序设计为基础,通过Agilent IO suite中的VISA-COM技术实现对34401A的远程通信控制。

启动Visual Basic 程序后,进入Project,然后选择References[6]。核对"Agilent VISA COM Resource Manager 1.0"和"VISA COM 1.0 Type Library",点击"OK" 按钮。在增加两个参考源后,增加下面的代码[14-15]:

4 结束语

从本文以上的论述中可以看出SCPI命令集其实就是一种可程控仪器程控制编码的标准,SCPI命令集字符是以英语单词约定的, 一般情况下取该单词的前4个字母,这样也增加了程序的可读性和可维护性, 能为开发人员充分开发仪器的程控功能、充分发挥开发人员的开发能力。

我们建立基于GPIB和SCPI的测试系统的平台,成功实现了对智能仪器的远程通信。总结出一套对智能仪器通信的控制方法,便于移植到多种工作平台。

[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] 刘建刚,郭占山,闫道广等,仪器设备SCPI命令集的使用方法探讨[J]. 计算与测量技术,2001,5:35-37.

[10] 陈贻范,SCPI语法结构分析[J]. 仪表技术,1996,3:18-21.

[11] 李光明. VB6编程实例大制作[M]. 北京:冶金工业出版社,2002.

[12] 杨章伟. VB完全自觉宝典[M]. 北京:清华大学出版社,2007.

[13] 李江全,张丽,岑红蕾.Visual Basic串口通信与测控应用技术实战详解[M]. 北京:人民邮电出版社,2007.

[14] 陈小兰,梅顺齐,詹白勺,等.基于DRVI虚拟仪器的锭子振动测试系统的研究[J].武汉科技学院学报,2007(1):58-60

[15] 马双宝.基于USB的虚拟示波器的设计[J].武汉科技学院学报,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-),男,教授、博士,研究方向:嵌入式系统与SoC、红外图象处理系统、信息存储等

湖北省自然科学基金项目(NO.2008CDB332).

猜你喜欢

万用表命令编程
只听主人的命令
Passage 3 Harvest from learning to repair cars
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
纺织机上诞生的编程
制冷万用表移动测控软件的设计与实现
移防命令下达后
万用表全部合格
MF14万用表在轨道电路测量中存在问题的探讨