精通LabVIEW程序设计
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.1 虚拟仪器与LabVIEW

学习LabVIEW,其中一个很重要的相关概念是虚拟仪器(Virtual Instrument,以下简称VI)。虚拟仪器是美国国家仪器公司(National Instruments Corp,以下简称NI)1986年推出的概念,是现代计算机技术和仪器技术深层次结合的产物,是计算机辅助测试(CAT)领域的一项重要技术。

1.1.1 虚拟仪器的基本概念

所谓虚拟仪器,是以通用计算机为核心,根据用户对仪器的设计定义,用软件实现虚拟控制面板设计和测试功能的一种计算机仪器系统。用户可通过鼠标、键盘或触摸屏来操作虚拟面板,就如同使用一台专用测量仪器一样,实现需要的测量测试目的。

可见虚拟仪器是将现有的计算机技术、设计软件技术和高性能模块化硬件结合在一起而建立的功能强大又灵活易变的仪器。在虚拟仪器系统中,硬件仅仅是为了解决信号的输入、输出和调理,软件才是整个仪器系统的关键,使用者可以通过修改软件,方便地改变、增减仪器系统的功能与规模,所以说“软件就是仪器”。

从实质上讲,虚拟仪器利用硬件系统(特别是I/O接口设备)完成信号的采集、测量与调理,利用计算机强大的软件功能实现信号数据的运算、分析和处理,利用计算机的显示器模拟传统仪器的控制面板,以多种形式输出检测结果,从而完成所需的各种测试功能。虚拟仪器中的“虚拟”有以下两个层面的意思。

(1)虚拟的控制面板

传统仪器通过设置在面板上的各种“控件”来完成一些操作和功能,如各种开关、按键、滑动调节件、显示器等实现仪器电源的“通”、“断”,被测信号“输入通道”、“放大倍数”、“滤波特性”等参数设置,测量结果的“数值显示”、“波形显示”等。

传统仪器面板上的“控件”都是实物,而且是用手动和触摸进行操作的,而虚拟仪器面板上的各种“控件”,它们的外形是与实物和传统仪器“控件”相像的图标,实际功能通过相应的软件程序来实现。

(2)虚拟的测量测试与分析

传统的仪器是通过设计具体的模拟或数字电路实现仪器的测量测试及分析功能。而虚拟仪器是利用软件程序实现这些功能的。

可见,虚拟仪器是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通信及图形用户界面的软件组成的测控系统,是一种由计算机操纵的模块化仪器系统。

1.1.2 虚拟仪器的特点

虚拟仪器技术利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平台能满足对同步和定时应用的需求。

虚拟仪器技术的特点可概括为以下4点。

(1)性能高

虚拟仪器技术是在PC技术的基础上发展起来的,因此完全“继承”了以现成即用的PC技术为主导的最新商业技术的优点,包括功能超卓的处理器和文件I/O,使您在数据高速导入磁盘的同时就能实时地进行复杂的分析。此外,不断发展的因特网和越来越快的计算机网络使得虚拟仪器技术展现其更强大的优势。

(2)扩展性强

目前日益发展的软硬件工具使得工程师和科学家们不再局限于当前的技术中。得益于虚拟仪器应用软件的灵活性,只需更新计算机或测量硬件,就能以最少的硬件投资和极少的甚至无须软件上的升级即可改进您的整个系统。在利用最新科技的时候,可以把它们集成到现有的测量设备,最终以较少的成本加速产品上市的时间。

(3)开发时间少

在驱动和应用两个层面上,目前高效的软件构架能与计算机、仪器仪表和通信方面的最新技术结合在一起。设计这一软件构架的初衷就是为了方便用户的操作,同时还提供了灵活性和强大的功能,使得能轻松地配置、创建、发布、维护和修改高性能、低成本的测量和控制解决方案。

(4)无缝集成

虚拟仪器技术从本质上说是一个集成的软硬件概念。随着产品在功能上不断趋于复杂,工程师们通常需要集成多个测量设备来满足完整的测试需求,而连接和集成这些不同设备总是要耗费大量的时间。虚拟仪器软件平台为所有的I/O设备提供了标准的接口,帮助用户轻松地将多个测量设备集成到单个系统,减少了任务的复杂性。

