先看一下下面的程序框图。

Picture
      从程序框图上,我们猜测程序员的目的是把前面板上一些重要控件的引用打包成簇,然后在各个子VI中使用该簇传递所需控件的引用并通过引用修改控件的值或者其它属性,如颜色等等。

      我们知道,获取一个VI中控件的引用,在VI本身中是非常容易的,直接创建这个控件的引用就可以了,但是在在其它VI中获取另一个VI中控件的引用是比较 复杂的。理论上说,通过应用程序的引用,可以获取VI的引用。通过VI的引用可以获取VI前面板控件的引用,对于簇和选项卡这样的控件,控件本身是嵌套 的,获取其中单个控件的引用该更是非常非常困难。

      区别不同控件的重要标志是控件的标签(LABEL),相当于变量名,知道控件所属VI和LABEL名称,通过遍历的方法,可以获取控件的引用,如下图所示。

Picture
       上图可以获取前面板中单个控件的引用,但是如果大量频繁操作,如果控件众多,且有嵌套,比如簇中的控件,则必须首先得到簇的引用,然后再次循环遍历,找到特定控件的引用。

       如果只需要读取或者修改控件的值,则不需要查找控件的引用,通过VI方法节点可以直接操作,如下图所示。

Picture
      在具体运用中,一般我们只是对前面板上的特定控件进行频繁操作,这种情况下,我们需要知道的只是特定控件的引用,而不是全部。

      使用用户标签(TAG)是解决类似问题的比较好的方法,我们知道,VB控件中可以定义具体的TAG,用来表示控件的特定信息,LABVIEW中的VI和控件也是如此。LV提供了这样的函数,只是没有列入控件选板和文档中。几个重要的用户标签(TAG)VI需要自己查找,其所在文件夹如下图所示。

Picture
      这个文件夹中共包括六个V I,分为两组:VI标签和控件标签。
      VI标签函数,可以设置、获取和移除VI TAG.控件标签函数可以设置、获取和移除控件标签.对于固定不变的信息,可以直接存储在VI中,这种情况下,在后续操作中,只要读取TAG信息就可以了。

      标签中存储的是变体类型数据,因此可以存储各种数据类型。本文第一个图中存储的控件引用,可以直接存储在控件的用户标签(USER TAG)中,这样就不需要在各个VI中通过端子传递引用数据了,如下图所示。

Picture
      在其它VI中只要获取主VI的引用和指导USER TAG名称就可以读取这些特定的控件引用并进行操作了,如下图所示。

Picture
Picture
 
      LV2009版新增了局部框图整理功能,这极大地方便了我们创建LV程序框图。由于前面版本的自动框图整理功能整理的是全部程序程序框图,这使得自动整理功能仅适合于在较小的子VI中使用。因为在较大的程序结构中,主要的数据流程连线是我们精心设计的,并不希望被改变。
      LV2009的局部框图整理功能使我们可以选择部分程序,进行自动整理。更为重要的是可以在选择整理的部分中,可以选择特定的结构,使特定的结构不在整理范围中。

自动框图整理主要有以下用法:

一、整理全部程序框图
      这是8.5(好像是8.6——转载者)版本之后提供的功能,在不选择程序框图的情况下,自动选择选择全部程序框图。

二、整理局部程序框图
      用鼠标框选所选部分,或者点击特定的结构,则整理的是局部程序框图。

三、禁止整理某个特定的结构
      对于特定的LV结构,比如条件结构、循环结构、事件结构等,通过快捷菜单可以设置为“取消程序框图整理”,这种情况下,以后所有的程序框图整理操作,将不包括这部分。
      对于不包括结构的部分,可以临时增加单帧顺序结构,并设置它为“取消程序框图整理”。

Picture
Picture
 
      从我第一次接触LV6.1开始,LABVIEW随着版本的不断升级,发生了很大的变化,但是不同版本的LV,它的工具条几乎没有变化。2009的工具条同早期版本相比,增加了两个按钮。
Picture
      其中右侧的工具按钮为整理程序框图按钮,2009版本已经可以进行局部框图整理,稍早版本只能进行全部框图整理,这个功能是非常易用的,尤其是对比较小的子VI。

      左侧的工具按钮为切换(T OGGLE)按钮,名称为“保持连线值”,可以在“保持连线值”和“不保持连线值”之间切换,该功能是新增的,极大地增强了VI调试功能。能在工具按钮中列出,足以说明它是非常常用的。

      在早期版本中,VI运行完毕后,使用探针检测连线值是不可能的,这对于调试子VI,非常不方便,尤其是瞬时VI。因为瞬时VI是瞬时执行的,不显示前面板,打开后,除了能看到输入控件的值和输出控件的值,是看不到中间连线的值的。

      选择“保持连线值”,可以在VI运行后,任意增加探针,探针显示连线最后一次流过的值,这样就很容易分析出VI的运行状况。

Picture