本帖最后由 eehome 于 2013-1-5 10:09 编辑
1.1 虚拟仪器概述 虚拟仪器(virtual instrumention)是基于计算机的仪器。计算机和仪器的密切结合是目前仪器发展的一个重要方向。粗略地说这种结合有两种方式,一种是将计算机装入仪器,其典型的例子就是所谓智能化的仪器。随着计算机功能的日益强大以及其体积的日趋缩小,这类仪器功能也越来越强大,目前已经出现含嵌入式系统的仪器。另一种方式是将仪器装入计算机。以通用的计算机硬件及操作系统为依托,实现各种仪器功能。虚拟仪器主要是指这种方式。下面的框图反映了常见的虚拟仪器方案。 虚拟仪器的主要特点有: n 尽可能采用了通用的硬件,各种仪器的差异主要是软件。 n 可充分发挥计算机的能力,有强大的数据处理功能,可以创造出功能更强的仪器。 n 用户可以根据自己的需要定义和制造各种仪器。 虚拟仪器实际上是一个按照仪器需求组织的数据采集系统。虚拟仪器的研究中涉及的基础理论主要有计算机数据采集和数字信号处理。目前在这一领域内,使用较为广泛的计算机语言是美国NI公司的LabVIEW。 虚拟仪器的起源可以追朔到20世纪70年代,那时计算机测控系统在国防、航天等领域已经有了相当的发展。PC机出现以后,仪器级的计算机化成为可能,甚至在Microsoft公司的Windows诞生之前,NI公司已经在Macintosh计算机上推出了LabVIEW2.0以前的版本。对虚拟仪器和LabVIEW长期、系统、有效的研究开发使得该公司成为业界公认的权威。 普通的PC有一些不可避免的弱点。用它构建的虚拟仪器或计算机测试系统性能不可能太高。目前作为计算机化仪器的一个重要发展方向是制定了VXI标准,这是一种插卡式的仪器。每一种仪器是一个插卡,为了保证仪器的性能,又采用了较多的硬件,但这些卡式仪器本身都没有面板,其面板仍然用虚拟的方式在计算机屏幕上出现。这些卡插入标准的VXI机箱,再与计算机相连,就组成了一个测试系统。VXI仪器价格昂贵,目前又推出了一种较为便宜的PXI标准仪器。 虚拟仪器研究的另一个问题是各种标准仪器的互连及与计算机的连接。目前使用较多的是IEEE 488或GPIB协议。未来的仪器也应当是网络化的。 1.2 LabVIEW是什么? LabVIEW(Laboratory Virtual instrument Engineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。 图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图或流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。 利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。 1.3 LabVIEW的运行机制 1. 3.1 LabVIEW应用程序的构成 所有的LabVIEW应用程序,即虚拟仪器(VI),它包括前面板(front panel)、流程图(block diagram)以及图标/连结器(icon/connector)三部分。 前面板 前面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。图1所示是一个随机信号发生和显示的简单VI是它的前面板,上面有一个显示对象,以曲线的方式显示了所产生的一系列随机数。还有一个控制对象——开关,可以启动和停止工作。显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程图。 流程图 流程图提供VI的图形化源程序。在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。图1-2是与图1-1对应的流程图。我们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为了使它持续工作下去,设置了一个While Loop循环,由开关控制这一循环的结束。 如果将VI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图上的东西相当于仪器箱内的东西。在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。 图标/连接器 VI具有层次化和结构化的特征。一个VI可以作为子程序,这里称为子VI(subVI), 被其他VI调用。图标与连接器在这里相当于图形化的参数,详细情况稍后介绍。 1.2.2 LabVIEW的操作模板 在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函数(Functions)模板。这些模板集中反映了该软件的功能与特征。下面我们来大致浏览一下。 工具模板(Tools Palette) 该模板提供了各种用于创建、修改和调试VI程序的工具。如果该模板没有出现,则可以在Windows菜单下选择Show Tools Palette命令以显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从Windows菜单下选择了Show Help Window功能后,把工具模板内选定的任一种工具光标放在流程图程序的子程序(Sub VI)或图标上,就会显示相应的帮助信息。 下述工具中注意1和2的区别,2用于编程时,1用于运行程序时。4是一个特有的工具,它并不是一个简单的画线工具,而是一个符合LabVIEW语言规定的对象连接工具。 工具图标有如下几种: | | | | | | | 用于操作前面板的控制和显示。使用它向数字或字符串控制中键入值时,工具会变成标签工具 | | | Position/Size/Select (选择) | 用于选择、移动或改变对象的大小。当它用于改变对象的连框大小时,会变成相应形状。 | | | | 用于输入标签文本或者创建自由标签。当创建自由标签时它会变成相应形状。 | | | | 用于在流程图程序上连接对象。如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。 | | | Object Shortcut Menu(对象菜单) | | | | | | | | Set/Clear Breakpoint(断点设置/清除) | | | | | 可在框图程序内的数据流线上设置探针。通过控针窗口来观察该数据流线上的数据变化状况。 | |
| | | | | | 用来给对象定义颜色。它也显示出对象的前景色和背景色。 |
下面的两个模板是多层的,其中每一个子模板下还包括多个对象。 控制模板(Control Palette) 注意:只有打开前面板时才能调用该模板 该模板用来给前面板设置各种所需的输出显示对象和输入控制对象。每个图标代表一类子模板。如果控制模板不显示,可以用Windows菜单的Show Controls Palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。 控制模板如左图所示,它包括如下所示的一些子模板。子模板中包括的对象,我们在功能中用文字简要介绍。 | | | | | | | 数值的控制和显示。包含数字式、指针式显示表盘及各种输入框。 | | | | 逻辑数值的控制和显示。包含各种布尔开关、按钮以及指示灯等。 | | | | | | | | | | | | | | | | | | | | | | | | 输入/输出功能。于操作OLE、ActiveX等功能。 | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
功能模板(Functions Palette) 注:只有打开了流程图程序窗口,才能出现功能模板。 功能模板是创建流程图程序的工具。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用Windows菜单下的Show Functions Palette功能打开它,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。 功能模板如右图所示,其子模块如下所示。(个别不常用的子模块未包含) | | | | | | | 包括程序控制结构命令,例如循环控制等,以及全局变量和局部变量。 | | | | 包括各种常用的数值运算,还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。 | | | | | | | | 包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。 | | | | | | | | 包括簇的处理函数,以及群常数等。这里的群相当于C语言中的结构。 | | | | | | | | | | | | | | | | 包括数据采集硬件的驱动,以及信号调理所需的各种功能模块。 | | | | | | | | | | | | 包括GPIB(488、488.2)、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。 | | | | | | | | 包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。 | | | | 包括TCP、DDE、ActiveX和OLE等功能的处理模块。 | | | Application Control(应用控制) | | | | | 包括3D、OpenGL、声音播放等功能模块。包括调用动态连接库和CIN节点等功能的处理模块。 | | | | | | | | | | | | | | | |
| | | | |
1.4 LabVIEW的初步操作 1. 4.1 创建VI和调用子VI 我们通过例子来说明如何创建一个VI。 练习1-1: 建立一个测量温度和容积的VI,其中须调用一个仿真测量温度和容积的传感器子VI。步骤如下: 1. 选择 File»New,打开一个新的前面板窗口。 2. 从 Controls»Numeric 中选择 Tank放到前面板中。 3. 在标签文本框中输入“容积” ,然后在前面板中的其他任何位置单击一下。 4. 把容器显示对象的显示范围设置为0.0到1000.0。 a. 使用文本编辑工具(Text Edit Tool),双击容器坐标的10.0 标度,使它高亮显示。 b. 在坐标中输入 1000,再在前面板中的其他任何地方单击一下。 这时0.0到1000.0之间的增量将被自动显示。 5. 在容器旁配数据显示。 将鼠标移到容器上,点右键,在出现的快速菜单中选Visible Iterms»Digital Display即可。 6.从Controls»Numeric 中选择一个温度计,将它放到前面板中。设置其标签为“温度”,显示范围为0到100,同时配数字显示。可得到如下的前面板图。 图1-3 练习1-1的前面板图 7. Windows»Show Diagram 打开流程图窗口。从功能模板中选择对象,将它们放到流程图上组成下图(其中的标注是后加的)。 图1-4 练习1-1的流程图 该流程图中新增的对象有两个乘法器、两个数值常数、一个随机数发生器、一个进程监视器,温度和容积对象是由前棉板的设置自动带出来的。 a. 乘法器和随机数发生器由Functions»Numeric中拖出,尽管数值常数也可以这样得到,但是建议使用c 中的方法更好些。 b. 进程监视器(Process Monitor)不是一个函数,而是以子VI的方式提供的,它存放在LabVIEWActivity目录中,调用它的方法是在Functions»Select a VI下打开Process Monitor,然后在流程图上点击一下,就可以出现它的图标。 注意:LabVIEW目录一般在Program FilesNational Instruments目录下。 8.用连线工具将各对象按规定连接。a中的遗留问题创建数值常数对象的另一 种方法是在连线时一起完成。具体方法是:用连线工具在某个功能函数或VI的连线端子上单击鼠标右键,再从弹出的菜单中选择 Create Constant,就可以创建一个具有正确的数据格式的数值常数对象。 9.选择 File»Save, 把该VI 保存为 LabVIEWActivity 目录中的 Temp & Vol.vi。 在前面板中,单击Run(运行)按钮,运行该 VI。注意电压和温度的数值都显示在前面板中。 10.选择File»Close,关闭该 VI 。 练习 1-1 结束 附注与说明: 1.如果要查看某个功能函数或者 VI 的输入输出,需要从Help菜单中选择Show Help,再把光标置于这个功能函数或者 VI
|