张华1 史永彬2
(1. 91458部队79分队,三亚市 5720212. 92493部队89分队,葫芦岛市 125000)
Zhang Hua 1 Shi Yongbin 2
(1. PLA 91458 Unit 79, Sanya 5720212. PLA 92493 Unit 89, Huludao 125000)
LabVIEW中GPIB仪器编程
Programming GPIB Instruments in LabVIEW
Abstract: There are three methods to implement GPIB instruments control in LabVIEW development environment,including GPIB module drive, VISA module drive, special instrument drive. The paper summarized the advantage,disadvantage and skills in application aspect of these methods. It makes great reference for engineers in automatic testing software design.
Key words: GPIB VISA LabVIEW Software Design
【摘 要】在LabVIEW开发环境下,实现对GPIB仪器控制时,采用GPIB模块驱动、VISA模块驱动、指定
仪器驱动程序三种方法编程的优缺点及应用方面的技巧。
对从事自动测试软件设计者具有极高的参考价值。
【关键词】GPIB VISA LabVIEW 软件设计
收稿日期:2006-07-08
作者简介:张华(1980-),男,海军海空工程学院毕业,现从事国防军事装备计量保障工作。
前言
在LabVIEW开发环境下,对带GPIB接口的仪器有GPIB模块驱动、VISA模块驱动、指定仪器驱动程序三种编程方法,可以直接运用它们进行所需的VI编程,但是每个仪器设备传送和接收数据都有自己的特殊命令和协议,要把这些命令和协议全部学会是十分困难的,那么如何在有限的时间内完成程序设计任务并达到最佳的效果,针对这些问题结合工作中应用情况,以Fluke 8840A数字多用表直流电压测量为例,就下面几个问题进行讨述。
1 GPIB模块驱动编程
LabVIEW中有专门的GPIB(General PurposeInterface Bus)模块驱动,可以用来实现基于GPIB仪器自动控制。
GPIB模块在Functions→Instrument I/O→GPIB模板中,使用最频繁的是GPIB Write和GPIB Read两个函数,掌握这两个函数就可以完成仪器的设置、数据的读写和仪器自动控制软件了,其他的函数大多与GPIB控制器有关,图1是 Fluke8840A GPIB模块驱动直流电压测量程序。
若实现其它功能的测量,只需要将
“写入的命令代码”中的F1改为要求的功能代码。
2 VISA模块驱动编程
针对如串行通信、通用接口总线GPIB、VXI(VMEbus eXtensions for Instrumentation ,VME总线)等现存的不同的通信协议,它们因其本身固有的不同而互不兼容。
工业上的设备用到的并不止一种协议,因此VISA(Virtual Instrument Software Archi-tecture虚拟仪器软件结构)应运而生,这种标准能使使用不同协议的设备工作在同一个系统中。
用户可以在LabVIEW中运用VISA进行通信,VISA可以非常简单地服务于包含多功能的交叉通信协议的程序编制。
VISA可以控制一组不同类型的仪器,包括GPIB、VXI或者串行总线。
换句话说,VISA提供了接口独立性,需要对不同接口进行仪器编程的读者只需要学习API即可。
仪器驱动程序将所有的输入和输出函数包含在一个函数库中,而这个函数库同别的代码是分开的。
需要升级硬件的时候,升级应用软件显得非常容易,即只需要更改驱动程序即可,因为与设备不兼容的代
图1 Fluke 8840A GPIB模块驱动程序
Instrument and Metrological Technology
码在驱动程序中。
所有函数库中的驱动程序都有相同的基本层次,高层次的函数建立在低层次函数之上。
大多数仪器的控制都是使用低层函数实现的,但是高层次的函数,由于拥有可以调节到前面板显得更容易控制。
VISA模块在Functions→Instrument I/O→VISA模板中,使用最频繁的是VISA Write和VISARead两个函数,掌握这两个函数就可以设计自动控制软件了,图2是 Fluke 8840A VISA模块驱动直流电压测量程序。
图2 Fluke 8840A VISA模块驱动程序
采用VISA编程的益处:
(1) VISA的I/O控制功能适用于各种仪器类型,VISA适合于VXI仪器、GPIB仪器、RS-232串行仪器等各类仪器的控制操作,也包含了消息基器件、寄存器器件、存储器器件等仪器的操作,其形式是统一的。
(2) VISA的I/O软件库的源程序是唯一的,与操作系统及编程语言无关,只是提供了不同形式的API文件作为系统的引出。
(3) 它方便用户在不同的平台、对不同类型的仪器进行开发、移植及测控系统的升级改进。
3 指定仪器驱动程序编程
考虑到多数测试人员对GPIB模块驱动及VISA模块驱动编程不是很了解,而对仪器使用较为熟悉的测试人员,NI公司和其他仪器生产厂家一般会开发一个基于LabVIEW开发平台的针对此类仪器驱动程序,驱动程序中将仪器的驱动按照仪器的基本功能封装成各种子VI,如读出、写入及触发控制等,使用时只需按需调用这些子VI并做好设置就可以方便地实现仪器的自动控制。
仪器驱动程序是专门控制某种仪器的软件,当建立了一个仪器的驱动程序后,就不必再记住仪器的控制命令,只要从前面板输入简单数据即可。
每个仪器模块均有自己的仪器驱动程序。
仪器驱动程序的实质是为用户提供用于仪器驱动的抽象的操作函数集。
对于应用程序来说,它对仪器的操作是通过仪器驱动程序来实现的,仪器驱动程序对仪器的操作与管理又是通过输入/输出软件所提供的统一基础和格式的函数库(VISA函数库)的调用来实现的。
对于应用程序设计人员来说,一旦有了仪器驱动程序,即使在不了解仪器内部操作过程的情况下,也可以进行虚拟仪器系统的设计工作。
仪器驱动程序是连接上层应用软件与底层输入/输出软件的纽带和桥梁。
仪器驱动程序可
以从设备驱动CD上安装,也可从http://www.ni.com/idnet网址上下载。
应将仪器驱动程序安装到子目录LabVIEW/insr.lib下。
例如本文介绍的Fluke8840A仪器驱动程序,可以装在LabVIEW/inst.lib/Fluke 8840目录下,在此目录下,可以找到该仪器驱动程序的菜单文件和VI库,菜单文件可以让用户由Functions模板中浏览自己的仪器驱动程序VI,VI库则包含仪器驱动程序VI。
图3是Fluke 8840A指定仪器驱动直流电压测量程序。
图3 Fluke 8840A 指定仪器驱动测量程序
4 三种编程方法比较
(1) 对于GPIB驱动模块和VISA模块驱动编程,相同点在于对仪器进行设置、数据读取时需要知道相应仪器的程控功能码,要求编程人员要有相应仪器的使用说明,否则程序设计无法进行。
不同点在于VISA模块驱动函数可适用于GPIB、RS-232、VXI、PXI等总线结构的仪器,此时开发环境必须有VISA库驱动,在安装相应软件时,都将会有自动安装。
(2) 对于指定仪器驱动程序,不同的仪器其仪器驱动程序是不相同的,此类编程不涉及仪器程控功能代码,特别适合硬件固定的测量系统中,如果测量系统中硬件发生变化则必须重新设计程序。
(3) 熟悉仪器使用的人都知道,许多仪器的设置需要花费一定的时间,因此编写仪器控制程序时特别需要注意,在这些命令函数传递之后要延迟足够的时间再进行下一次命令传递。
5 结束语
本文从应用层面介绍了GPIB模块驱动,VISA模块驱动、仪器驱动程序,三者的优缺点和具体应用场合。
具体如何应用使用者应结合实际情况而定,当然也可以在它们之间互相结合。
参考文献
[1] 戴鹏飞.测试工程与LabVIEW应用.电子工业出版社
[2] LabVIEW Fundamentals. National Instru-ments Web site@2005 National Instruments Cor-poration
[3]Getting Started with LabVIEW. NationalInstruments Web site@2005 National InstrumentsCorporation
[4]National Instruments Product ManualsLibrary. National Instruments Web site@2005National Instruments Corporation □
仪表与计量技术。