基于LabVIEW的虚拟仪器设计研究 - 图文 下载本文

基于LabVIEW的虚拟仪器设计研究 除了上述的优秀开发软件之外,美国HP公司的HP-VEE和HPTIG平台软件,美国Tektronis公司的Ez-Test和Tek--TNS软件,以及美国HEM Data公司Snap-Marter平台软件,也是国际上公认的优秀虚拟仪器开发平台软件。 1.3.2 虚拟仪器展望

随着计算机、通信、微电子技术的不断发展,以及网络时代的到来和信息化要求的不断提高,网络技术应用到虚拟仪器领域中是虚拟仪器发展的大趋势。虚拟仪器技术经过十几年发展,而今正沿着总线与驱动程序标准化、硬/软件模块化、编程平台图形化和硬件模块的即插即用方向前进,以开放式模块化仪器标准为基础的虚拟仪器标准正日趋完善,加上计算机技术和网络技术的迅猛发展,建立在虚拟仪器技术上的各种功能强大、性能优良的先进仪器将层出不穷,价格也会越来越低,使用虚拟仪器进行研究、设计、测试将成为一种趋势,同样,虚拟仪器及技术也将成为学校未来教学科研的重要方法和手段,特别是在理工科学校其应用前景非常广阔。虚拟仪器可以取代测量技术传统领域的各类仪器,“没有测量就没有鉴别,科学技术就不能前进”。虚拟仪器将会在科学技术的各个领域得到广泛应用,对科学技术的发展和工业生产将产生不可估量的影响。

第二章 LabVIEW介绍及设计方案

2.1 LabVIEW 介绍

LabVIEW是实验室虚拟仪器集成环境(Laboratory Virtual Instrument Engineering Workbench)的简称,是美国国家仪器公司(NI)的创新软件产品,也是目前应用最广泛、发展最快、功能最强的图形化软件开发环境。LabVlEW是一个开放式的虚拟仪器开发系统应用软件,它为设计者提供了一个便捷、轻松的设计环境,利用它设计者可以象搭积木一样,轻松组建一个测量系统或数据采集系统,并任意构造自己的仪器面板,而无需进行任何繁琐的计算机程序代码的编写,从而可以大大简化程序的设计。LabVIEW与Visual C++,Visual Basic,LabWindows/CVI等编程语言不同,后者采用的是基于文本语言的程序代码,而LabVIEW则是使用图形化程序设计语言G,用方框图代替了传统的程序代码。G语言是LabVlEW的核心。LabVlEW所运用的设备图标与科学家、工程师们习惯的大部分图标基本一致,这使得编程过程和思维过程非常相似。用LabVIEW设计的虚拟仪器可以脱离LabVIEW开发环境,最

基于LabVIEW的虚拟仪器设计研究 终用户看见的是和实际的硬件仪器相似的操作面板。

所有的LabVlEW应用程序,即虚拟仪器,它包括前面板(front panel)、流程图(block diagram)以及图标/连结器(icon/connector)三部分。前面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(contr01)和显示对象(indicator)。

每一个程序前面板都对应着一段框图程序。框图程序用LabVIEW图形编程语言编写,可以把它理解成传统程序的源代码。框图程序由端口、节点、图框和连线构成。其中端口用来控制程序前面板和显示传递数据,节点被用来实现函数和功能调用,图框被用来实现结构化程序控制命令,而连线代表程序执行过程中的数据流,定义了框图内的数据流动方向。

图标/连接器是子VI被其它VI调用的接口。图标是子VI在其他程序框图中被调用的节点表现形式;而连接器则表示节点数据的输入/输出口,就像函数的参数。用户必须指定连接器端口与前面板的控制和显示一一对应。LabVIEW的强大功能归因于它的层次化结构,用户可以把创建的VI程序当作子程序调用,以创建更复杂的程序,而这种调用的层次是没有限制的。 2.1.1 LabVIEW的特点及优势

1、 LabVIEW的特点

LabVIEW具有十分强大的功能,包括数值函数运算、数据采集、信号处理、输入/输出控制、信号生成、图像的获取、处理和传输等等。LabVIEW与C、Pascal、Basic等传统编程语言有着诸多相似之处,如相似的数据类型、数据流控制结构、程序调试工具,以及模块化的编程特点等。但二者最大的区别在于:传统编程语言用文本语言编程;而LabVIEW使用图形语言(即各种图标、图形符号、连线等)编程,界面非常直观形象,而且使用的都是测试工程师们熟悉的旋钮、开关、波形图等,因此是一种直觉式图形程序语言。用LabVIEW编程无需太多编程经验,只要以很直觉的方法建立前面板人机界面和方块图程序,便可以完成编程过程,使用户免于传统程序语言线性结构的困扰,这对于没有丰富编程经验的工程师们来说无疑是个极好的选择。同时,LabVIEW的执行顺序是依方块图间数据的传递来决定的,并不像传统文字式程序语言必须逐行地执行,因此用户能设计出可同时执行多个程序的流程图。

