Menu:

MGI Application control VIs

Picture


Picture
      MGI Application control VI包——在选板的位置和图标见右图所示。

   
Application control VI,涉及到程序设计中各个节点的功能。尤其是 “禁用状态”枚举非常方便提高LabVIEW代码的可读性。


Picture
      MGI Application control 包内,共包含了13vi。

    下面我们解读其中的一些vi。

     既然作者都对
“禁用状态”的枚举有好感,那么就先介绍它好了!

Picture

1、)Disable State Enum Merge VI.vi

Picture
图标
      将该vi放置的程序框图上,我们看到的是相当于一个枚举常数(见下图)。它提供了三个可选项:Enabled、Disabled、Gtayed。


Picture
程序框图上显示类似于枚举常数
      说它是vi可是双击它确打不开,那如何看到它的真面貌呢?通过vi层次结构分析我们看到了它的真貌(通过工具拦上的:查看》VI层次结构)。



Picture
      从vi的层次结构我们看到它是一个控件。双击该控件的图标,我们会看到它是一个严格自定义类型的枚举控件。

      它有什么用呢?实际上它被用来设定某些属性参数。比如,在前面版上有一个名字为“总开关”的布尔量,通过属性节点可以控制它处于“可用”、”不可用“、“灰化”任意一个状态。
      过去我们使用的是常数:0、1、2来设置这三个状态。现在使用这个vi就可以通过枚举常数来控制了。


Picture
使用该vi
Picture
使用常数
      从易读性来看还是使用该vi好,但是NI论坛有人持不同的意见,认为这里有了一个数据的强制转换,会增加数据副本。

      我个人认为,还是使用这个vi好,至少图形整洁些,程序设计也迅捷。但是只可以用在LabVIEW8.6和之前的版本中。

请注意:在LabVIEW2009中不用它,
LabVIEW2009中可自动创建这样的枚举常数,只是最后的这个参数名称太长有些不理想(这也是NI论坛中议论比较多的地方)。参见下图。

Picture
LabVIEW2009
Picture

2、)Get Value(BOOL).vi

Picture
图标
      该vi通过布尔控件的“引用”获得该控件的值(真、假)。从下面的原理图可以看到它是通过控件的属性节点来实现的。

Picture
      我们知道使用属性节点的最大好处是无需连线(从这个意义上讲,属性节点有些像本地变量),使用该vi可以使程序框图看上去更规范、更清晰。

Picture

3、)Get Value(SGL).vi

Picture
图标
      该vi通过单精度数值控件的“引用”获得该控件的单精度值。从下面的原理图可以看到它也是通过控件的属性节点来实现的。

Picture
      使用时注意数据类型的匹配。

Picture

4、)Grayed if Empty String.vi

Picture
图标
      该vi用来检测字符串控件是否为“空”,检测结果如果为“空”,该控件将被“灰化”处理,否则不为“空”时,该控件正常使用。
      该vi仅给出判断结果,
需通过属性节点配合使用。

Picture
Picture