如前所述,虚拟仪器由通用仪器硬件平台(简称硬件平台)和应用软件两大部分构成。

1.1.3 虚拟仪器的硬件

随着测试测量应用的日益复杂,目前市场上提供的模块化硬件产品也非常丰富,比如,总线类型支持PCI、PXI、PCMCIA、USB和1394总线等,产品种类从数据采集、信号条理、声音和振动测量、视觉、运动、仪器控制、分布式I/O到CAN接口等工业通信等。

按照硬件接口的不同,虚拟仪器可分为基于PC总线、GPIB总线、VXI总线和PXI总线的4种标准体系结构。

(1)基于PC总线的虚拟仪器

由于个人计算机的用户量及其通用型,基于PC总线的虚拟仪器成为人们的首选。这种硬件一般采用基于PC总线的通用DAQ(Data AcQuisition)数据采集卡,主要的PC总线有ISA、PCI、PC/104等。

这类虚拟仪器充分地利用了计算机的资源,大大增加了测试系统的灵活性和扩展性。利用通用型DAQ可方便快捷地组建基于计算机的仪器,易于实现“一机多型”和“一机多用”。随着A/D转换技术、精密放大技术、滤波技术与信号数字调理技术等的迅速发展,DAQ的采样速率已达到1Gb/s,精度高达24位,通道数高达64个,并能任意组合数字I/O、模拟I/O、计数器/定时器等通道,大大扩展了仪器的功能。

另外,专业仪器厂家生产了大量的DAQ功能模块可供用户选择,如示波器、数字万用表、串行数据分析仪、动态信号分析仪、任意波形发生器等。在PC计算机上挂接若干DAQ功能模块,配合相应的软件,就可以构成一台具有若干功能的“专业”测量、检测仪器。

(2)基于GPIB通用接口总线的虚拟仪器

对已有的专业仪器(尤其是专业数字式仪器),为了扩展其功能或提高性能,往往采用“专用”总线实现与计算机的连接。多数这类仪器配有GPIB(General Purpose Interface Bus,通用接口总线),所以利用此类仪器构建基于计算机的虚拟仪器一般利用GPIB实现。

GPIB是最早的仪器总线,其硬件规格和软件协议已纳入国际工业标准IEEE 488.1和IEEE 488.2,目前多数仪器都配置了符合IEEE 488的GPIB接口。

基于GPIB的虚拟仪器充分利用了现有条件,实现测量、检测等功能。但其数据传输速度一般低于500Kb/s,不适合对系统速度要求较高的应用。

(3)基于VXI总线的虚拟仪器

VXI系统最多可包含256个装置,主要由主机箱、控制器、具有多种功能的模块仪器和驱动软件、系统应用软件等组成,具有即插即用的特性,所以系统中各功能模块可随意更换构成新系统。

基于VXI总线的虚拟仪器具有模块化、系列化、通用化以及VXI仪器的互换性和互操作性的特征,VXI的价格相对较高,适合于尖端的测试领域。

(4)基于PXI总线的虚拟仪器

PXI(PCI eXtension for Instrumentation)总线整合了台式计算机的高速PCI总线的80MB/s优势,借鉴了VXI总线中先进的仪器技术,如同步触发、板间总线、星形触发总线、板载时钟等特性,兼容CompactPCI机械规范,并增加了主动冷却、环境测试(温度、湿度、振动和冲击试验)等要求。这既保证了厂商产品的互操作性和系统的易集成性,同时又使基于PXI的虚拟仪器成为测试系统中具有价格优势的测试方案。

1.1.4 虚拟仪器的软件

虚拟仪器软件框架从底层到顶层,由VISA(Virtual Instrumentation Software Architecture)库、仪器驱动程序、应用软件三部分组成。

1.VISA库

所谓VISA库,即虚拟仪器软件体系结构库,实质上就是标准I/O函数库及相关规范的总称,一般将该I/O函数库称为VISA库。

VISA库驻留于计算机系统中执行仪器总线的特殊功能,起着连接计算机与仪器的作用,以实现对仪器的程序控制。

对于虚拟仪器驱动程序的开发编程者来说,VISA库是一个可调用的操作函数集。

