>
摘要:Labview是当今最为流行的虚拟仪器开发平台,本文介绍了基于Labview的GPIB总线的虚拟仪器及其对软硬件的要求,结合锁相放大器的二次开发实例,系统描述了虚拟仪器开发的一般过。与原有仪器相比,Labview下的GPIB总线虚拟仪器最突出的优点是不需要额外的数据采集卡就可以完成数据的实时采集,并将实验结果保存起来,便于数据的后续处理,极大地扩展了原有设备的功能。
关键词:Labview;虚拟仪器;GPIB;数据采集
引言
数据采集以及仪器控制是实验研究中经常遇到的问题,虽然现在的测量仪器在一定程度上能够提供很高的程序上的自动化测量,但仍然不能很好的满足实际的测量要求,因为传统仪器的功能常常是固定不变的,而且不具备基于硬件的功能可扩展性,这就大大限制了传统仪器的使用范围,例如有的仪器能够对物理量进行实时测量,但是并不能够把数据实时地存储起来,仅能显示当时的测量值,此时的仪器仅仅是一台能够标识物理量的指示器,为了使仪器具备实时测量并分析测量结果的功能,我们必须采取额外的工作。经常采用的方法大体有两种:一是利用数据采集卡和仪器本身提供的模拟量输出端口,对输出的模拟量进行采集并进行相应的后续处理,二是利用仪器本身的编程接口对仪器进行编程控制。方法二与方法一相比不需添加额外的硬件从而使得测试系统变得简单、方便,而且成本更为低廉。
在众多的编程接口中,GPIB(General Purpose Inter faceBus)是其中最常用也是最为普及的一种标准接口,而众多的仪器控制编程语言中,由美国国家仪器(NI)公司开发的Labview语言是最为方便和最容易为广大非编程人员掌握的,它是一种基于图形程序的编程语言,内含丰富的数据采集、数据信号分析以及控制等子程序,用户利用创建和调用子程序的方法编写程序,使创建的程序模块化,易于调试、理解和维护,人机交互界面生动逼真,而且程序编程简单、直观。本文介绍了利用Labview开发基于GPIB接口的虚拟仪器的一般步骤,并给出了开发实例。
GPIB总线虚拟仪器的硬件及软件描述
GPIB总线的硬件描述
GPIB总线技术于1978年问世,它是测试系统中设备之间相互通讯的一种协议,实现了计算机与测量系统的首次结合。GPIB总线是一个数字化24脚(扁型接口插座)并行总线,其中16根线为TTL电平信号传输线,包括8根双向数据线、5根接口管理线、3根数据传输控制线;另外8根为地线和屏蔽线。GPIB使用8位并行、字节串行、异步通信方式,所有字节通过总线顺序传送。在GPIB中,它能自动适应测试系统中各台仪器不同的数据速率,数据一直保持到速率最慢的接受者收到后才能撤销或更新。GPIB设备包括听者(Listeners)、说者(Talkers)和控制者(Controllers)。听者负责接收消息(数据或命令),说者负责发送消息而控制者负责管理总线上的消息。一台仪器即可以是听者也可以是说者甚至是控制者,但每一时刻只能承担一个角色。GPIB接口的突出特点是一个接口可以连接多个GPIB设备,通过多个设备的协同工作完成多个物理量的测量,虽然GPIB的基址多达31个,但是为了整个系统获得较高的传输速率,一般跟GPIB总线上连接的设备不要超过15个。开发基于GPIB总线虚拟仪器的硬件一般包括:需要控制的测量仪器(带有GPIB接口)、GPIB接口卡、GPIB线缆和微机。测量仪器和GPIB线缆的数量由测量的实际情况决定,GPIB卡用来建立微机与测量仪器的连接,各测量仪器的GPIB接口用GPIB线缆连接,图1给出了一个基本的GPIB总线虚拟仪器的硬件连接示意图。
图1 基于GPIB总线的虚拟仪器硬件连接简图
GPIB总线虚拟仪器的软件描述
当我们将GPIB卡插入到计算机的PCI插槽内(假设GPIB卡是PCI接口的),安装好GPIB接口卡驱动后,就相当于给计算机增加了一个外部接口,其功能就如同计算机上原配的并口或串口。此时GPIB卡以及GPIB接口对设计者来说是透明的,在程序中完全可以不用考虑,设计者所关心的只是如何利用适当的命令来控制他们需要控制的仪器,因此虚拟仪器的实现很大程度上取决于软件的设计。基于Labview的GPIB总线虚拟仪器的软件一般包括以下几个部分:Labivew开发平台(NI公司),GPIB卡在Labivew环境下的驱动程序(一般由GPIB卡的制造商提供)和测量仪器的Labivew驱动程序(NI的网站上提供了上千种主流仪器的驱动程序,如果没有相应的驱动程序的话,可以求助NI公司进行提供驱动,用户也可以参考仪器随机配套的编程手册自行开发)。NI公司提供的仪器的Labview驱动程序里面封装了复杂的仪器编程细节,为用户使用仪器提供了简单的函数接口,用户不必对仪器硬件有专门的了解,就可以通过仪器驱动程序来使用这些仪器。大大简化了开发一套虚拟仪器的工作。
基于Labview的GPIB总线虚拟仪器的开发实例
下面结合一个开发实例来具体介绍一下基于Labview环境的GPIB总线虚拟仪器的开发过程,实例为对美国Stanford Research systems公司的锁相放大器进行二次开发,实现对相位的实时采集,并把采集结果以文件形式进行保存的目的。开发步骤如下:
实验软硬件的设置与安装
实验中所用的GPIB卡为NI公司的PCI-GPIB/TNT5004,该卡支持Win95,win98和Winxp。该卡是即插即用设备,不需人工设置,但安装有点特殊,步骤如下:①放入NI488.2光盘让其自动运行;②选择Plugand Play Interface并点击Next;③选择Shutdown并点击Finish;④将GPIB卡插入电脑的一个PCI插槽内,并重新启动计算机;⑤运行NI488.2开始向导。接下来用GPIB线缆(实验中所采用的是NI公司的GPIB线)把GPIB卡和仪器的GPIB接口接连起来。至此实验所需的硬件及相关软件的安装与设置全部完成,接下来利用Labview开发平台进行虚拟仪器的软件编程。
实验软件编程
Labview与GPIB设备进行通信有两种方式,一是利用仪器接口子模板(InstrumentI/O)中的GPIB驱动函数,另一种是利用模板中的VISA驱动函数,虽然VISA驱动函数能够与多种接口的仪器进行通信,但是它属于低层的编程对编程者有较高的要求,并不适合广大的实验人员。本文采用第一种方法并且采用模块化的编程风格,以便于程序的变更和扩展。一个完整的Labview程序由三部分组成,即前面板、代码窗口及程序图标和接口板。其中前面板主要实现程序的输入输出功能,由控制件元素和显示件元素组成;代码窗口则是用来编辑图形代码以实现对控件行为和属性的控制;图标和接口板则是用来实现子程序的调用。图2和图3分别给出了程序最基本部分即锁相放大器收发信息VI的程序代码,程序的其它部分都是建立在这两个VI的基础上的,通过编程把适当的GPIB命令通过这两个VI发送给仪器或者接收仪器返回的信息。
图4为虚拟仪器实验程序框图,本框图包括两大模块,分别为仪器设置模块和数据处理模块,仪器设置模块主要负责仪器测量时各种参数的设定,如GPIB地址设置、测量模式选择、精度设定、显示部件选取、单位设定等,同时也具有显示测量当前值的功能;数据处理模块主要负责测量数据的实时显示、测量数据以文本文件形式存储到指定的文件(程序内部设定的文件路径为d:\mearementdate\c1.xls,这个路径可以通过修改数据存储模块来改变)和简单的分析功能(本程序只提供了信道1和信道2的测量数据的比较部分,其它分析功能也可以通过修改数据存储模块来增加)。
图2 计算机向锁相放大器发送信息VI代码
图3 接收锁相放大器发回计算机的信息VI代码
图4 锁相放大器虚拟仪器的实验程序代码
实验结果
Labview是非常优秀的GPIB总线虚拟仪器的开发平台。虚拟仪器不但很好的完成仪器的原有功能,而且具备测量数据实时显示、存储、分析等功能,极大地扩展了原仪器的功能。
结语
本文概述了GPIB总线以及基于Labview的GPIB总线虚拟仪器,介绍了Labview开发平台下进行GPIB总线虚拟仪器开发的软硬件要求,并结合实例介绍了开发的具体过程。