第三讲LabVIEW概述3.1LabVIEW简介LabVIEW(LaboratoryVirtualinstrumentEngineering)是一种图形化的编程语言,它广泛地被工业界、学术界和研究实验室所接受,视为一个标准的数据采集和仪器控制软件。LabVIEW集成了与满足GPIB、VXI、RS-232和RS-485协议的硬件及数据采集卡通讯的全部功能。它还内置了便于应用TCP/IP、ActiveX等软件标准的库函数。这是一个功能强大且灵活的软件。利用它可以方便地建立自己的虚拟仪器,其图形化的界面使得编程及使用过程都生动有趣。图形化的程序语言,又称为“G”语言。使用这种语言编程时,基本上不写程序代码,取而代之的是流程图。它尽可能利用了技术人员、科学家、工程师所熟悉的术语、图标和概念,因此,LabVIEW是一个面向最终用户的工具。它可以增强你构建自己的科学和工程系统的能力,提供了实现仪器编程和数据采集系统的便捷途径。使用它进行原理研究、设计、测试并实现仪器系统时,可以大大提高工作效率。利用LabVIEW,可产生独立运行的可执行文件,它是一个真正的32位编译器。像许多重要的软件一样,LabVIEW提供了Windows、UNIX、Linux、Macintosh的多种版本。3.2LabVIEW的运行机制3.2.1LabVIEW应用程序的构成所有的LabVIEW应用程序,即虚拟仪器(VI),它包括前面板(frontpanel)、流程图(blockdiagram)以及图标/连结器(icon/connector)三部分。▲前面板前面板是图形用户界面,也就是VI的虚拟仪器面板,这一界面上有用户输入和显示输出两类对象,具体表现有开关、旋钮、图形以及其他控制(control)和显示对象(indicator)。下图所示是一个随机信号发生和显示的简单VI是它的前面板,上面有一个显示对象,以曲线的方式显示了所产生的一系列随机数。还有一个控制对象——开关,可以启动和停止工作。显然,并非简单地画两个控件就可以运行,在前面板后还有一个与之配套的流程图。例:“随机数产生.VI”▲流程图流程图提供VI的图形化源程序。在流程图中对VI编程,以控制和操纵定义在前面板上的输入和输出功能。流程图中包括前面板上的控件的连线端子,还有一些前面板上没有,但编程必须有的东西,例如函数、结构和连线等。下图是与前图对应的流程图。我们可以看到流程图中包括了前面板上的开关和随机数显示器的连线端子,还有一个随机数发生器的函数及程序的循环结构。随机数发生器通过连线将产生的随机信号送到显示控件,为了使它持续工作下去,设置了一个WhileLoop循环,由开关控制这一循环的结束。如果将VI与标准仪器相比较,那么前面板上的东西就是仪器面板上的东西,而流程图上的东西相当于仪器箱内的东西。在许多情况下,使用VI可以仿真标准仪器,不仅在屏幕上出现一个惟妙惟肖的标准仪器面板,而且其功能也与标准仪器相差无几。▲图标/连接器VI具有层次化和结构化的特征。一个VI可以作为子程序,这里称为子VI(subVI),被其他VI调用。图标与连接器在这里相当于图形化的参数,详细情况稍后介绍。3.2.2LabVIEW的操作模板在LabVIEW的用户界面上,应特别注意它提供的操作模板,包括工具(Tools)模板、控制(Controls)模板和函数(Functions)模板。这些模板集中反映了该软件的功能与特征。▲工具模板(ToolsPalette)该模板提供了各种用于创建、修改和调试VI程序的工具。如果该模板没有出现,则可以在Windows菜单下选择ShowToolsPalette命令以显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。下述工具中注意1和2的区别,2用于编程时,1用于运行程序时。4是一个特有的工具,它并不是一个简单的画线工具,而是一个符合LabVIEW语言规定的对象连接工具。当打开“showcontexthelp”时候,1可跟随鼠标实时显示帮助。例:“随机数产生.VI”▲控制模板(ControlPalette)注意:只有打开前面板时才能调用该模板该模板用来给前面板设置各种所需的输出显示对象和输入控制对象。每个图标代表一类子模板。如果控制模板不显示,可以用Windows菜单的ShowControlsPalette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。▲功能模板(FunctionsPalette)注:只有打开了流程图程序窗口,才能出现功能模板。功能模板是创建流程图程序的工具。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用Windows菜单下的ShowFunctionsPalette功能打开它,也可以在流程图程序窗口的空白处点击鼠标右键以弹出功能模板。例1:建立一个测量温度和容积的VI,其中须调用一个仿真测量温度和容积的传感器子VI。“容积温度测量.VI”1、选择File»New,打开一个新的前面板窗口。2、从Controls»Numeric中选择Tank放到前面板中。3、在标签文本框中输入“容积”。把容器显示对象的显示范围设置为0到1000。4、在容器旁配数据显示。将鼠标移到容器上,点右键,在出现的快速菜单中选VisibleIterms»DigitalDisplay即可。5、从Controls»Numeric中选择一个温度计,将它放到前面板中。设置其标签为“温度”,显示范围为0到100,同时配数字显示。6、Windows»ShowDiagram打开流程图窗口。从功能模板中选择对象,将它们放到流程图上组成下图。乘法器和随机数发生器由Functions»Numeric中拖出,进程监视器(ProcessMonitor)不是一个函数,而是以子VI的方式提供的,调用它的方法是在Functions»SelectaVI下打开ProcessMonitor。用连线工具在某个功能函数或VI的连线端子上单击鼠标右键,再从弹出的菜单中选择CreateConstant,就可以创建一个具有正确的数据格式的数值常数对象。▲注意:显示对象(Indicator)、控制对象(Control)和数值常数对象显示对象和控制对象都是前面板上的控件,前者有输入端子而无输出端子,后者正好相反,它们分别相当于普通编程语言中的输出参数和输入参数。数值常数对象可以看成是控制对象的一个特例。在前面板中创建新的控制对象或显示对象时,LabVIEW都会在流程图中创建对应的端子。端子的符号反映该对象的数据类型。例如,DBL符号表示对象数据类型是双精度数;TF符号表示布尔数;I16符号表示16位整型数;ABC符号表示对象数据类型是字符串。一个对象应当是显示对象还是控制对象必须弄清楚,否则无法正确连线。有时他们的图标是相似或相同的,可以根据需要明确规定它是显示对象还是控制对象。控制对象和显示对象都不能在流程图中删除,只能从前面板上删除。▲注意:连线将构成对象之间的数据通道。因为这不是几何意义上的连线,因此并非任意两个端子间都可连线,连线类似于普通程序中的变量。数据单向流动,从源端口向一个或多个目的端口流动。不同的线型代表不同的数据类型。注意:“容积温度测量.VI”中常数量10的变化,调用模块中的常数和右键creat常数的区别(后者默认为浮点数)当需要连线转弯时,点击一次鼠标键,即可以正交垂直方向地弯曲连线,按空格键可以改变转角的方向。接线头是为了帮助正确连接端口的连线。当把连线工具放到端口上,接线头就会弹出。接线头还有一个黄色小标识框,显示该端口的名字。▲注意:程序调试a语法错误如果一个VI程序存在语法错误,则在面板工具条上的运行按钮会变成一个折断的箭头,表示程序不能被执行。这时该按钮被称作错误列表。点击它,则LabVIEW弹出错误清单窗口,点击其中任何一个所列出的错误,选用showerror(6版本为find)功能,则出错的对象或端口就会变成高亮。b设置执行程序高亮在LabVIEW的工具条上有一个画着灯泡的按钮,这个按钮叫做“高亮执行”按钮上。点击这个按钮使它变成高亮形式,再点击运行按钮,VI程序就以较慢的速度运行,没有被执行的代码灰色显示,执行后的代码高亮显示,并显示数据流线上的数据值。这样,你就可以根据数据的流动状态跟踪程序的执行。c断点与单步执行为了查找程序中的逻辑错误,有时希望流程图程序一个节点一个节点地执行。使用断点工具可以在程序的某一地点中止程序执行,用探针或者单步方式查看数据。使用断点工具时,点击你希望设置或者清除断点的地方。断点的显示对于节点或者图框表示为红框,对于连线表示为红点。当VI程序运行到断点被设置处,程序被暂停在将要执行的节点,以闪烁表示。按下单步执行按钮,闪烁的节点被执行,下一个将要执行的节点变为闪烁,指示它将被执行。你也可以点击暂停按钮,这样程序将连续执行直到下一个断点。d探针可用探针工具来查看当流程图程序流经某一根连接线时的数据值。▲子VI的建立构造一个子VI主要的工作就是定义它的图标和联接器。每个VI在前面板和流程图窗口的右上角都显示了一个默认的图标。启动图标编辑器的方法是,用鼠标右键单击面板窗口的右上角的默认图标,在弹出菜单中选择EditIcon。如果用面板控制对象或者显示对象从子VI中输出或者输入数据,那么这些对象都需要在联接器面板中有一个连线端子。您可以通过选择VI的端子数并为每个端子指定对应的前面板对象以定义联接器。定义联接器的方法是,用鼠标右键单击面板窗口中的图标窗口,在快捷菜单中选择ShowConnector。联接器图标会取代面板窗口右上角的图标。LabVIEW自动选择的端子连接模式是控制对象的端子位于联接器窗口的左边,显示对象的端子位于联接器窗口右边。选择的端子数取决于前面板中控制对象和显示对象的个数。联接器中的各个矩形表示各个端子所在的区域,可以用它们从VI中输入或者输出数据。如果必要,也可以选择另外一种端子连接模式。方法是在图标上单击鼠标右键单出快捷菜单,选择ShowConnector,再次弹出快捷菜单,选择Patterns。例2为VI创建图标和联接器(见例题:容积温度测量2.vi)1、在前面板中,用鼠标右键单击窗口右上角的图标,在快捷菜单中选择EditIcon….,也可以双击图标激活图标编辑器。注意只能在前面板中编辑图标和联接器。2、删除默认图标。也可以通过双击工具框中的阴影矩形删除图标。3、用PencilTool(铅笔工具)绘制一个温度计。4、用TextTool(文本工具)创建文本。得到图标将如下图所示。5、单击OK,关闭编辑器。新创建的图标就显示在屏幕右上角的图标窗口中。6、用鼠标右键单击前面板中的图标窗口,在快捷菜单中选择ShowConnector,设置联接器端子连接模式。在默认情况下,LabVIEW会根据前面板中的控制对象和显示对象的数目确定联接器的端子连接模式。因为前面板中有两个对象,所以联接器有两个端子,如下图所示。用鼠标右键单击联接器窗口,在快捷菜单中选择Rotate90Degrees,注意联接器窗口的变化,如下图所示。7、将端子连接到温度计和电压计:a.点击联接器上部端子。光标自动变成连线工具,同时端子变成黑色。b.单击温度显示对象。一个移动的虚线框把它包围起来,选中的端子的颜色变为与控制/显示对象的数据类型一致的颜色(橙色)。如果单击前面板中的任何空白区域以后,虚线消失,选中的端子变暗,这表示您已经成功地把显示对象和上部端子连接起来。如果端子是白色,则表示没有连接成功。c.重复步骤a和b,把底部的端子和容积计连接起来。d.用鼠标右键单击联接器,在快捷菜单中选择ShowIcon。8、选择File»Save,保存该VI。这样这个VI就完成了,并也可以作为子VI被其他的VI调用。子VI的图标在主VI的流程图中代表它。VI的联接器(含有两个端子)输出温度和电压。3.3图表(chart)入门图表(chart)是一种周期性更新数据的数字式图形显示对象。可以在Controls»Graph模板中找到两种图表:波形图和强度图(后者