作为标准化的I/O接口软件规范,VISA主要作用有:

● 为所有使用者提供统一的软件编程基础,对驱动程序、应用程序不必考虑接口类型均可使用;

● 仅规定为用户提供标准函数,不对具体实现作任何说明;

● 用于编写符合VPP规范的仪器驱动程序,完成计算机与仪器之间的命令和数据传输,实现对仪器的控制;

● VISA库作为底层I/O接口软件,运行于计算机系统中。

VISA的主要特点有:

● 适用于各类仪器,如VXI、PXI、GPIB、RS-232和USB仪器等;

● 与硬件接口无关;

● 既适用于单处理器结构又适用于多处理器或分布式结构;

● 适用于多种网络机制。

VISA只解决了仪器接口的可互换(即改变接口或总线方式不必修改测试程序),但并没有解决更高层次的针对不同仪器的可互换性。

2.仪器驱动程序

所谓仪器驱动程序是指能实现某一仪器系统控制与通信的软件程序集,是应用程序实现仪器控制的桥梁。仪器的驱动程序由仪器生产商以源码形式提供给用户使用,每个仪器模块都有自己的仪器驱动程序。

常用的虚拟仪器设计软件(如LabVIEW等)集成了大量常用仪器的驱动程序,以方便编程者使用。

经常使用的测试仪器有几十大类、上万种型号,各种仪器的驱动程序都不相同,为使同类功能的仪器可以互换而不修改测试软件,即实现仪器的可互换性,世界各大仪器公司都为在仪器驱动程序研究和制定统一的标准和规范。可互换性既可降低虚拟仪器设计的复杂性,加快设计速度,同时又便于仪器系统的维修更换和更新换代。

仪器驱动程序又称为驱动器。目前,广泛使用的驱动器规范有VPP(VXI Plug & Play,即插即用型驱动器)规范和IVI(Interchangeable Virtual Instruments,互换型驱动器)规范两种类型。

(1)基于VPP规范的即插即用型驱动器

为了解决多生产厂家的VXI系统的易操作性和互操作性问题,提高系统维护、再开发的能力,1993年NI、Tektronics、Racal等著名仪器公司成立了VPP联盟并制定了简称VPP规范。

VPP规范定义了系统的框架、软件接口、仪器驱动器模型。它把与仪器的底层通信封装成一些高层函数,执行仪器的控制功能,VISA作为其底层I/O库。

VPP规范的优点是,程序源代码由仪器生产厂家提供,降低了开发的复杂性;程序采用结构化与模块化结构,便于程序尤其是复杂程序的编制;程序具有兼容性与开放性,即VPP规范对仪器驱动程序的要求不区分仪器的种类,不仅适用于VXI仪器,也同样适用于GPIB仪器、PXI仪器、串行口仪器、网络仪器、USB仪器等。

但是VPP驱动器接口没有严格的语义定义,厂商可以根据自己的情况进行开发,这使得驱动器产品的接口不统一,仪器互换性仍没有最终实现。

(2)基于IVI规范的互换型驱动器

针对VPP规范的缺点,为了进一步提高仪器启动程序在硬件互换、运行性能、发展弹性、质量保证等方面的规范化和标准化,充分实现仪器的互换性和互操作性,1998年8月成立了IVI(Interchangeable Virtual Instruments)基金会,制订了相应的仪器驱动程序规范,简称为IVI规范。

IVI规范在VPP的基础上为仪器驱动程序制定了新的编程接口标准,使应用程序可以实现完全独立于硬件,独立于接口,并增加了仪器仿真、状态缓存等机制,极大地提高了仪器驱动程序的开发效率和执行效率。

IVI规范从两个方面对仪器进行了细分。从功能上,由于仪器的功能不可能完全相同,因此不可能为不同仪器建立一个单一的满足所有要求的编程接口,IVI规范将仪器分成基本功能和扩展功能两部分。前者定义了同类仪器中绝大多数仪器所共有的能力和属性(IVI基金会的目标是支持某一确定类仪器中的95%的仪器),后者则主要体现每类仪器的特殊功能和属性;从类型上,IVI规范将所有的仪器进行分类,已经公布了示波器、开关、任意波形发生器/函数发生器、数字电压表、电源、射频信号发生器、频谱分析仪、功率计和数字I/O仪器九类仪器的规范。更换同类仪器的时候,只要修改或更换那些特殊功能的代码,也就是具体的驱动程序,而不必改动类驱动程序。

