第一章 虚拟仪器技术概述
第一节 虚拟仪器的构成及特点
现代化技术的进步以计算机技术的进步为代表。不断革新的计算机技术,从各个层面上影响着、引导着各行业的技术更新。基于计算机技术的虚拟仪器系统技术正以不可逆转的力量推动着测控技术的革命。虚拟仪器系统的概念不仅推进了以仪器为基础的测控系统的改造,同时也影响了以数据采集为主的测控系统的传统构造方法的进化。过去独立分散、互不相干的许多领域,在虚拟仪器系统的概念之下,正在逐渐靠拢、相互影响,并形成新的技术方法和技术规范。
虚拟仪器系统概念是对传统要求概念的重大突破,是计算机系统与仪器系统技术相结合的产物。它利用计算机系统的强大功能,结合相应的硬件,大大突破传统仪器在数据处理、显示、传送、存储等方面的限制,使用户可以方便地对其进行维护、扩展、升级等。
虚拟仪器系统技术的基础是计算机系统,核心是软件技术。因此,美国国家仪器公司提出其著名的口号: The Software is the Instrument (软件就是仪器)。可以说,组建现代化测控系统的成败很大程度上取决于软件平台和工具以及相关硬件设备的选择。
一、 虚拟仪器系统的硬件结构
虚拟仪器系统的概念是测控系统的抽象。不管是传统的还是虚拟的仪器,它们的功能都是相同的:采集数据,对采集来的数据进行分析处理,然后显示处理的结果。它们之间的不同主要体现在灵活性方面。虚拟仪器的功能由用户自己定义,这意味着您可以自由地组合计算机平台、硬件、软件、以及各种完成应用系统所需要的附件。而这种灵活性在由供应商定义、功能固定、独立的传统仪器上是达不到的。您常用的数字万用表、示波器、信号发生器、数据记录仪,以及温度和压力监控器就是传统仪器的代表。从传统仪器向虚拟仪器的转变,为用户带来更多实际的利益。
虚拟仪器不强调每一个仪器功能模块就是一台仪器,而是强调选配一个或几
个带共性的基本仪器硬件来组成一个通用硬件平台,通过调用不同的软件来扩展或组成各种功能的仪器或系统。图1-1示出了现阶段虚拟仪器系统硬件结构的基本框图。
1
图像采集(DSP)信号调理数据采集卡测控对象GP-IB仪器GP-IB接口卡测试软件VXI总线仪器串行口仪器现场总线设备
二、虚拟仪器系统的软件体系结构
图 1-1
基本硬件确定之后,要使虚拟仪器能按用户要求自行定义,必须有功能强大的应用软件。然而相应的软件开发环境长期以来并不理想,用户花在编制测试软件上的工时与费用相当高,即使使用C,C++等高级语言,也会感到与高速测试及缩短开发周期的要求极不适应。因此,世界各大公司都在改进编程及人机交互方面做了大量的工作,其中基于图形的用户接口和开发环境是软件工作中最流行的发展趋势。典型的软件产品有NI公司的LabVIEW和LabWindows,HP公司的HP VEE和HP TIG,Tektronix公司的Ez-Test和Tek-TNS等。
图1-2是NI公司开发的图形开发软件LabVIEW和LabWindows的软件系统体系结构。其中仪器驱动程序主要是完成仪器硬件接口功能的控制程序,NI公司提供了各制造厂家数百种GP-IB,DAQ,VXI和RS-232等仪器的驱动程序。有了仪器驱动程序,用户就不必精通这些仪器的硬件接口,而只要把仪器的用户接口代码及数据处理与分析软件组合在一起,就可以迅速而方便地构建一台新的虚拟仪器。
2
LabVIEW LabWindows 采集分析
仪器驱动程序
NI-488.2NI-VXINI-DAQ驱动程序软件 NI-DSP消息消息IEEE488.2 寄存器寄存器
图1-2
第二节 LabVIEW虚拟仪器系统开发平台
一、LabVIEW简介
计算机总线表示系列命令消息RS-232PortGP-IB LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是美国NI公司研制的一个功能强大的仪器系统开发平台,用来进行数据采集、数据分析和数据表达。经过十多年的发展,LabVIEW已经成为一个具有直观界面,便于开发,易于学习且具有多种仪器驱动程序和工具的大型仪器系统开发工具。
LabVIEW是一种图形程序设计语言,它采用了工程人员所熟悉的术语、图标等图形化符号来代替常规基于文字的程序语言,把复杂繁琐、费时的语言编程简化成简单、直观、易学的图形编程,同传统的程序语言相比,可以节省约80%的程序开发时间。这一特点也为那些不熟悉C、C++等计算机语言的开发者带来了很大的方便。LabVIEW还提供了调用库函数及代码接口节点等功能,方便了用户直接调用由其他语言编制成的可执行程序,使得LabVIEW编程环境具有一定的开放性。
LabVIEW的基本程序单位是VI(Virtual Instrument)。LabVIEW可以通过图形编程的方法,建立一系列的VI(虚拟仪器),来完成用户指定的测试任务。对于简单的测试任务,可由一个VI完成。对于一项复杂的测试任务,则可按照模块设计的概念,把测试任务分解为一系列的任务,每一项任务还可以分解为多项小任务,直至把一项复杂的测试任务变成一系列的子任务。设计时,先设计各种VI以完成每项子任务,然后把这些VI组合起来以完成更大的任务,最后建成的顶层虚拟仪器就成为一个包括所有功能子虚拟仪器的集合。LabVIEW可以让用户把自己创建的VI程序当做一个VI子程序节点,以创建更复杂的程序,且这种调用是无限制的。LabVIEW中各VI之间的层次调用结构如图1-3所示,由图可见,LabVIEW
3
VXI或MXI中的每一个VI相当于常规程序中的一个程序模块。
顶层VI中层VI(1)中层VI(2)中层VI(3)底层VI(1)底层VI(2)底层VI(3)底层VI(4)图1-3
二、LabVIEW特点
LabVIEW拥有卓越的功能、性能和丰富的实用软件包,这不仅保证了系统开发质量,同时简化了开发难度。
◆ LabVIEW 使用“所见即所得”的可视化技术建立人机界面。针对测试测量和过
程控制领域,美国国家仪器公司在LabVIEW中提供了大量的仪器面板中的控制对象,如表头、旋钮、图表等。用户还可以通过控制编辑器将现有的控制对象修改成适合自己工作领域的控制对象。
◆ LabVIEW 使用图标表示功能模板,使用图标间的连线表示在各功能模块间的数
据传递,使用为大多数工程师和科学家熟悉的数据流程图式的语言书写程序源代码。这样使得编程过程与思维过程非常近似。
◆ LabVIEW 提供程序调试功能。用户可以在源代码中设置断点;单步执行源代码;
在源代码中的数据流连线上设置探针,观察程序运行过程中数据流的变化;在数据流程图中以较慢的速度运行程序;根据连线上显示的数据值检查程序运行的逻辑状态。
◆ LabVIEW 继承了传统的编程语言中的结构化和模块化编程的优点。这对于建立
复杂应用,提高代码的可重用性来说是至关重要的。
◆ LabVIEW 采用编译方式运行32位应用程序,这就解决了其它用解释方式运行
程序的图形化编程平台运行程序速度慢的问题。
◆ LabVIEW 支持多种系统平台,如Macintosh、Power Macintosh、HP-UX、Sun
SPACE、Windows3.X、Windows95/98和Windows NT等;在以上任何一个平台上开发的LabVIEW应用程序都可以直接移植到其它平台上。
◆ LabVIEW 提供了大量的库函数供用户直接调用。从基本的数学函数、字符串处
4
理函数、数组运算函数和文件I/O函数到高级的数字信号处理函数和数值分析函数。从底层的VXI仪器、数据采集板和总线接口硬件的驱动程序到世界各大仪器厂商的GPIB仪器的驱动程序,LabVIEW都有现成的模板帮助用户方便迅速组建自己的应用系统。
◆ LabVIEW 是一个开放式的开发平台。LabVIEW提供DLL库接口和CIN节点使用
户有能力在LabVIEW平台上使用由其它软件平台编译的模块。 ◆ 借助DDE、ActiveX等技术,扩充系统的开发能力。 ◆ LabVIEW 运行多线程技术改善系统的运行及可靠性。
◆ 将可重用代码直接嵌入LabVIEW中,并通过简单的图形编程方式进行控制。◆ 可用多种语言把LabVIEW做为服务器调用其程序。
5