VC60环境下GPIB虚拟仪器的设计.docx
- 文档编号:11389214
- 上传时间:2023-02-28
- 格式:DOCX
- 页数:10
- 大小:84.72KB
VC60环境下GPIB虚拟仪器的设计.docx
《VC60环境下GPIB虚拟仪器的设计.docx》由会员分享,可在线阅读,更多相关《VC60环境下GPIB虚拟仪器的设计.docx(10页珍藏版)》请在冰豆网上搜索。
VC60环境下GPIB虚拟仪器的设计
VC++6.0环境下GPIB虚拟仪器的设计
摘要:
介绍了基于GPIB的虚拟仪器技术发展、特点,讨论了GPIB测量系统的组成。
阐述了VC++6.0环境下借助于ComponentWorks++和VISA实现虚拟仪器软件编程的方法。
其中,以一个通用电源测试台作为实例,来展示虚拟仪器的开发、应用。
关键词:
虚拟仪器;GPIB;VC;VISA
TheDesignofVirtualInstrumentwithGPIBInterfaceInVisualC++6.0
Abstract:
Thispaperpresentsthedevelopment,thecharacteristicandthevirtualinstrumentstechnology.ThenintroducehowtouseComponentWorks++andVISAtoprogramvirtualinstrumentssoftwareinVisualC++6.0.Apracticalgeneralpurposepowersupplyteststudiobeshowthedevelopmentandapplicationofthevirtualinstruments.
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
Keywords:
VirtualInstrument;GPIB;VC;VISA
黄璐璐,李志华,李训铭
Huang,LuluLi,ZhihuaLi,Xunming
Forpersonaluseonlyinstudyandresearch;notforcommercialuse
河海大学电气工程学院,江苏南京 210098
中图分类号:
TP274文献识别码:
1.引言
计算机技术和现代微电子技术的发展与普及,促进了电子测量仪器的快速发展。
与此同时,工程上也越来越需要将测试用的电子仪器设备与计算机连接起来组成一个由计算机控制的智能系统,即自动测试系统(Auto-testSystem)。
而虚拟仪器(VirtualInstrument)正是自动测试系统中一项重要技术,这种新的测试仪器理念推动传统的测量仪器朝着数字化、智能化、模块化的方向发展,从而自动测试系统才得到了长足发展。
往往自动测试系统中仪器设备种类繁多、独立性强,它们与计算机还要协同工作,所用的接口的要求也就要高于一般串行、并行接口。
GPIB(GeneralPurposeInterfaceBus)正是这样的接口,它作为桥梁,把各种仪器与计算机紧密地联系起来,其实,也正是因为GPIB的提出,才使得电子测量由独立的、传统的单台仪器向组成自动测试系统的方向发展。
VC++6.0是现在流行的通用编程软件,在其环境下的虚拟仪器设计,也就有着普遍的意义。
2.虚拟仪器技术
电子测量仪器发展至今,大致上可以分为四代:
模拟仪器、数字化仪器、智能仪器和虚拟仪器[1]、。
先简要地介绍前三代的仪器:
第一代模拟仪器,基本结构是电磁机械式的,借助指针来显示最终结果。
如模拟电压表、模拟电流表、模拟转速表等。
这类仪器仪表常用在要求精度不高、定性指示的场合。
第二代数字化仪器,主要是借助于单片机设计的专用化仪器仪表。
目前相当普及,如数字万用表等。
这类仪器将模拟信号的测量转化为数字信号测量,并以数字方式输出最终结果,适用于快速响应和较高准确度的测量。
第三代智能仪器,这类仪器内置微处理器,既能进行自动测试又具有一定的数据处理能力。
如频谱分析仪等。
由于它的功能块全部都是以硬件(或固化的软件)的形式存在,无论是开发还是应用,都缺乏一定的灵活性[2]。
再来谈谈虚拟仪器的发展及特点[3]、:
虚拟仪器的概念,是美国国家仪器公司(NationalInstrumentsCorp.,简称NI)在1986年提出的。
与此同时提出的,还有“软件就是仪器”(Thesoftwareistheinstrument.)的概念,这就强调软件在虚拟已其中的关键地位。
任何一台仪器无非由以下三大功能块组成:
信号的采集与控制、信号的分析与处理、结果的表达与输出。
虚拟仪器既是将这三大模块的功能尽可能用计算机实现。
大多数虚拟仪器是由计算机完成信号的分析和处理、结果的表达与输出这两个功能块的部分或全部功能。
也就是说,虚拟仪器是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通讯及图形用户界面(GUI)的控制软件组成,在软件控制下,由模块化仪器硬件进行测量信号的数据的采集,数据采集完毕后,传给计算机,软件再进行数据的分析处理,通过图形用户界面等方式将结果显示给用户。
数据分析这一方面,若使用智能仪器,则可由其完成一定程度上的分析。
虚拟仪器框架结构图参见图1。
图1虚拟仪器框架结构图
3.GPIB标准
GPIB是HP公司在60年代末和70年代初开发的通用仪器控制接口总线标准。
IEEE国际组织在1975年对GPIB进行了标准化,由此GPIB变成了IEEE488.1标准。
1987年,IEEE推出了IEEE488.2标准。
作为最早的仪器总线,GPIB的原始目的是对测试仪器进行计算机控制。
然而,GPIB的用途十分广泛,现已应用于计算机与计算机之间的通讯,以及对扫描仪和图像记录仪的控制。
随后,主要的仪器制造商于1987年制定了VXI(VMEbuseXtensionforInstrumentation)标准,其数据传输速度高达40MB/s,但价格相对过高,多用于尖端的测试领域。
1997年推出PXI(PCIeXtensionforInstrumentation)标准,其目的是将普通的PC机的性能价格比优势,与PCI总线面向仪器领域的必要扩展完美地结合起来,形成一种主流的虚拟仪器测试平台。
相较于VXI、PXI标准,GPIB标准的数据传输速度一般低于500KB/s。
在价格上,它覆盖了从比较便宜的到异常昂贵的仪器,各种仪器制造商生产的GPIB仪器种类繁多,有很大的选择空间。
它适用于那些要求高准确度,但不要求高速的工程应用[2]、[3]。
一个典型的GPIB测量系统由一台PC机/工作站、一块或多块GPIB接口板卡和若干台GPIB仪器通过标准GPIB电缆连接而成。
在标准情况下,一块GPIB接口板卡所连接的仪器设备不能超过14台。
为了提高总线上的数据传输速率,电缆总长度不超过20m,总线上任意两台装置之间的电缆长度,在电缆总长度没有超过系统设备总数乘以2m的情况(例如,5台设备时,电缆总长度为10m)下,没有特别限制(一般标配的电缆长度有1m、2m、4m、0.5m、6m、8m等多种规格),通常这已经足够了。
若利用GPIB扩展技术,一个GPIB自动测量测试系统的规模无论是仪器数量还是距离都可以进一步扩展。
系统中每个设备(包括接口板卡),必须有一个0到30之间的GPIB地址。
一般而言,GPIB接口板卡地址设置为0,各种GPIB仪器的地址设置为从1到30。
GPIB由一个控者(PC机/工作站)控制总线,在总线上传送仪器命令和数据,控者(Controller)寻址一个讲者(Talker),一个或多个听者(Listener),数据串在总线上从讲者向听者传送。
GPIB软件包自动处理寻址和其他的总线管理功能[4]。
下面通过建立一个通用电源测试台的实例来介绍GPIB虚拟仪器测量系统的建立过程,电路硬件连接如图2所示。
图2通用电源测试台硬件连接图
该测试台将对三十多种整流电源、线性稳压电源、开关电源进行各项性能指标的测试、分析,这些电源可以统称为被测件(UnitUnderTest,简称UUT)。
测试台中所有GPIB设备均由美国Agilent公司和台湾Chroma公司生产。
GPIB接口卡只用一块,采用的是Agilent82350型GPIB接口卡,此卡插在计算机的PCI插槽上。
计算机利用此接口卡,通过GPIB总线电缆与GPIB仪器相连,在软件的支持下就成为一台GPIB系统控制器。
测试台中三相交流电源采用Chroma6463可编程交流电源,单相交流电源采用Agilent6813B交流电源/分析仪,电子负载用了两台,采用的是Agilent6060B直流电子负载,示波器采用Agilent54622A数字示波器,万用表采用Agilent34401A数字万用表。
测试台工作过程如下:
三相、单相交流电源按照应用程序的设定产生所需的交流电压波形,加在UUT的输入端,同时UUT相应的电子负载也由应用程序进行调节,通过示波器、万用表测量UUT输出端电压电流的变化,从而分析UUT的各项性能指标,包括了UUT的输出电压、输出电流、输出电压纹波、电压稳定度、负载稳定度等指标。
硬件设备连接好之后,安装运行Agilent82350接口卡附带的AgilentIOLibraries,配置接口卡地址为0,在每台可编程仪器设备的前面板上设置各自的地址,若再安装编写好的虚拟仪器测量系统的控制软件,就可以对虚拟仪器进行远程控制,完成相应的测量任务了。
4.VC++6.0下虚拟仪器的软件实现
构造一个虚拟仪器系统,基本硬件确定以后,就可以通过不同的软件实现不同的功能。
根据“软件就是仪器”这一思想,可见软件是虚拟仪器系统的关键所在。
虚拟仪器是利用计算机技术来实现和扩展传统仪器的功能,自然离不开计算机编程。
图形用户界面与面向对象编程技术(OPP)的结合,很好地提高了计算机软件编程效率。
VC++6.0作为一种流行的可视化面向对象编程软件,在其中进行虚拟仪器的软件编程,对于诸多熟悉VC的程序员来说,是一个方便快捷的实现途径。
NI公司有一种软件工具ComponentWorks++,可以加载在VC++下,这样就使VC++成为功能强大的虚拟仪器开发平台。
加载ComponentWorks++之后的VC++6.0,为了模拟真实仪器的前面板,可以在对话框上加入形象的仪表旋钮、开关、滑动条、图形等。
方法如下:
1)单击VC++6.0菜单栏的“Project”菜单,选择“AddtoProject”子菜单中的“ComponentsandControls…”项,弹出“ComponentsandControlsGallery”对话框。
2)在对话框中打开“RegisteredActiveXControls”文件夹,选择所需的NI控件,有CWButtonControl,CWGraphControl,CWGraph3DControl,CWKnobControl,CWNumEditControl,CWSlideControl等。
按照VC指示操作,加入这些控件。
3)在“Controls”工具条中,可以看到新加入的NI控件,这样,就可以象使用普通VC控件一样,来使用新控件了。
4)这些控件都是顾名思义的,很容易掌握,如需帮助,单击菜单栏的“Tools”菜单,选择“ComponentWorks++Help”子菜单,就会运行ComponentWorks++OnlineHelp。
图形用户界面很快可以建立起来,软件还要控制GPIB仪器,GPIB仪器的控制有多种方法,在3.GPIB标准中的通用电源测试台例子采用了AgilentIOLibraries配置系统,那同样以AgilentIOLibraries为例,利用AgilentIOLibraries对GPIB仪器进行控制有以下两种控制程序库:
一种是利用AgilentVISA(VirtualInstrumentSoftwareArchitecture)程序库。
VISA是由组成VXIplug&play系统联盟的35家最大的仪器仪表公司所统一采用的标准。
GPIB、VXI、GPIB-VXI、串行(RS-232)和LAN接口均支持VISA。
采用VISA标准,用户可不必考虑时间及仪器接口,各家公司的驱动软件也相互兼容。
32位版本的VISA在Windows95、Windows98、WindowsMe、WindowsNT和Windows2000下都可以使用。
VISA所提供的单一的、统一的IO库,使用户可以用一种与接口无关的方式为各类仪器编程。
大大增强了虚拟仪器的通用性。
另一种是利用AgilentSICL(StandardInstrumentControlLibrary)程序库。
这是Agilent为多种接口下便携式仪器提供的IO库。
GPIB、GPIO、VXI、串行(RS-232)和LAN接口均支持SICL。
考虑到测量系统的兼容性,建议使用AgilentVISA程序库。
要在VC中编译VISA程序,可按照AgilentIOLibraries中的说明文档中的步骤,在VC的库文件(LibraryFiles)目录中加入VISA32.LIB,在包含文件(IncludeFiles)目录中加入指定的目录。
当然,在VISA程序中包含所需的头文件(HeaderFiles)也是可以的。
AgilentVISA提供了众多的功能函数,其中常用的几个重要函数有:
viOpenDefaultRM,viOpen,viPrintf,viScanf,viQueryf,viClose。
viOpenDefaultRM返回一个指向默认资源管理器(DefaultResourceManager)的会话(session)。
该函数初始化VISA系统,所有的VISA函数被调用前,必须使用这条函数。
viOpen开始一个与制定仪器联系的会话。
它返回的会话标识符能被随后使用到该仪器的函数使用,用以指示该仪器。
viPrintf以一定的字符串格式转换、格式化、发送命令参数给制定的仪器会话。
viScanf从仪器的输出队列读取数据,并以一定的字符串格式所得数据。
viQueryf可以看成viPrintf、viScanf的组合,首先,该函数相仪器发送一定字符串命令,随后从仪器的输出队列读取数据。
viClose结束一个与制定仪器或默认资源管理器联系的会话。
所有为该会话分配的数据结构都被释放。
正常情况下,viPrintf,viQueryf发送给仪器的字符串都是使仪器动作或查询仪器状态的指令,viScanf,viQueryf所读取的数据是查询指令执行的结果。
这些指令都是符合SCPL(StandardCommandsforProgrammableInstruments)标准的。
SCPL是为通过GPIB控制仪器而设计的编程语言。
SCPL是IEEE488.2(GPIB)标准硬件部分的顶层规范。
相同的SCPI指令和参数控制不同类别仪器的相同函数。
例如,VOLTage命令既可以控制交流电源的电压,也可以调节电子负载的电压。
*RST、*IDN?
、*TST?
等都是常用命令,分别表示初始化仪器(reset)、查询表明仪器类型和软件版本的标识码(identifies)、对仪器进行自测试(self-test),并查询测试结果[4]。
例如,3.GPIB标准中的通用电源测试台例子的单相交流电源6813B的虚拟控制面板如图3所示。
图36813虚拟控制面板
设置其输出电压为220V、电压频率为50Hz,并读取以确保设置是否正确的简略程序如下:
viSessionvidefaultRM,vi6813B;
viOpenDefaultRM(&videfaultRM);
viOpen(videfaultRM,"GPIB0:
:
2:
:
INSTR",VI_NULL,VI_NULL,&vi6813B);
…
viPrintf(vi6813B,":
OUTPOFF\n");//关闭电源输出
viPrintf(vi6813B,":
VOLT220\n");//设置电压
viPrintf(vi6813B,":
FREQ50\n");//设置频率
viPrintf(vi6813B,":
OUTPON\n");//打开电源输出
floatfValueV,fValueHz;
viQueryf(vi6813B,":
MEAS:
VOLT:
AC?
\n","%f",&fValueV);//回读电压
viQueryf(vi6813B,":
MEAS:
FREQ?
\n","%f",&fValueHz);//回读频率
…
viClose(vi6813B);
viClose(videfaultRM);
5.结束语
就虚拟仪器控制软件的编写,大致总结一下,可分为两种方式:
第一种是用通用编程软件进行编写,本文所提到的VC++6.0就属此列,此外,还有VB,NI公司的ComponentWorks工具,就是为VB准备的。
第二种是用专业图形化编程软件进行开发。
如Agilent公司的VEE(原先是HP公司产品,HP被Agilent收购后,并入后者产品),NI公司的LabView和LabWindow/CVI。
参考文献
[1]林正盛.虚拟仪器技术及其发展.现代计量测试.1997.04
[2]贾中湖李本威.发动机自动测试系统的虚拟仪器技术.燃气涡轮试验与研究.2001.02
[3]邓卫华胡宗波张波.基于HPI/O库的虚拟仪器与实验平台.仪器仪表学报2001S2
[4]AgilentVISAUser’sGuide(Edition5)美国Agilent公司2001.08
作者简介:
黄璐璐:
女,1980年8月生,汉族,南京河海大学电气工程学院自动化系硕士研究生,研究方向:
计算机测控系统E-Mail:
,025-*******
李志华:
河海大学电工程学院自动化系副教授,硕士生导师,025-*******
李训铭:
河海大学电工程学院自动化系教授,硕士生导师,025-*******
Author'sbriefintroduction:
HuangLulu,Female,8/1980,Han,InstituteofElectricalEngineering,HoHaiUniversity,ResearchfulField:
Computermeasureandcontrolsystem
(210098江苏省南京市河海大学电气工程学院自动化系)黄璐璐李志华李训铭
仅供个人用于学习、研究;不得用于商业用途。
Forpersonaluseonlyinstudyandresearch;notforcommercialuse.
NurfürdenpersönlichenfürStudien,Forschung,zukommerziellenZweckenverwendetwerden.
Pourl'étudeetlarechercheuniquementàdesfinspersonnelles;pasàdesfinscommerciales.
толькодлялюдей,которыеиспользуютсядляобучения,исследованийинедолжныиспользоватьсявкоммерческихцелях.
以下无正文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VC 60环境下GPIB虚拟仪器的设计 60 环境 GPIB 虚拟仪器 设计
![提示](https://static.bdocx.com/images/bang_tan.gif)