1、虚拟仪器系统及其开发程序 LabVIEW 介绍引言虚拟仪器是将仪器装入计算机,通过计算机的开发软件来实现仪器的功能的一种仪器测试测量系统。目前开发虚拟仪器的软件程序为 LabVIEW,用户只需通过软件技术和相应数值算法,就能实时、直接地对测试数据进行各种分析与处理,透明地操作仪器硬件,方便地构建出模块化仪器。从目前虚拟仪器的发展方向和广泛应用来看,不久的将来,虚拟仪器将广泛应用在气象观测和气象科普中,因此有必要对该系统作一番介绍。一、电子测量仪器的发展电子测量仪器发展至今,大体可分为四代:模拟仪器、数字化仪器、智能仪器和虚拟仪器。第一代模拟仪器,如指针式万用表、晶体管电压表等。第二代数字化仪器
2、,这类仪器目前相当普及,如数字电压表、数字频率计等。这类仪器将模拟信号的测量转化为数字信号测量,并以数字方式输出最终结果,适用于快速响应和较高准确度的测量。第三代智能仪器,这类仪器内置微处理器,既能进行自动测试又具有一定的数据处理能力,可取代部分脑力劳动,习惯上称为智能仪器。它的功能块全部都是以硬件(或固化的软件)的形式存在,相对虚拟仪器而言,无论是开发还是应用,都缺乏灵活性。第四代虚拟仪器,它是现代计算机技术、通信技术和测量技术相结合的产物,是传统仪器观念的一次巨大变革,是将来仪器产业发展一个重要方向。二、虚拟仪器概述及其特点虚拟仪器(virtual instrumention)是基于计算机
3、的仪器,是美国国家仪器公司(National Instruments Corp. 简称 NI)于 1986 年提出的。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪 器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式,它是由计算机硬件资源、模块化仪器硬件和用于数据分析、过程通讯及图形用户界面的软件组成的测控系统。虚拟仪器技术的出现彻底打破了传统
4、仪器由厂家定义,用户无法改变的模式,给用户一个充分发挥自己才能、想象力的空间。用户可以根据自己的要求,设计自己的仪器系统,满足多样的应用需求。与传统仪器相比,虚拟仪器有以下优点:(1)突破了传统仪器在数据处理、显示、存储等方面的限制,大大增强了传统仪器的功能。高性能处理器高分辨率显示器、大容量硬盘等已成为虚拟仪器的 标准配置。(2)利用了计算机丰富的软件资源,实现了部分仪器硬件的软件化,节省了物质资源,增加了系统灵活性;通过软件技术和相应数值算法,实时、直接地对测试数据进行各种分析与处理:通过图形用户界面(GUI)技术,真正做到界面友好、人机交互。(3)基于计算机总线和模块化仪器总线,仪器硬件
5、实现了模块化、系列化,大大缩小系统尺寸,可方便地构建模块化仪器(1nstrument on a Card)。(4)基于计算机网络技术和接口技术,VI 系统具有方便、灵活的互联(connectivity),广泛支持如 FieldBus 等各种工业总线标准。因此,利用VI 技术可方便地构建自动测试系统(ATS,Automatic Test System),实现测量、控制过程的网络化。(5)基于计算机的开放式标准体系结构。虚拟仪器的硬、软件都具有开放性模块化、可重复使用及互换性等特点。因此,用户可根据自己的需要,选用不同厂家的产品,使仪器系统的开发更为灵活、效率更高,缩短了系统组建时间。 三、虚拟仪
6、器的硬件系统虚拟仪器的硬件系统一般分为计算机硬件平台和测控功能硬件。按照测控功能硬件的不同,VI 可分为 GPIB、VXI、PX 工和 DAQ 四种标准体系结构:(1)GPIB(General Purpose Interface Bus)通用接口总线,是计算机和仪器间的标准通讯协议。GPIB 的硬件规格和软件协议已纳入国际工业标准棗工EEE 488.1 和工 EEE488.2。它是最早的仪器总线。典型的 GPIB 测试系统包括一台计算机、一块 GPIB 接口卡和若干台 GPIB 仪器。(2)VXI(VMEbus extension for Instrumentation)即 VME 总线在仪器
7、领域的扩展,是 1987 年山主要仪器制造商共同制订的开放性仪器总线标准。VXI 体系结构综合了 GPIB 和 VEM 总线的优点,它集成的系统硬件集成度高、数据传输率快、便携性好,是当今倍受业界关注的体系结构。(3)PXI(PCI extension for Instrumentation)PCI 在仪器领域的扩展,是 NI 公司于 1997 年发布的一种新的开放性、模块化仪器总线规范。其核心是Compact PCI 结构 Microsoft Windows 软件。PXI 是在 PCI 内核技术上增加了成熟的技术规范和要求形成的。由于其总线吞吐率高、硬件的价格较低被业内人士认为是符合国情的一
8、种体系结构。(4)DAQ(Dara AcQuisition)数据采集,指的是基于计算机标准总线(如 ISA、PCI、PC/104 等)的内置功能插卡。它更加充分地利用计算机的资源,大大增加了测试系统的灵活性和扩展性。利用 DAQ 可方便快速地组建基于计算机的仪器(Computer-BasedInstruments),实现“一机多型”和“一机多用”。在 PC 计算机上挂接若干 DAQ 功能模块,配合相应的软件,就可以构成一台具有若干功能的 PC 仪器。虚拟仪器中各种标准仪器的互连及与计算机的连接目前多使用 IEEE 488或 GPIB 协议。未来的仪器也应当是网络化的。四、虚拟仪器的软件系统虚拟
9、仪器技术最核心的思想,就是利用计算机的硬、软件资源,使本来需要硬件实现的技术软件化(虚拟化)。基于软件在 VI 系统中的重要作用,NI 提出了“软件就是仪器(The software iS the inStrument)”的口号。虚拟仪器的软件框架从低层到顶层,包括三部分:VISA 库、仪器驱动程序、应用软件。VISA(Virtual 1nstrumentation software Architecture)虚拟仪器软件体系结构,实质就是标准的 I/O 函数库及其相关规范的总称。一般称这个I/0 函数库为 VISA 库。它驻留于计算机系统之中执行仪器总线的特殊功能,是计算机与仪器之间的软件层
10、连接,以实现对仪器的程控。它对于仪器驱动程序开发者来说是一个个可调用的操作函数集。仪器驱动程序是完成对某一特定仪器控制与通信的软件程序集。它是应用程序实现仪器控制的桥梁。每个仪器模块都有自己的仪器驱动程序,仪器厂商以源码的形式提供给用户。应用软件建立在仪器驱动程序之上,直接面对操作用户,通过提供直观友好的测控操作界面、丰富的数据分析与处理功能,来完成自动测试任务。虚拟仪器应用软件的编写,大致可分为两种方式:用通用编程软件进行编写。主要有 Microsoft 公司的 Visual Basic 与VisualC+、Borland 公司的 Delphi、Sybase 公司的 PowerBuilder
11、。用专业图形化编程软件进行开发。如 HP 公司的 VEE、 NI 公司的LabVIEW 和 Lab windows/CVI 等。图形化软件开发系统是用工程人员所熟悉的术语和图形化符号代替常规的文本语言编程,界面友好,操作简便,可大大缩短系统开发周期,深受专业人员的青睐。应用软件还包括通用数字处理软件。通用数字处理软件包括用于数字信号处理的各种功能函数,如频域分析的功率谱估计、FFT、逆 FFT 等:时域分析的相关分析、卷积运算、反卷运算、均方根估计、差分积分运算和排序等。以及数字滤波等等。这些功能函数为用户进一步扩展虚拟仪器的功能提供了基础。五、LabVIEW 的简介LabVIEW(Labor
12、atory Virtual Instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW 集成了与满足 GPIB、VXI、RS-232 和 RS-485 协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCPIP、Acvex 等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科
13、学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW 是一个面向最终用户的工具。利用 LabVIEW,可产生独立运行的可执行文件,它是一个真正的 3 2 位编译器。像许多重要的软件一样,LabVIEW 提供了Windows、UNIX、Linux、Macintosh 的多种版本。与其他常见的编程语言相比,它最大的特点就在于它是一种图形化编程语言(G 语言) 。也就是说,我们在用LabVIEW 编程时,面对的不是高度抽象的文本语言,而是图形化的方式。而文本语言和图形化语言也就相当于 DOS 系统和 Windows 系统。六、LabVIEW 的特点(l)直观、易学易用 与 Visual C、V
14、isual Basic 等计算机编程语言相比,图形化编程工具LABVIEW 有一个重要的不同点:不采用基于文本的语言产生代码行,而使用图形化编程语言 G 编写程序;产生的程序是框图的形式,用框图代替了传统的程序代码。 (2)通用编程系统 LABVIEW 的功能并没有因图形化编程而受到限制,依然具有通用编程系统的特点。LABVIEW 有一个可完成任何编程任务的庞大的函数库。该函数库包括数据采集、GPIB、串口控制、数据分析、数据显示及数据存储等。 LABVIEW 也有传统的程序调试工具,如设置断点、以动画方式显示数据及其通过程序的结果、单步执行等,便于程序的调试。LABVIEW 的动态连续跟踪方
15、式,可以连续、动态地观察程序中的数据及其变化情况,比其他语言的开发环境更方便、更有效。 (3)模块化LABVIEW 中使用的基本节点和函数等就是一个个小的模块,可以直接使用;另外,由 LABVIEW 编写的程序即虚拟仪器模块(Virtrual INSTRUMENT,VI) ,除了作为独立程序运行外,还可作为另一个虚拟仪器模块的子模块(即子 VI)供其他模块程序使用。七、LabVIEW 的应用领域 测试测量:LABVIEW 最初就是为测试测量而设计的,至今大多数主流的测试仪器、数据采集设备都拥有专门的 LabVIEW 驱动程序,使用 LabVIEW 可以十分方便地找到各种适用于测试测量领域的 L
16、abVIEW 工具包。有时甚至于只需简单地调用几个工具包中的函数,就可以组成一个完整的测试测量应用程序。 控制:LabVIEW 拥有专门用于控制领域的模块LabVIEW DSC。除此之外,工业控制领域常用的设备、数据线等通常也有相应的 LabVIEW 驱动程序。使用 LabVIEW 可以非常方便地编调各种控制程序。 仿真:LabVIEW 包含了多种多样的数学运算函数,特别适合进行模拟、仿真、原型设计等工作。 快速开发:完成一个功能类似的大型应用软件,熟练的 LabVIEW 程序员所需的开发时间,大概只是熟练的 C 程序员所需时间的 1/5 左右。所以,如果项目开发时间紧张,应该优先考虑使用 L
17、abVIEW,以缩短开发时间。 跨平台:LABVEWI 具有良好的平台一致性。Lab VIEW 的代码不需任何修改就可以运行在常见的三大台式机操作系统上:Windows、Mac OS 及 Linux。除此之外,LabVIEW 还支持各种实时操作系统和嵌入式设备,比如常见的 PDA、FPGA以及运行 VxWorks 和 PharLap 系统的 RT 设备。八、LABVIEW 编程环境 所有的 LabVIEW 应用程序,即虚拟仪器(VI) ,它包括前面板(front panel) 、流程图(block diagram)以及图标/连结器(icon/connector)三部分。典型的 LabVIEW
18、程序结构如图 1 所示,与大多数界面设计软件一样,要构建一个 LabVIEW 程序首先需根据用户需求制定合适的界面,这个界面主要是在前面板中设计,包括放置各种输入输出控件、说明文字和图片等,然后就是在程序框图中进行编程以实现具体的功能。在实际的设计中,通常是以上两步骤的交叉执行。1、启动界面以 Lab VIEW8.6 中文版为例,启动 LabVIEW,首先显示出来的是 LabVIEW的启动界面,如图 2 所示。在这个界面中可创建新 VI、选择最近打开的LabVIEW 文件、查找范例以及打开 LabVIEW 帮助。同时还可查看各种信息和资源,如用户手册、帮助主题以及 National Instr
19、uments 网站 上的各种资源等。图 2 LabVIEW 的启动界面2、前面板前面板是 VI 的人机界面。创建 VI 时,通常应先设计前面板,然后设计程序框图执行在前面板上创建的输入输出任务。新建或打开一个原有 VI,便出现如图 3 所示前面板界面图 3 VI 前面板界面菜单:菜单用于操作和修改前面板和程序框图上的对象。VI 窗口顶部的菜单为通用菜单,同样适用于其它程序,如打开、保存、复制和粘贴,以及其它LabVIEW 的特殊操作。工具栏:工具栏按钮用于运行、中断、终止、调试 VI、修改字体、对齐、组合、分布对象。即时帮助窗口:选择“帮助显示即时帮助”显示即时帮助窗口。将光标移至一个对象上
20、,即时帮助窗口将显示该 LabVIEW 对象的基本信息。VI、函数、常数、结构、选板、属性、方式、事件、对话框和项目浏览器中的项均有即时帮助信息。即时帮助窗口还可帮助确定 VI 或函数的连线位置。图标:图标是 VI 的图形化表示,可包含文字、图形或图文组合。如将 VI当作子 VI 调用,程序框图上将显示该子 VI 的图标。控件选板:控件选板提供了创建虚似仪器等程序面板所需的输入控件和显示控件,仅能在前面板窗口中打开。工具选板:在前面板和程序框图中都可看到工具选板。工具选板上的每一个工具都对应于鼠标的一个操作模式。光标对应于选板上所选择的工具图标。可选择合适的工具对前面板和程序框图上的对象进行操
21、作和修改。3、程序框图创建前面板后,可通过图形化的函数添加源代码,从而对前面板对象进行控制。程序框图中包括前面板上的控件的连线端子,还有一些编程必须的东西,例如函数、结构和连线等。图 4 VI 程序框图界面函数选板:函数选板仅位于程序框图。函数选板中包含创建程序框图所需的 VI 和函数,既包含了大量专用的信号处理、信号运算等 VI 图标,也包含了各种数值运算、逻辑运算的基本 VI 图标。按照 VI 和函数的类型,将 VI 和函数归入不同子选板中。程序框图对象包括接线端和节点。将各个对象用连线连接便创建了程序框图。(1)接线端:前面板对象在程序框图中显示为接线端。它是前面板和程序框图之间交换信息
22、的输入输出端口。输入到前面板输入控件的数据值经由输入控件接线端进入程序框图。运行时,输出数据值经由显示控件接线端流出程序框图而重新进入前面板,最终在前面板显示控件中显示。(2)节点:节点是程序框图上的对象,带有输入输出端,在 VI 运行时进行运算。节点类似于文本编程语言中的语句、运算符、函数和子程序。LabVIEW有以下类型的节点:函数内置的执行元素,相当于操作符、函数或语句,它是 Lab VIEW 中最基本的操作元素。子 VI用于另一个 VI 程序框图上的 VI,相当于子程序。Express VILab VIEW 中自带的协助常规测量任务的子 VI,其功能强大、使用便捷,但付出的代价是效率较
23、低。所以,对于效率要求较高的程序不适合使用。结构执行控制元素,如 For 循环、While 循环、条件结构、平铺式和层叠式顺序结构、定时结构和事件结构。(3)多态 VI 和函数:多态 VI 和函数会根据输入数据类型的不同而自动调整数据类型。比如读/写配置文件的 VI,他们既可以读/写数值型数据,也可以读/写字符串、布尔等数据类型。九、总结通过这一段时间的 LabVIEW 的学习,对 LabVIEW 编程有了一个整体的了解,主要对 LabVIEW 本身所带的入门教程和基础教程进行了学习,也了解了在误码仪项目中是如何进行编程通信的。作为一种图形化的编程语言,其最大的特色就是数据流,不同于 C 语言的指针, C+的类,在编程语言中也是一大特色。在之前和学长进行过两次交流,讲到一点就是 LabVIEW 的学习上手快,但是后期的编程中要有一个知道思想,LabVIEW 当下正被广泛的应用,在将来也会有一个很好的发展前景,在接下来的时间要好好学习一下。