图标/连接器是子VI被其它VI调用的接口。图标是子VI在其他程序框图中被调用的节点表现形式;而连接器则表示节点数据的输入/输出口,就象函数的参数。用户必须指定连接器端口与前面板的控制和显示一一对应。下面图示为温度计程序(Thermometer VI)的图标和连接器。连接器一般情况下隐含不显示,除非用户选择打开观察它。
LabVIEW的强大功能归因于它的层次化结构,用户可以把创建的VI程序当作子程序调用,以创建更复杂的程序,而这种调用的层次是没有限制的。
举一个例子,我们把前面创建的温度计程序(Thermometer VI)作为一个子程序用在当前新建程序里,当前程序的前面板如下图所示,先前的温度计子程序用于采集数据,而当前的程序用于显示温度曲线,并在前面板上设定测量次数和每次测量间隔的延时。
当前程序的框图如下图所示,它把温度计子程序放置在一个FOR循环里,每次循环过程采集一次测量结果,当循环执行了设定的次数后,程序把采集的数据送到前面板的图表上显示。
LabVIEW这种创建和调用子程序的方法,使创建的程序结构模块化,更易于调试、理解和维护。
第二节 LabVIEW的操作模板
LabVIEW具有多个图形化的操作模板,用于创建和运行程序。这些操作模板可以随意在屏幕上移动,并可以放置在屏幕的任意位置。操纵模板共有三类,为工具(Tools)模板、控制(Controls)模板和功能(Functions)模板。
工具模板(Tools Palette)
工具模板为编程者提供了各种用于创建、修改和调试VI程序的工具。如果该模板没有出现,则可以在Windows菜单下选择Show Tools Palette命令以显示该模板。当从模板内选择了任一种工具后,鼠标箭头就会变成该工具相应的形状。当从Windows菜单下选择了Show Help Window功能后,把工具模板内选定的任一种工具光标放在框图程序的子程序(Sub VI)或图标上,就会显示相应的帮助信息。工具图标有如下几种:
操作工具:使用该工具来操作前面板的控制和显示。使用它向数字或字符串控制中键入值时,工具会变成标签工具的形状。
选择工具:用于选择、移动或改变对象的大小。当它用于改变对象的连框大小时,会变成相应形状。
标签工具:用于输入标签文本或者创建自由标签。当创建自由标签时它会变成相应形状。
连线工具:用于在框图程序上连接对象。如果联机帮助的窗口被打开时,把该工具放在任一条连线上,就会显示相应的数据类型。
对象弹出菜单工具:用左鼠标键可以弹出对象的弹出式菜单。
漫游工具:使用该工具就可以不需要使用滚动条而在窗口中漫游。
断点工具:使用该工具在VI的框图对象上设置断点。
探针工具:可以在框图程序内的数据流线上设置探针。程序调试员可以通过控针窗口来观察该数据流线上的数据变化状况。
颜色提取工具:使用该工具来提取颜色用于编辑其他的对象。
颜色工具:用来给对象定义颜色。它也显示出对象的前景色和背景色。
与上述工具模板不同,控制和功能模板只显示顶层子模板的图标。在这些顶层子模板中包含许多不同的控制或功能子模板。通过这些控制或功能子模板可以找到创建程序所需的面板对象和框图对象。用鼠标点击顶层子模板图标就可以展开对应的控制或功能子模板,只需按下控制或功能子模板左上角的大头针就可以把对这个子模板变成浮动板留在屏幕上。
控制模板(Controls Palette)
用控制模板可以给前面板添加输入控制和输出显示。每个图标代表一个子模板。如果控制模板不显示,可以用Windows菜单的Show Controls Palette功能打开它,也可以在前面板的空白处,点击鼠标右键,以弹出控制模板。
注:只有当打开前面板窗口时才能调用控制模板。
控制模板如左图所示,它包括如图所示的几个子模板。
数值子模板:包含数值的控制和显示。
布尔值子模块:逻辑数值的控制和显示。
字符串子模板:字符串和表格的控制和显示。
列表和环(Ring)子模板:菜单环和列表栏的控制和显示。
数组和群子模板:复合型数据类型的控制和显示。
图形子模板:显示数据结果的趋势图和曲线图。
路径和参考名(Refnum)子模板:文件路径和各种标识的控制和显示。
控件容器库子模板:用于操作OLE、ActiveX等功能。
对话框子模板:用于输入对话框的显示控制。
修饰子模板:用于给前面板进行装饰的各种图形对象。
用户自定义的控制和显示。
调用存储在文件中的控制和显示的接口。
功能模板(Functions Palette)
功能模板是创建框图程序的工具。该模板上的每一个顶层图标都表示一个子模板。若功能模板不出现,则可以用Windows菜单下的Show Functions Palette功能打开它,也可以在框图程序窗口的空白处点击鼠标右键以弹出功能模板。
注:只有打开了框图程序窗口,才能出现功能模板。
功能模板如下图所示。
结构子模板:包括程序控制结构命令,例如循环控制等,以及全局变量和局部变量。
数值运算子模板:包括各种常用的数值运算符,如+、-等;以及各种常见的数值运算式,如+1运算;还包括数制转换、三角函数、对数、复数等运算,以及各种数值常数。
布尔逻辑子模板:包括各种逻辑运算符以及布尔常数。
字符串运算子模板:包含各种字符串操作函数、数值与字符串之间的转换函数,以及字符(串)常数等。
数组子模板:包括数组运算函数、数组转换函数,以及常数数组等。
群子模板。包括群的处理函数,以及群常数等。这里的群相当于C语言中的结构。
比较子模板:包括各种比较运算函数,如大于、小于、等于。
时间和对话框子模板:包括对话框窗口、时间和出错处理函数等。
文件输入/输出子模板:包括处理文件输入/输出的程序和函数。
仪器控制子模板:包括GPIB(488、488.2)、串行、VXI仪器控制的程序和函数,以及VISA的操作功能函数。
仪器驱动程序库:用于装入各种仪器驱动程序。
数据采集子模板:包括数据采集硬件的驱动程序,以及信号调理所需的各种功能模块。
信号处理子模板:包括信号发生、时域及频域分析功能模块。
数学模型子模块:包括统计、曲线拟合、公式框节点等功能模块,以及数值微分、积分等数值计算工具模块。
图形与声音子模块:包括3D、OpenGL、声音播放等功能模块。
通讯子模板:包括TCP、DDE、ActiveX和OLE等功能的处理模块。
应用程序控制子模块:包括动态调用VI、标准可执行程序的功能函数。
底层接口子模块:包括调用动态连接库和CIN节点等功能的处理模块。
文档生成子模板。
示教课程子模板:包括LabVIEW示教程序。
用户自定义的子VI模板。
“选择…VI子程序”子模板:包括一个对话框,可以选择一个VI程序作为子程序(SUB VI)插入当前程序中。
其它几个子模板是LabVIEW的附加Toolkit安装上去的。在LabVIEW完全版中不包括这些子模板。
第三节 创建一个VI程序
请记住,VI程序具有三个要素:前面板、框图程序和图标/连接器。我们将在练习1-1中讨论图标/连接器。
1. 前面板
使用输入控制和输出显示来构成前面板。控制是用户输入数据到程序的接口。而显示是输出程序产生的数据接口。控制和显示有许多种类,可以从控制模板的各个子模板中选取。
两种最常用的前面板对象是数字控制和数字显示。若想要在数字控制中输入或修改数值,你只需要用操作工具(见工具模板)点击控制部件和增减按钮,或者用操作工具或标签工具双击数值栏进行输入数值修改。