2、 LabVIEW编程的优势

基于LabVIEW的虚拟仪器设计研究 对于构建虚拟仪器,LabVIEW有许多特点和优势,诸如:仪器控制与数据采集的图形化编程;直观明了的前面板用户界面和流程图式的编程风格;内置的编译器可加快执行速度;数据采集DAQ函数库可让用户采集测量信号或发出控制信号,适合应用于快速且直接的控制;650多种仪器驱动程序,可驱动超过50多家厂商所制造的仪器;内容丰富的高级分析库,可进行信号处理、统计、曲线拟合以及复杂的分析工作;利用ActiveX,DDE以及TCP/IP进行网络连接和进程通信;适用于Windows NT/95/3.1,MacOS,HP2UX,Sun以及Concurrent实时计算机等等。LabVIEW现成的人机界面工具可帮助用户很快地构成所需的图形化人机界面,包括趋势图、按钮、LED指示灯和图表等,完全无需从头开始去设计这些元件。并可更进一步以LabVIEW的PC工具箱或其它绘图软件来订制人机界面元件,藉以呈现仪控符号和系统流程图。LabVIEW的特色还在于拥有功能超强且庞大的分析函数库,足以与专业数学分析套装软件相匹敌。

2.1.2 LabVIEW编程语言特点

1、 LabVIEW编程环境

LabVIEW编程环境由前面版和后面板二部分组成。在前面板通过工具条可以根据自己的需要画出美观的各种仪器仪表的界面。在后面板中对应产生所画控件的图标。然后就可以在后面板的工具条中根据需要实现的功能选择图标来表述。最后通过连线来联系不同图标之间的关系。在LabVIEW 7.0以后的版本中,由于鼠标移动到可以连线的地方时会有一个连线标志,从而使这些联线的工作非常方便。对于不同的数据类型,LabVIEW通过线条的粗细、颜色来区别,这就使程序的检查比较方便。

LabVIEW程序运行的方式也与传统编程语言有所区别,它不象传统编程语言那样一条一条语句地往下执行,而是以数据流方式执行程序。也就是说,一个程序节点要在所有数据流都到达时,才开始运行,处理后的数据流同时向后面的各个节点流动。

LabVIEW的G语言编程与C语言也是兼容的,比如在一些数学公式的表述中,LabVIEW提供一些数学公式子VI,但有时使用图形化的方式画数学程序,一方面效率不是很好,同时可能还不如C语言更加直观、易懂,这时可以在公式节点中写人数学公式的C语言的语句。

2、 LabVIEW的G语言编程技巧

基于LabVIEW的虚拟仪器设计研究 LabVIEW编程的一个很重要的概念就是VI结构。LabVIEW软件本身提供了大量的例程可以应用,这大大方便了工程技术人员。同时这些例程对于学习LabVIEW编程技术也是很好的范例。由于这些例程涉及的应用领域比较广泛,很多情况下,编程技术人员可以直接在原有范例的基础上修改,从而快捷地达到使用目的。对于自己创作的一些比较常用的程序段,也可以做成一个子VI,以方便以后使用的调用。LabVIEW还可以调用MatLab等数学工具的模块,这对于做人工神经网络、模糊控制领域的一些应用无疑是十分有利和方便的。

LabVIEW 7.0以上的版本,对于许多控件只要鼠标右击需要连线的端口就可以在产生的create选项中选择所需要的控件。这对于提高编程效率是十分方便的。对于初学LabVIEW的工程人员来讲,大量的控件可能不是很熟悉,LabVIEW的HELP中提供的“show context help”可以给出比较详细的解释和该控件的应用方法。同时,为了方便查找例程,在这里的“find examples”对应的对话框里可以直接查找。同样,在控件框里也可以通过search的方式来查找所需要的控件。 2.1.3 LabVIEW的操作模板

LabVlEW具有多个图形化的操作模板,用于创建和运行程序。这些操作模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。操作模板共有三类,工具(Tools)模板、控制(controls)模板和功能(Functions)模板。

工具模板(Tools Palette)为编程者提供了各种用于创建、修改和调试VI程序的工具,当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。控制模板(Controls Palette)可以为前面板添加输入控制和输出显示。功能模板(Functions Palette)是创建框图程序的工具。

2.2 LabVIEW设计虚拟仪器的方法

LabVlEW的图形化程序设计是基于现代软件的面向对象技术和数据流技术而发展起来的。数据流程序设计表示只有在所有输入都有效时,一个对象才开始执行,同样,只有当对象的功能完成以后,对象输出才有效。这样的话,互相在对象间的数据流控制执行顺序,执行顺序不局限于来自文本式程序设计的线性顺序,它可以不受其限制。用户能够通过连接功能模块来快速开发自己的应用程序,甚至能够使用多路数据通道,实现同步操作。