1、第1章 虚拟仪器测试系统1.1 虚拟仪器1.2 基于虚拟仪器的测试系统1.3 LabVIEW开发环境本章小结思考与练习1.1 虚 拟 仪 器虚拟仪器是计算机硬件资源、仪器与测控系统硬件资源和虚拟仪器软件资源三者的有效结合。本节将主要介绍虚拟仪器的基本概念、功能及组成等基本知识。1.1.1 测量仪器的发展历程测量仪器发展至今,大体经历了四代发展历程,即模拟仪器、数字化仪器、智能仪器、虚拟仪器。虚拟仪器是现代计算机技术和测量技术相结合的产物,是传统仪器观念的一次巨大变革,是将来仪器发展的一个重要方向。计算机和仪器的结合有两种方式。一种方式是计算机装入仪器,其典型的例子就是所谓的智能化仪器。随着计算
2、机功能的日益强大以及其体积的日趋缩小,这类仪器的功能也越来越强大,目前已经出现含有嵌入式系统的仪器。另一种方式是将仪器装入计算机,以通用的计算机硬件及操作系统为依托,实现各种仪器的功能,即虚拟仪器(Virtual Instrument,VI)。1.1.2 虚拟仪器的基本概念虚拟仪器是指在以计算机为核心的硬件平台上,由用户设计和定义其功能,具有虚拟仪器面板,由测试软件实现其测试功能的一种计算机仪器系统。虚拟仪器技术利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。灵活高效的软件能帮助用户创建完全自定义的用户界面,模块化的硬件能方便地提供全方位的系统集成,标准的软硬件平
3、台能满足对同步和定时应用的需求。虚拟仪器概念最早是由美国国家仪器公司(NI)在1986年提出的,同时,NI公司推出了图形化的虚拟仪器编程环境LabVIEW,标志着虚拟仪器设计软件平台基本形成,虚拟仪器从概念构思变为工程师实现的具体对象。“虚拟”主要包含两个方面的含义:(1)虚拟仪器的面板是虚拟的。虚拟仪器面板上各种图标与传统仪器面板上的各种器件所完成的功能是相同的,由各种开关、按钮、显示器等图标实现仪器电源的通、断,被测信号的输入通道、放大倍数等参数设置及结果的数值显示、波形显示等。传统仪器面板上的器件都是实物,而且是由手动和触摸进行操作的。虚拟仪器前面板是外形与实物相像的图标,每个图标的“通
4、”、“断”、“放大”等动作通过用户操作计算机鼠标或键盘来完成。(2)虚拟仪器测量功能是通过软件来实现的。1.1.3 虚拟仪器与传统仪器的比较传统仪器由仪器厂商定义其功能,仪器一旦出厂,其功能已经确定。用户要修改仪器的功能需要先研究原仪器的电路图,再设计原理图,最后修改电路。由于现在电路基本是集成功能的,因此电路的修改比较困难。在这样的环境下,用户自己修改传统仪器功能成本很高。虚拟仪器彻底改变了传统仪器由生产厂家定义功能的模式,而是在少量附加硬件的基础上由用户定义仪器功能。因为它的运行主要依赖软件,所以修改或增加功能、改善性能都非常灵活,也便于利用PC的软硬件资源和直接使用PC的外设及网络功能。
5、虚拟仪器不但造价低,而且通过修改软件可增加它的适应性,从而延长它的生命周期,是一种具有很好发展前景的仪器。传统仪器与虚拟仪器的比较如表1-1所示。1.1.4 虚拟仪器的基本功能虚拟仪器的基本功能与传统仪器类似,也是由信号采集与控制、信号分析与处理和结果表达与输出三大功能模块组成,其基本功能组成如图1.1所示。虚拟仪器的这些功能单元是利用现有的计算机,配以必要的硬件和专用软件实现的。图1.1 虚拟仪器的基本功能组成1信号采集与控制功能对被测信号进行采集和控制是虚拟仪器的基本功能。此项功能主要由虚拟仪器的硬件平台完成。仪器硬件可以是基于PC的数据采集卡及必要的外围电路,或者是带标准总线接口的仪器,
6、如GPIB、VXI、PXI总线仪器和串口仪器等。2信号分析与处理功能信号分析与处理功能主要由测试功能应用软件完成。虚拟仪器充分利用了计算机的高速存储、运算功能,并通过软件实现对输入信号的分析处理,如数字滤波、统计处理、数值计算、信号分析、数据压缩、模式识别等数字信号处理。3结果表达与输出功能结果表达与输出由面板功能应用程序完成。虚拟仪器充分利用计算机的人机对话功能,完成仪器各种工作参数的设置,如功能、频段、量程等参数的设置。其对测量结果的表达与输出有多种方式,如屏幕显示,电、磁、光存储,绘图打印,网络传输等。1.1.5 虚拟仪器的基本组成部分虚拟仪器由通用仪器硬件平台(简称硬件平台)和软件两大
7、部分组成。1硬件平台硬件平台包括计算机和I/O接口设备两部分。1)计算机计算机是硬件平台的核心。2)I/O接口设备I/O接口设备主要完成待测输入信号的采集、放大和模数转换等。根据硬件平台接口设备的不同,虚拟仪器构成方式主要有五种类型,如图1.2所示。图1.2 虚拟仪器的构成方式(1)PCI-DAQ。它是以数据采集板、信号调理电路及计算机为硬件平台组成的插卡式虚拟仪器系统,这种系统采用PCI或ISA计算机本身的总线,只需将数据采集卡/板(DAQ)插入计算机机箱内的空槽内即可使用。(2)GPIB仪器。它是以GPIB标准总线仪器与计算机为硬件平台组成的仪器测试系统。(3)串口仪器。它是以Seria1
8、标准总线仪器与计算机为硬件平台组成的仪器测试系统。(4)VXI模块。它是以VXI标准总线仪器模块与计算机为硬件平台组成的仪器测试系统。(5)PXI模块。它是以PXI标准总线仪器模块与计算机为硬件平台组成的仪器测试系统。无论是哪种VI系统,都是通过应用软件将仪器硬件与计算机相结合,其中PCI-DAQ测量系统是最廉价的方式,它是构成VI系统的最基本的方式。2软件一套完整的虚拟仪器系统的软件结构一般来说分为四层。1)测试管理层 用户使用虚拟仪器生产厂商开发的测试管理程序,组成自己的一套测试仪器。这是虚拟仪器的优点之一,它可以方便地使用户根据自己的需要,建立自己的测试仪器。2)应用程序开发层用户使用应
9、用程序开发软件进行深层开发,以扩展仪器原有的功能。3)仪器驱动层 仪器驱动程序是完成对某一特定仪器控制与通信的软件程序集合。它负责处理与某一专门仪器通信和控制的具体过程,将底层复杂的硬件操作隐蔽起来,封装了复杂的仪器编程细节,为用户使用仪器提供了简单的函数调用接口,是应用程序实现仪器控制的桥梁。用户在应用程序中调用仪器驱动程序,进行仪器系统的操作与设计,简化了用户的开发工作。仪器驱动程序由生产商开发,针对不同类型的仪器有不同的驱动程序接口。为给用户提供方便、易用的仪器驱动程序,泰克公司、惠普公司和美国国家仪器公司等35家国际上最大的仪器公司成立了VXI plug&play系统联盟,并推出VIS
10、A(Virtual Instrument Software Architecture)标准。4)I/O总线驱动层I/O接口软件位于仪器设备(即I/O接口设备)与仪器驱动程序之间,是一个完成对仪器寄存器进行直接存取数据操作,并为仪器设备与仪器驱动程序提供信息传递的底层软件,是实现虚拟仪器系统的基础。1.2 基于虚拟仪器的测试系统虚拟仪器技术利用高性能的模块化硬件,结合高效灵活的软件来完成各种测试、测量和自动化的应用。将虚拟仪器技术引入现代的测试系统中,可以充分发挥虚拟仪器技术开发效率高、灵活性和兼容性强以及可重用度高的特点。由1.1.5节可知,基于虚拟仪器的测试系统通常由硬件系统和(测试)软件系
11、统两部分组成。其中硬件系统部分主要包括计算机、数据采集卡、信号控制台、传感器等;软件系统用LabVIEW、LabWindows/CVI等虚拟仪器软件平台进行编写。基于虚拟仪器的测试系统组成如图1.3所示。图1.3 基于虚拟仪器的测试系统结构框图1.2.1 虚拟仪器测试系统的硬件系统虚拟仪器测试系统的硬件系统包括传感器、信号调理模块、数据采集卡、计算机等。1传感器传感器(Transducer)感应物理现象并生成数据采集系统可测量的电信号。在实际测试中,可以根据信号类型和检测方法来选择传感器,包括温度、速度、压力、位移、振动传感器等。例如,热电偶、电阻式测温计(RTD)、热敏电阻器和IC传感器可以
12、把温度转变为ADC可测量的模拟信号。其他包括应力计、流速传感器、压力传感器,它们可以相应地测量应力、流速和压力。在所有这些情况下,传感器可以生成和它们所检测的物理量成比例的电信号。常用的传感器类型如表1-2所示。2信号调理模块信号调理简单地说就是将待测信号通过放大、滤波等操作转换成采集设备能够识别的标准信号,包括功率放大、滤波处理、电气隔离以及为传感器提供激励(电压或电流)等。信号调理的常用类型在图1.4所示的基于虚拟仪器的测试系统结构框图中有详细表示。信号调理的关键技术可以将数据采集系统的总体性能和精度提高10倍,具体见7.5.4节,此处不作详细论述。A/D芯片只能接收一定范围的模拟信号,而
13、传感器把非电物理量变换成电信号后,并不一定在这一范围内。传感器输出的信号有时还必须经放大、滤波、线性化补偿、隔离、保护等措施后,才能送A/D转换器。D/A转换器将二进制数字量转换为电压信号,许多情况下还必须经V/I转换才能驱动电动阀等执行机构,有时候还必须经过功率放大、隔离等措施。3数据采集卡数据采集卡是虚拟仪器最常用的接口形式,具有灵活、成本低等特点,可以用来完成对信号数据的采集、放大及A/D转换任务。数据采集的具体内容见本书第7章。4计算机计算机可以是各种类型的计算机,如PC机、便携式计算机、嵌入式计算机等。图1.4 基于虚拟仪器的测试系统结构框图1.2.2 虚拟仪器测试系统的软件系统软件
14、是虚拟仪器测试系统的核心。目前使用最多的虚拟仪器软件开发平台是NI公司的基于图形化的编程平台LabVIEW。本书后续章节将具体介绍LabVIEW的编程方法。1.3 LabVIEW开发环境LabVIEW是一种图形化的编程语言,本节将通过介绍LabVIEW的特点、前面板、程序框图、工具栏及其编辑原理,使读者对LabVIEW开发环境有一个初步的认识。1.3.1 什么是LabVIEWLabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一种图形化的编程语言。它是美国NI公司推出的虚拟仪器开发平台,广泛地被工业界、学术界和研究实验室所接
15、受,视为一个标准的数据采集和仪器控制软件,也是目前应用最广、发展最快、功能最强的图形化软件集成开发环境。图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是程序框图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念。LabVIEW简化了虚拟仪器系统的开发过程,缩短系统的开发和调试周期,它让用户从繁琐的计算机代码编写中解放出来,把大部分精力投入系统设计和分析当中,而不再拘泥于程序细节。因此,LabVIEW是一个面向最终用户的工具。它可以增强使用者构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、
16、测试并实现仪器系统时,可以大大提高工作效率。LabVIEW集成了满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通信的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。LabVIEW的函数库包括数据采集、GFIB、串口控制、数据分析、数据显示及数据存储等。LabVIEW也有传统的程序调试工具,如设置断点、以动画方式显示数据及其通过程序(子VI)的结果、单步执行等,便于程序的调试。因此,这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,并且其图形化的界面使得编程及使用过程都生动有趣。利用LabVIEW,可产生独立运行的可执行文件,它
17、是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。LabVIEW 8.5的启动界面如图1.5所示,启动界面主要分为两部分:文件(包括新建和打开)和资源(包括用户指南、网络资源及范例)。图1.5 LabVIEW 8.5的启动界面文件的新建窗口可以新建空白VI、项目、以及基于模板的VI和全局变量等。启动界面实现文件新建的具体内容如图1.6所示。文件打开窗口可以打开最近打开的VI以及通过浏览对话框打开指定路径的VI。单击【文件】/【新建】/【VI】,则会弹出一个未命名空白的VI编辑窗口,即前面板,如图1.7所示。图
18、1.6 新建文件的具体内容 图1.7 前面板编辑窗口单击前面板菜单栏中【窗口】/【显示程序框图】,则会显示程序框图编辑窗口,如图1.8所示。设计一个虚拟仪器需在两个窗口中进行。第一个是前面板编辑窗口;第二个是程序框图编辑窗口。下面对它们分别加以介绍。图1.8 程序框图编辑窗口1.3.2 前面板和程序框图1前面板前面板是与用户直接接触的图形用户界面,即VI的虚拟仪器面板。前面板由输入控件和显示控件组成,这些控件是VI的输入输出端口。输入控件是指旋钮、按钮、转盘等输入装置。显示控件是指图表、指示灯等显示装置。输入控件模拟仪器的输入装置,为VI的程序框图提供数据。显示控件模拟仪器的输出装置,用以显示
19、程序框图获取或生成的数据。图1.9所示为找最大值虚拟仪器的前面板。图1.9 前面板前面板窗口所见的操作工具如图1.10所示。主菜单栏将在1.3.3节中介绍,编辑运行快捷工具将在2.6节中介绍,隐藏/显示即时帮助窗口工具将在本小节的程序框图部分介绍。前面板的设计就是从控件选板中选择相应的控件将其放置到前面板,再由前面板配置工具对这些对象进行大小、颜色及位置的配置。前面板对象配置工具栏如图1.11所示。图1.10 前面板窗口的操作工具 图1.11 前面板对象配置工具栏文本设置工具可以修改对象的字体、字体大小、字体式样、字体颜色等,如图1.12所示。对象对齐工具可以将多个对象左、右、上、下边缘对齐、
20、垂直中心和水平居中。对象分布工具可以将对象进行垂直方向的上边缘、下边缘、垂直间隔及垂直压缩的分布,或者将对象进行水平方向的左边缘、右边缘、水平间距及水平压缩的分布。调整对象大小工具可以设置对象的最大、最小宽度和高度以及设置对象的宽度和高度为需要值。对象设置的三个工具如图1.13所示。重新排序工具用于前面板多个对象的组合、锁定及重叠对象的前后重叠位置的安排,如图1.14所示。图1.12 文本设置工具 图1.13 对象设置的三个工具 图1.14 重新排序工具2程序框图程序框图是用户为完成特定功能而编写的程序,即VI的图形化源代码(又称G代码或程序框图代码)。其包含前面板对象在程序框图界面所对应的接
21、线端、节点(程序框图上的对象)、连线以及结构。程序框图是VI测试功能软件的图形化表述。图1.15所示为程序框图。图1.15 程序框图(1)接线端:用以表示输入控件或显示控件的数据类型。在程序框图中可将前面板的输入控件或显示控件显示为图标或数据类型接线端。默认状态下,前面板对象在程序框图以图标形式显示。可以通过右击对象,单击【显示为图标】来改变接线端的显示方式。接线端是在前面板和程序框图之间交换信息的输入输出端口。在前面板控件中输入的数据(如图1.15中布尔型输入控件“停止”)将通过控件接线端传输至程序框图。(2)节点:程序框图上的对象,带有输入输出端,在VI 运行时进行运算。节点相当于文本编程
22、语言中的语句、运算、函数和子程序。图1.15中的最大值/最小值函数即是一个节点。(3)连线:对程序框图对象进行连接,从而实现对象之间的数据传递。每根连线只有一个数据源,但可以与多个读取该数据的VI和函数连接。不同的数据类型的连线有不同的颜色、粗细和样式,如表1-3所示。断开的连线显示为黑色的虚线,中间有个红色的。出现断线的原因有很多,比如连接数据类型不兼容的两个对象时就会产生断线。(4)结构:传统编程语言中循环、条件结构等的图形化表示。程序框图中使用结构可以对代码进行重复操作、有条件执行或按特定顺序执行等。程序框图的设计就是将函数选板上的结构、函数节点和前面板对象在程序框图的接线端按照一定的方
23、式和顺序用连线连接起来。在程序框图的设计过程中可以借助于即时帮助窗口来查看结构或函数节点的使用方法。即时帮助窗口的显示或隐藏由隐藏/显示即时帮助窗口工具实现。为显示即时帮助窗口工具,单击该图标则显示即时帮助窗口,同时该工具图标变为(隐藏即时帮助窗口)。以找最大值程序为例,当单击并将光标移至最大值函数时,即时窗口显示如图1.16所示。图1.16 即时帮助窗口显示3LabVIEW环境的三个选板以上介绍的前面板和程序框图的设计都离不开LabVIEW环境的三个选板:工具选板、控件选板和函数选板。1)工具选板工具选板提供各种用于创建、修改和调试VI程序的工具。工具选板如图1.17所示。图1.17 工具选
24、板如果该选板没有出现,可以单击主菜单【查看】/【工具选板】显示。当从选板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从查看菜单下选择了“显示及时帮助”功能后,把工具选板内选定的任一种工具光标放在框图程序的子程序或图标上,就会显示相应的帮助信息。工具选板中各个工具图标的功能如表1-4所示。续表控件和函数选板与上述工具选板不同,只显示顶层子选板的图标。在这些顶层子选板中包含许多不同的控件或函数子选板。通过这些控件或函数子选板可以找到创建程序所需的面板对象和框图对象。单击顶层图标就可以展开对应的控件或函数子选板,按下控件或函数子模板左上角的大头针就可以把对这个子选板变成浮动板留在屏幕上
25、。2)控件选板控件选板用于前面板的编辑。其中包含各种各样的输入/输出控件和装饰图形。控件选板如图1.18所示。单击菜单【查看】/【控件选板】显示控件选板,或右击前面板空白处弹出控件选板。其中包括新式、经典、系统、Express、用户控件及附加工具包等。这里介绍默认方式下显示的各个子选板(常用控件选板),如表1-5所示。图1.18 控件选板3)函数选板函数选板是创建程序框图的工具,如图1.19所示。单击主菜单【查看】/【函数选板】显示函数选板,或右击程序框图空白处弹出函数选板。下面介绍常用的函数子选板,如表1-6所示。图1.19 函数选板1.3.3 菜单栏LabVIEW菜单主要有主菜单和快捷菜单
26、两类菜单,其中使用率最高的是快捷菜单,几乎所有用于创建VI的对象都有一个快捷菜单供选择和修改。在LabVIEW的前面板和程序框图,用户均可以看到主菜单栏,如图1.20所示。图1.20 主菜单栏主菜单栏包括文件、编辑、查看、项目、操作、工具、窗口、帮助共八个子菜单。(1)文件子菜单。进入LabVIEW窗口后,如果想新建、打开、保存VI或项目文件,选择文件子菜单中相应的选项即可。在文件子菜单中还可以打印和打印设置。另外选择文件子菜单中的VI属性还可以对VI进行各种各样的设置。(2)编辑子菜单。在该子菜单中编程人员可以进行操作的撤销、重做、复制、粘贴、删除等编辑操作;可以对前面板上放置的输入控件中的
27、值进行初始化;可以进行自定义控件、对齐网格线等操作。(3)查看子菜单。如果要打开LabVIEW的三个选板(控件、函数、工具),可以在该菜单中选择相应的选项;此外该菜单中还有查看错误列表和VI层次的选项。(4)项目子菜单。该菜单包括新建、保存、打开、关闭、添加项目等。(5)操作子菜单。利用该菜单可以运行、停止VI,运行调试,还可进行程序运行结束后的打印、记录等操作设置。(6)工具子菜单。利用该菜单可进行NI数据采集设备的测试及配置操作,性能安全分析,动态链接库的应用,VI的查找及发布等一些高级操作。(7)窗口子菜单。利用窗口子菜单可显示程序框图或前面板,还可进行VI编辑窗口的显示方式(左右两栏显
28、示、上下两栏显示)选择等。(8)帮助子菜单。点击该菜单显示即时帮助、搜索在线帮助、调查及解释错误、查找范例及网上资源的搜索等。快捷菜单是在前面板或程序框图中右击对象所出现的菜单,又称弹出菜单。多数LabVIEW对象具有选项和命令快捷菜单,快捷菜单上出现的选项取决于选择的对象。数字控件上弹出的快捷菜单将不同于For循环弹出的快捷菜单,如图1.21所示。图1.21 不同对象的快捷菜单许多快捷菜单和主菜单中还包含下拉子菜单,如图1.22所示。快捷菜单要依赖于对象而出现,主菜单不需要依赖于对象出现,主菜单在LabVIEW的编辑窗口(前面板或程序框图)中出现。图1.22 主菜单和快捷菜单中的下拉子菜单1
29、.3.4 数据流编程模式LabVIEW程序是数据流驱动程序执行。当所有需要的输入都存在时,程序框图节点将运行。节点在运行时产生输出端数据并将该数据传送给数据流路径中的下一个节点。数据流经节点的动作决定了程序框图上VI和函数的执行顺序。【例1-1】图1.23为实现x2+2x+1数值运算的程序框图。程序框图从左往右执行,执行次序不由对象的摆放位置决定。加法节点1只有在乘法节点1、2的输出数据都到达其数据输入端时才能执行。图1.23 数值运算举例Visual Basic、C+、JAVA以及绝大多数其它文本编程语言都遵循程序执行的控制流模式。在控制流中,程序元素的先后顺序决定了程序的执行顺序。在Lab
30、VIEW中,数据流代替命令的先后顺序决定了程序框图元素的执行顺序,因此可以创建具有并行操作的程序框图。【例1-2】并行进行x2+2x+1和sin(x)运算的程序框图如图1.24所示。数据有时候不只是在一条线上流动,数据线可能有分叉。而一个程序上也可能同时有多个数据在不同的线上流动。程序可以被扩展成一张网。一个节点运行完,数据从这个节点输出,会同时被传给所有用到它的其它节点去。一个节点只要它所有的输入都已经准备好了,就会被执行,不需要等待其它节点执行完。这样一来,经常有多个节点同时运行着的,LabVIEW会自动把他们放到不同的线程中去运行。这就是数据流驱动程序的一大特性:自动多线程运行。图1.2
31、4 并行进行x2+2x+1和sin(x)运算【练习1-1】把摄氏温度转换为华氏温度。目的:熟悉LabVIEW的编辑环境,理解LabVIEW的数据流编程原理。设计:摄氏温度转换为华氏温度的VI。(1)打开一个新的VI。(2)创建前面板,如图1.25所示。图1.25 摄氏温度转换为华氏温度的VI的前面板 右击前面板空白处,弹出控件选板。在控件选板上单击【Express】/【数值输入控件】/【数值输入控件】,将其拖放在前面板上。在控件选板上单击【Express】/【数值显示控件】/【数值显示控件】,将其拖放在前面板上。使用标签工具将【数值输入控件】命名为摄氏温度;将【数值显示控件】命名为华氏温度。(
32、3)切换到VI的程序框图。(4)创建程序框图。右击程序框图空白处,弹出函数选板。在函数选板上单击【编程】/【数值】/【乘】,将其拖放在程序框图中。在函数选板上单击【编程】/【数值】/【加】,将其拖放在程序框图中。使用连线工具,连接各个节点,如图1.26所示。图1.26 摄氏温度转换为华氏温度的VI的程序框图(5)保存VI,并且命名为摄氏温度转换为华氏温度.VI。(6)返回前面板,运行VI。注:LabVIEW数据流编程原理可以通过高亮执行观察程序的执行情况,以便很好的理解。高亮执行将在VI的调试技术中具体介绍。本 章 小 结(1)虚拟仪器是一种以计算机和测试模块硬件为基础,以计算机软件为核心所构
33、成的计算机仪器。它可在计算机显示屏幕上虚拟仪器面板,并且由计算机所完成的仪器功能都可由用户软件来定义。(2)虚拟仪器与传统仪器相比具有许多优越性。决定虚拟仪器具有传统仪器不可能具备的特点的根本原因在于“虚拟仪器的关键是软件”。(3)虚拟仪器系统由硬件和软件两大部分构成。硬件是虚拟仪器的基础,软件是虚拟仪器的核心。虚拟仪器的硬件通常包括基础硬件平台和外围测试硬件设备,它们共同组成通用仪器硬件平台。虚拟仪器的软件包括操作系统、仪器驱动器和应用软件三个层次。(4)虚拟仪器系统的软件结构由测试管理层、仪器驱动层和应用程序开发层、I/O总线驱动层四个层面构成。(5)LabVIEW是一个图形化的编程语言,
34、用 LabVIEW开发的程序简称VI。一个VI由前面板、程序框图和图标/连线板三部分组成。(6)LabVIEW开发环境:两个开发窗口(前面板和程序框图)、三个操作选板(控件选板、函数选板、工具选板)。(7)LabVIEW是数据流编程模式。思考与练习1测试测量仪器的发展至今经过了哪些阶段?2什么是虚拟仪器?它有哪些特点?3简述虚拟仪器的系统组成。4简述虚拟仪器的软件层次结构。第2章 虚拟容积测量仪器的设计2.1 虚拟容积测量仪器的设计2.2 子 VI2.3 属性节点2.4 VI编辑调试技术本章小结思考与练习2.1 虚拟容积测量仪器的设计2.1.1 问题描述创建一个测量容积的VI。2.1.2 设计
35、(1)打开一个新的VI。(2)创建前面板,如图2.1所示。右击前面板空白处,弹出控件选板。在控件选板上单击【数值显示控件】/【液罐】,将其拖放在前面板上。使用标签工具将其命名为容积。图2.1 虚拟容积测量仪器的前面板 把容器显示对象的显示范围设置为0.0到1000.0。使用文本编辑工具双击容器坐标的10.0标度,使它高亮显示。在坐标中输入1000,再在前面板中的其他任何地方单击一下,这时0.0到1000.0之间的增量将被自动显示。在容器旁配数据显示。右击容器,在出现的快速菜单中选【显示项】/【数字显示】即可。(3)切换到VI的程序框图。(4)创建程序框图。右击程序框图空白处,弹出函数选板。在函
36、数选板上单击【编程】/【数值】/【随机数】,将其拖放到程序框图。单击【编程】/【数值】/【乘】,将其拖放到程序框图。单击【编程】/【数值】/【最近数取整】,将其放到程序框图。用连线工具连接各个节点,如图2.2所示。(5)保存VI,并且命名为虚拟容积测量仪器.VI。(6)返回前面板,运行VI。图2.2 虚拟容积测量仪器的程序框图2.2 子 VI2.2.1 子VI的定义子VI的节点类似于文本编程语言中的子程序。在LabVIEW中一个VI被其他VI在程序框图中调用,则称该VI为子VI。子VI可重复调用。有效地利用子VI可以简化程序框图的结构,使其更简单、更易于理解,并且能提高VI的运行效率。用户可以
37、把任何一个VI当作子VI来调用,前提是该VI必须编辑图标/连线板。因此,子VI实际上是在用户编辑好虚拟仪器的前面板和程序框图后,再添加一步编辑图标/连线板的工作实现的。为了便于管理,建议用户在编辑虚拟仪器时将每一个VI的图标和连线板都进行编辑,这样该VI不仅可以单独运行,需要时还可以作为其他程序的子VI被调用。2.2.2 创建图标和设置连线板图标和连线板相当于文本编程语言中的函数原型。每个VI都显示为一个图标,位于前面板和程序框图窗口的右上角。当右上角显示的是图标时,可以在其快捷菜单中选择【显示连线板】;如果右上角显示的是连线板,则可以在快捷菜单中选择【显示图标】,如图2.3所示。图2.3 图
38、标或连线板的显示1VI图标VI图标是VI的图形化表示,出现在程序框图和函数选板上,可包含文字、图形或图文组合。如果将一个VI当作子VI使用,程序框图上将显示代表该子VI的图标,默认图标中有一个数字,表明LabVIEW启动后打开新VI的个数。双击图标可自定义或编辑图标。注:建议用户自己定制VI图标,这样便于程序阅读和理解。但这个操作不是必须的,使用默认的LabVIEW图标不会影响功能。按照下列步骤,可以创建或编辑一个图标。(1)打开图标编辑器。打开图标编辑器的方法有如下三种:左击前面板或程序框图右上角的图标。创建或编辑VI图标,右击窗口右上角的图标,从快捷菜单中选择【编辑图标】,打开图标编辑器对
39、话框。单击【文件】/【VI属性】,从【类别】下拉菜单中选择【常规】再单击【编辑图标】按钮,打开图标编辑器对话框。图标编辑器如图2.4所示。图2.4 图标编辑器(2)单击16色或256色框,选择创建图标的类型。对于非彩色打印机,LabVIEW将使用单色打印图标。在VI图标编辑器中,勾选【显示接线端】复选框可在编辑区域内显示连线板的接线端。连线板仅起参考作用,并不在最后的图标中出现。(3)使用图标编辑器对话框左侧的工具可在编辑区域内设计图标。图标常规大小的图像出现在编辑区域右侧的相应图框中。使用【编辑】菜单可在图标上剪切、复制和粘贴图像。用户选中图标的一部分并粘贴一个图像时,LabVIEW将重新调
40、整图像的大小使其与所选区域的大小相匹配。也可从文件系统的任何位置拖动一个图形放置在前面板或程序框图的右上角。LabVIEW会将该图形转换为3232像素的图标。还可使用VI图标通过文件设置方法进行编程来设置VI的图标。(4)使用图标编辑器对话框右侧的【复制于】选项,复制彩色图标或黑白图标。选中【复制于】选项后,单击【确定】按钮,完成修改。注:若需要将图标上的区域留白,可创建一个比一般3232像素略小的形状自定义VI图标。确认背景色为白色,双击选择工具并按下键可删除包括黑色边框在内的整个图标。绘制自定义图标时,应在图标上添加封闭的外框。图标编辑器中的所有三个图标必须覆盖VI图标的相同区域,占用合适
41、的程序框图空间。自定义图标的范例见:Custom Shaped Icon VI LabVIEWexamplesgeneralCustom Shaped Icon.llb。2连线板连线板用于显示VI中所有输入控件和显示控件接线端,类似于文本编程语言中调用函数时使用的参数列表。连线板标明了可与该VI连接的输入和输出端,以便将该VI作为子VI调用。连线板在其输入端接收数据,然后通过前面板的输入控件传输至程序框图的代码中,并将运算结果传输至其输出端,在前面板的显示控件中显示。注:一个VI的接线端应尽量控制在16个以内。接线端太多将影响VI的可读性和可用性。按照下列步骤,为VI设置连线板。(1)右击前面
42、板窗口右上角的图标,单击快捷菜单中【显示连线板】,图标将被替换为连线板。默认的连线板模式为4224。当需要为VI预留一些输入或输出端以方便修改时,可使用默认模式保留未分配的接线端。(2)右击连线板,单击快捷菜单中【模式】,为VI选择不同的连线板模式。与图标相关联的模式将以实心边框的形式高亮显示。可选择其它模式,改变当前模式。注:选择连线板模式时,可使接线端数量大于实际需求。配备多余的接线端将便于在需要的时候直接向VI添加额外的连线,此时调用该VI的其他VI无需重新链接至该子VI。选择一种连线板模式后,可通过添加、删除或旋转等操作对模式进行自定义,使其适应VI的输入输出。(3)如需向模式添加一个
43、接线端,右击需要添加接线端的位置,单击快捷菜单中【添加接线端】。如需删除模式的现有接线端,右击该接线端,单击快捷菜单中【删除接线端】。(4)如需改动连线板模式的空间排列,可右击连线板,从快捷菜单中选择【水平翻转】、【垂直翻转】或【旋转90度】。(5)为连线板的每个接线端指定一个前面板输入控件或显示控件。习惯上,连线板左边的接口作为输入接口,右边接口作为输出接口。对于不满意的连接,可以将之删除(实际为断开端口和控件之间的连接)后重新创建。删除的方法如下:在要删除的端口上单击鼠标右键,选择菜单【断开本连接接线端】,端口变为白色,连接已不存在。注意快捷菜单中的选项删除接线端,表示不仅可以断开端点和控
44、件的连接,而且还可删除接口板上的端口。快捷菜单中的选项【断开连接全部接线端】,则表示一次性删除所有的连接。如一个VI在程序框图上调用另一个VI作为子VI,当子VI的连线板发生变化时,必须在调用方VI的程序框图上右键单击子VI,从快捷菜单中选择【重新链接至子VI】,对子VI重新链接。否则,该VI包含的子VI将处于断开状态而无法运行。连线板最多可拥有28个接线端。如果前面板上的控件不止28个,可将其中的一些对象组合为簇,然后将该簇分配至连线板上的接线端。2.2.3 调用子VI子VI的控件和函数从调用该VI的程序框图中接收数据,并将数据返回至该程序框图。如需创建一个被调用的子VI,单击函数选板上的【
45、选择VI】,找到目标VI并将其拖放到程序框图,即可实现对该VI的调用。一个程序框图含有相同子VI节点的数目与该子VI被调用的次数相等。用操作或定位工具双击程序框图上的子VI,即可编辑该子VI。保存子VI时,子VI的改动将影响到所有调用该子VI的程序,而不只是当前程序。LabVIEW调用子VI时,该子VI仅运行而不显示前面板。如希望某个子VI在被调用时显示前面板,右键单击该VI并从快捷菜单中选择【设置子VI节点】。如希望每个子VI在被调用时都显示前面板,选择【文件】/【VI属性】,从类别下拉菜单中选择【窗口外观】,单击【自定义】按钮。在任意一个VI程序的框图窗口,都可以把其他的VI程序作为子程序
46、调用,只要被调用的VI程序编辑和设置了图标和连接板即可。用户使用函数模板下【选择VI】来完成。当使用该功能时,将弹出一个对话框,用户可以选择需要调用的VI。如图2.5所示。图2.5 子VI的调用如果在一个程序框图中,有几个相同的子VI节点,就表示该子VI节点被调用了几次。但是该子VI的拷贝并不会在内存中存储多次。2.3 属 性 节 点LabVIEW提供了各种样式的前面板对象,应用这些前面板对象,可以设计定制出仪表化的人机交互界面。但是,仅仅提供丰富的前面板对象还是不够的,在实际运用中,还经常需要实时地改变前面板对象的颜色、大小和是否可见等属性,达到最佳的人机交互功能。比如对一个实时监控系统画面
47、,当出现参数差值和其他异常情况,需要提醒用户注意时,常常是通过改变对象的颜色来完成的,这一属性变化是在程序运行过程中由某一逻辑条件触发而非预先定义的。于是,LabVIEW引入了属性节点这一概念,通过改变前面板对象属性节点中的属性值,可以在程序运行中动态地改变前面板对象的属性。本节主要介绍属性节点的创建与使用方法。2.3.1 创建属性节点右击前面板对象或其在程序框图的端口,单击快捷菜单中【创建】/【属性节点】,在属性节点的下拉菜单中选择需要创建的属性,就可创建一个属性节点图标(位于程序框图窗口)。图2.6所示为数值输入控件创建的可见属性节点。用操作工具单击属性节点的图标,或单击图标快捷菜单中的【
48、属性】,会出现一个下拉菜单,其列出了前面板对象的所有属性,可以根据需要选择相应的属性。图2.6 属性节点的创建若要同时改变前面板对象的多个属性,一种方法是创建多个属性节点,另外一种更加简捷的方法是在一个属性节点的图标上添加多个端口。添加的方法是用鼠标拖动属性节点图标下边缘(或上边缘)的尺寸控制点,或在属性节点图标的右键弹出选单中选择【添加元素】,然后再单击图标选择【属性】,例如选择值属性,如图2.7所示。图2.7 创建一个对象的多个属性2.3.2 使用属性节点如果属性的方向箭头在右侧,则为读取属性值;如果箭头位于左侧,则为写入属性值。单击快捷菜单中【转换为写入】或【转换为读取】可以修改其属性值
49、的数据流向。如果单击【全部转换为读取】或【全部转换为写入】一次修改所有属性节点的数据流向。节点按从上到下的顺序执行各属性。如某个属性上发生错误,则节点将在该属性停止,返回一个错误并不再执行任何属性。右击节点并单击快捷菜单中【忽略节点内部错误】可忽略所有错误并继续执行其它属性。如在设置【忽略节点内部错误】后发生错误,则属性节点仍返回该错误。错误输出簇则报告导致错误的具体属性。由于不同类型的前面板对象的属性种类繁多,各不相同,因此本节将主要介绍前面板对象共有的常用属性的用法。掌握了这些基本属性及用法之后,其他一些特殊属性的用法依此类推。1可见属性该属性用来控制前面板对象在前面板窗口中是否可见,其数
50、据类型为布尔型。当Visible值为True时,前面板对象在前面板上处于可见状态;当Visible值为False时,前面板对象在前面板上处于隐藏状态,如图2.8所示。图2.8 可见属性2禁用属性当VI处于运行状态时,通过该属性可以控制用户是否可以访问一个前面板对象,其数据类型为整型。当输入值为0时,前面板处于正常状态,用户可以访问该前面板对象;当输入值为1时,前面板对象的外观处于正常状态,但用户不能访问该前面板对象;当输入值为2时,前面板对象处于禁用状态,此时,用户不可访问这个前面板对象,如图2.9所示。图2.9 禁用属性3键选中属性该属性用于控制前面板对象是否处于键盘焦点状态,其数据类型为布