1基于LabVIEW的虚拟仪器技术研究与应用李绍稳1袁媛2汪伟伟2房文娟2(1安徽农业大学信息学院2安徽农业大学园艺学院,安徽合肥230036)摘要:LabVIEW被认为是虚拟仪器技术最有影响力和发展前景的软件平台。本文阐述了LabVIEW虚拟仪器的设计原理,详细介绍了LabVIEW的发展历程和研究进展,并举例介绍其应用现状。最后对基于LabVIEW虚拟仪器技术的前景做出展望。关键词:LabVIEW虚拟仪器发展历程研究进展应用现状1引言在这个信息技术日新月异的时代,利用计算机和网络等技术对传统产业进行改造已是大势所趋。虚拟仪器技术正是计算机技术及网络通信技术与传统仪器技术融合的产物。美国国家仪器公司(NationalInstruments,简称NI)于20世纪80年代中期,首先提出了“软件就是仪器(TheSoftwareistheInstrument)”这一虚拟仪器新概念。所谓的虚拟仪器(VirtualInstrument,简称VI),就是在以计算机为核心所组成的硬件平台上,利用其显示功能虚拟仪器控制面板,测试分析功能由软件实现的一种计算机仪器系统。虚拟仪器技术充分利用了最新的计算机技术来实现和扩展传统仪器的功能,一直成为发达国家自动测控领域的研究热点。虚拟仪器的核心是仪器软件化设计理念。近年来,世界各国的许多大型自动测控和仪器公司均相继研制了为数不少的虚拟仪器开发软件平台,如美国HP公司的HP-VEE与HP-TIG,Tektronix公司的Ez-Test和Tek-TNS,以及HEMData公司的Snap-Master平台等,但最早和最具影响力的要数NI公司的LabVIEW开发环境。LabVIEW(LaboratoryVirtualInstrumentEngineeringWorkbench,实验室虚拟仪器集成环境)是NI公司推出的具有革命性的图形化虚拟仪器设计平台,它内置信号采集、测量分析与数据显示功能,摒弃了传统开发工具的复杂性,在提供强大测控功能的同时,还保持系统的灵活性,让您可以无缝地集成一套完整的应用方案[1]。虽然只有近二十年的发展史,可它已经渗透到各行各业,成为科学家和工程师们进行自动测控与仪器应用开发的首选工具。本文就LabVIEW虚拟仪器技术的研究、现状及发展前景作一个概述。2LabVIEW虚拟仪器设计原理虚拟仪器系统一般由硬件和软件组成,硬件是虚拟仪器的基础,而软件是实现虚拟仪器的关键,任何用户都可以通过修改软件的方法很方便地改变、增减仪器系统的功能和规模。虚拟仪器技术的出现,开辟了用户自主设计仪器的新时代,为各层次设计者提供了广阔的思维空间。可以说,计算机是虚拟仪器的心脏,软件是虚拟仪器的灵魂。所以,计算机硬件技术和软件技术的发展都是推动虚拟仪器技术发展的决定性因素。构造一个虚拟仪器系统,基本硬件确定以后,就可通过不同的软件实现不同的功能。所以,提高计算机软件编程效率就成了一个非常现实的问题。2.1虚拟仪器系统的硬件构成2虚拟仪器系统的硬件主要是由个人计算机或者工作站和硬件接口模块组成。其中计算机是主体,主要用来提供实时高效的数据处理性能。硬件接口模块包括仪器硬件和各种通用接口总线,主要用来采集、传输信号。仪器硬件如各种传感器、插入式数据采集卡(DAQ)、信号调理器等。通用接口总线用来把独立的仪器连接到计算机上,如RS232串行总线、GPIB通用接口总线、USB通用串行总线、VXI总线和PXI总线等,可以借不同接口总线的沟通,将虚拟仪器、带接口总线的各种电子仪器或各种插件单元调配并组建成为中小型甚至大型的虚拟仪器自动测试系统。因此计算机和硬件接口模块组成了虚拟仪器测试硬件平台的基础。目前较为常用的虚拟仪器系统是数据采集卡系统、GPIB仪器控制系统、VXI仪器系统以及这三者之间的任意组合。2.2LabVIEW虚拟仪器应用程序的构成LabVIEW是NI公司推出的一种基于图形的开发、调试和运行程序的集成化环境,是目前国际上唯一的编译型图形化编程语言。它把复杂、烦锁、费时的语言编程简化成用菜单或图标提示的方法选择功能(图形),再用线条把各种功能(图形)连接起来。LabVIEW中编写的源程序,很接近程序流程图。所以,只要把程序流程框图画好了,程序也就差不多编好了。LabVIEW图形编程语言中的基本编程单元是VI(VirtualInstrument,虚拟仪器),VI包括三个部分:前面板(FrontPanel)、框图程序(BlockDiagram)和图标(Icon)/连接器(Connector)。前面板既接受来自框图程序的指令,又是用户与程序代码发生联系的窗口。这个窗口模拟真实仪表的前面板,用于设置输入和观察输出,输入量称为控件(Controls),输出量称为指示器(Indicators)。当把一个控件或指示器放到前面板上时,框图中相应地放置一个端子(Terminals),这个端子不能随意被删除,只有删除它对应的控件或指示器时它才随之一起被删除。用户可以使用多种图标,如旋钮、开关、按钮、图表、文本框、图形等,使前面板易看易懂。图1示意了一个利用公式产生波形图的程序(WaveformGenerationUsingFormula.vi)的前面板。每一个VI程序的前面板都对应着一段框图程序。框图程序用LabVIEW图形编程语言编写,可以把它理解成传统程序的源代码。所有VI源程序的框图都是由节点(Nodes)、端子、图框和连线(Wires)四种元素构成。其中,端子被用来同程序前面板的控件和指示器传递数据,节点被用来实现函数和功能调用,图框被用来实现结构化程序控制命令,而连线代表程序执行过程中的数据流,定义了框图内的数据流动方向。编制框图程图1利用公式产生波形图的程序的前面板序时,从功能模板中选择需要的节点图标或图框,将之置于窗体面板上适当的位置,然后用连线连接它们及框图中的端子即可。在彩色监视器上,每种数据类型以不同的颜色和线形强调显示。上述利用公式产生波形图的程序的框图程序如图2。图2利用公式产生波形图的程序的框图程序图标/连接器是子VI被其它VI调用的接口。图标是子VI在其他程序框图中被调用的节点表现形式,而连接器则表示节点数据的输入/输出口,就象函数的参数。用户必须指定连接器端口与前面板的控件和指示器一一对应。图3是利用公式产生波形图的程序的图标和连接器。连接器一般情况3下隐含不显示,除非用户选择打开观察它。图3利用公式产生波形图的程序的图标和连接器2.3LabVIEW虚拟仪器的特点LabVIEW给用户提供了一个理想的程序设计环境和虚拟仪器开发平台,面向的是没有编程经验的用户(尤其是不熟悉C语言或Basic语言的用户),而不是编程专家,它使得科研和工程人员可以摆脱对专业编程人员的依赖。因此LabVIEW适合于从事科研、开发的科学家和工程技术人员,被誉为工程师和科学家的语言。作为一种高水平的程序设计语言,同传统的编程语言相比,可以节省大约80%的程序开发时间,而其运行速度却几乎不受影响,体现了极高的效率。LabVIEW以其直观简便的编程方式、众多源码级的设备驱动程序、多种多样的分析与表达功能支持,满足用户的不同需求。其特点主要体现在以下几个方面:①LabVIEW不同于基于文本的编程语言(如VB和VC),它是一种完全图形化编程语言——通常称为G编程语言(GraphicalProgrammingLanguage),用图标代替文本代码创建应用程序,简明直观、易学易用。②LabVIEW的前面板是模拟真实仪表的前面板,但是它的功能却是真实的,能够代替实际的仪器发挥作用。③LabVIEW使用数据流程序模式,可同时执行多个LabVIEW子程序。④LabVIEW中的VI具有模块化结构和层次化结构,每一个VI可以单独执行,或者被其他程序当作子VI来调用。⑤LabVIEW提供了各种各样的、功能强大的虚拟仪器集成函数库和专用程序,以便用户能够快速组建自己的应用系统。⑥LabVIEW提供DLL接口、CIN(CInterfaceNode)节点,使得其成为一个开放的开发平台;还直接支持动态数据交换(DDE)、结构化查询语言(SQL)、TCP和UDP网络协议等。⑦LabVIEW采用编译方式运行32位应用程序,解决了用解释方式运行程序的其它图形化编程平台运行速度慢的缺陷。⑧支持多种操作系统平台,如Macintosh、PowerMacintosh、HP-UX、SunSPARC、Windows3.X/98/2000/NT等。在以上任何一个平台开发的LabVIEW应用程序都可以直接移植到其它平台上。3基于LabVIEW的虚拟仪器技术发展历程与研究进展进入80年代,计算机在测试与控制领域应用越来越多,NI的工程师们意识到:需要一种强大的软件平台,让用户通过他们的计算机获得更简单有效的测试与控制。苹果公司的Macintosh为这种即将诞生的图形化软件语言提供了一个最好的环境:G语言。不久后,也就是1983年6月,NI为基于计算机的测量和自动化开发出的一个软件包——LabVIEW问世。它的目标是简化程序的开发工作,让工程师和科学家能充分利用PC机的功能,快速简便地完成自己的工作[2]。1986年10月推出的LabVIEW1.0ForMacintosh引发了仪器工业的革命。1990年1月,Macintosh机的第二版推出,它提供了图形编译功能,使得LabVIEW中的VI可以与编译C语言一样的速度运行。1992年,LabVIEW的多平台版本问世,使其可以在Macintosh、MicrosoftWindows环境以及SunSolaries等平台上运行。1993年10月,LabVIEW3.0版本开发完成,同时提供给用户的是一个应用系统生成器(ApplicationBuilder),它使得LabVIEW的VI变成一个可以独立运行的程序[3]。为了支持更多的操作系统平台,1994年4月,LabVIEWforWindows32推出,紧接着在同年10月又推出了LabVIEWforpowerMacintosh。1995年10月,LabVIEWforWindows95开发成功。1997年5月,LabVIEW4.0版本问世。1998年2月,版本升级到LabVIEW5.0。1999年2月,LabVIEWforLinux问世,同年NI公司推出了基于Windows95/WindowsNT4.0的LabVIEW5.1,它特别增加了网络功能,借着4它的新NIDataSocket技术,用户可与其Internet启动应用程序共用数据,不用担心网络协议或数据格式,从而提高了开发网络应用程序的能力。2000年8月LabVIEW6i问世,不仅适用于更多的操作系统平台,而且将智能化测量与控制技术进一步扩展到了Internet网。2001年12月,版本升级到LabVIEW6.1。2003年5月,NI公司推出了LabVIEW7Express版本,这是该公司LabVIEW图形化编程语言全系列产品的一次重要升级。它极大地简化了测量和自动化应用任务的开发,同时还将LabVIEW使用范围进行了扩充。其新特性包括ExpressVI(虚拟仪器程序)和交互式仪器控制与数据采集,并新增RT(实时)、FPGA和PDA模块。一年后,LabVIEW7.1迅速推出,它将Express技术扩展到自动化测量技术和RT应用系统中。经过二十多年的发展,现在的LabVIEW已经成为一个功能强大而又灵活的虚拟仪器和分析软件应用开发工具。基于LabVIEW的虚拟仪器技术的研究是虚拟仪器适应形势发展的必然要求。随着近年来互联网技术的发展,虚拟仪器网络化已经成为研究的热点之一。虚拟仪器不再局限于一台独立的PC机,仪器使用联接功能来分配工作任务变得越来越普遍,最典型的例子就是超级计算机、分布式监控设备及数据/结果远程可视化。另外,商业计算机(PC机)技术开始逐渐与嵌入式系统融合,虚拟仪器的功能也在进一步扩展,包括了更多嵌入式和实时功能。随着消费者对智能型汽车、电器和住宅等消费品需求的增加,嵌入式系统仍然会保持迅猛的发展势头。它的发展促进虚