和VPP驱动程序相比,IVI仪器驱动程序的优点主要有:

● 仪器级可互换。利用IVI类驱动器编写的测试代码,在仪器硬件用另一同类仪器代替时,不必经过修改便可直接调用;

● 采用了基于状态存储机制的程序结构。面向对象技术中属性管理机制的引入使IVI引擎可实现状态存储。和VPP驱动程序中每个测量函数在进行测量前都要对仪器进行设置(而不管仪器在此之前是否已被正确配置过)不同,通过IVI中属性模型,驱动程序能自动存储仪器的当前状态,只有在仪器设置和函数所要求的不一致时IVI仪器驱动程序函数才执行仪器I/O操作,从而优化了程序运行;

● 仪器仿真。IVI模型驱动程序可以在没有仪器硬件的情况下建立应用程序进行系统仿真,此时驱动程序不执行仪器I/O而仅利用软拷贝来处理,并产生仿真结果。利用仿真数据,实现在没有仪器硬件的情况下为仪器开发应用代码。

● 具有多线程安全性;

● 具有范围检查、状态储存以及其他的调试和开发功能。

IVI规范不但可用于VXI系统,同样可用于GPIB、PXI、串行仪器、Compact PCI等各类插入式仪器,以及高速串行总线控制仪器,如USB和1394总线仪器。

对于面向仪器互换的虚拟仪器设计目标,目前IVI模型的主要缺点体现在:

● 只适合同类仪器的互换,不能实现不同类仪器或某些多类功能的综合性仪器之间的互换;

● IVI类驱动器只能统一某类仪器中大部分仪器功能,其他功能只能通过专用驱动器来实现;

● 可用标准较少,目前只完成了示波器、万用表、函数发生器、多路开关等部分仪器的类驱动器的标准化;

● 标准开放程度低,IVI模型只适合于通用仪器,比如万用表等,而对某些专用仪器(如数据采集卡)不适用。

为了改进IVI模型存在的不足,IVI基金会在IVI基础上又制定了IVI-MSS(Measurement and Stimulus Subsystems,测量和激励子系统)和IVI-Signal Interface规范,它们分别实现基于功能和信号的仪器互换操作。

与即插即用型驱动器类似,基于IVI规范的互换型驱动器开发也包括两步:第一步,定义驱动器组件的接口。这些接口定义要严格遵循相关标准,定义对于不同的仪器和软件类型是标准的和通用的。第二步是驱动器组件接口的内部程序编制。该程序封装在组件内部,不同的仪器程序不同,该程序是非标准的。

对于基于IVI规范的驱动器开发,可以采用如VC++、VB等图形化编程工具进行。

3.应用软件

应用软件是直接面向操作用户的程序,该软件建立在仪器驱动程序之上,通过提供的测控操作界面(或称为仪器面板)、丰富的数据分析与处理功能等完成自动测试任务。尤其是应用软件的通用数字处理软件,集中体现了虚拟仪器的优点。

虚拟仪器应用软件的开发工具有通用编程软件和专业图形化编程软件两类。

● 通用编程软件

这类软件主要有Microsoft公司的Visual Basic与Visual C++、Borland公司的Delphi、Sybase公司的PowerBuilder。这类软件功能强大,但不是专门为虚拟仪器而设计,因此,利用通用编程软件开发虚拟仪器需要开发者具备较高的软件编程技术,同时对虚拟仪器技术也应有相当的了解。

● 专业图形化编程软件

这类软件主要有HP公司的VEE,NI公司的LabVIEW和Lab Windows/CVI等。这类软件专门用于虚拟仪器的开发而设计,对开发者的要求较低,只要了解软件的总体功能以及所要设计的虚拟仪器的功能就可快捷方便地进行开发。

LabVIEW这一行业标准图形化编程软件,不仅能轻松方便地完成与各种软硬件的连接,更能提供强大的后续数据处理能力,设置数据处理、转换、存储的方式,并将结果显示给用户。