Express VI 2 – 工作原理

普通的子VI有前面板和程序框图。子VI前面板上的控件定义了这个子VI所使用的参数;程序框图上的代码实现了这个子VI的功能。在某个VI程序框图上,双击一个普通子VI的图标,可以打开子VI的前面板;按住Ctrl键再双击子VI的图标可以同时打开它的程序框图。

Express VI 的行为与普通子VI有所不同:在程序框图上双击一个Express VI的图标,弹出的是一个配置对话框。应用软件中的大量普通子VI都是有程序员自己开发的,因此,他需要打开子VI的前面板与程序框图进行编辑。而Express VI通常是LabVIEW或LabVIEW工具包自带的,不需要普通程序员去创建或修改一个Express VI,因此程序员一般也不需要看到它内部的代码。一个Express VI 通常会集成多种功能,因此程序员在使用它时,需要方便的打开Express VI 的配置对话框,根据自己的需要,选则适合的配置参数。

普通的子VI的程序框图等被保存在一个.vi文件中,而你是看不到程序中使用到的某个Express VI的.vi文件的。对于普通子VI来说,不论在应用程序的哪个地方调用它,或是哪个应用程序来调用它,所执行的代码都是相同的,就是保存在.vi文件中的程序框图。对于Express VI来说,却不是这样。程序员可以修改Express VI配置对话框中的内容,配置一旦被改变,Express VI的执行代码也会发生变化。因此,在不同的地方调用同一个Express VI运行的代码却可能是不同的。这也就决定了Express VI的程序框不不能被保存在单一的一个.vi文件中。实际上,Express VI的程序框图是被保存在调用它的VI的.vi文件中的。比如说某个VI名为A,它被保存在A.vi中。A调用了一个Express VI,B。则B的程序框图也被保存在A.vi中。只不过咱们没办法直接看到B的程序框图。

有些Express VI是允许用户查看其程序框图的(有些不提供这一功能)。在一个 Express VI 的右键菜单中选择“打开前面板”,LabVIEW会把Express VI转换成不可配置的普通子VI,这样它就有了可以打开的前面板和程序框图。

以“从动态数据转换”Express VI 为例(函数选板“Express –> 信号操作 –> 从动态数据转换”)。在某一VI的程序框图上放置两个“从动态数据转换”Express VI,分别命名为“数据转换1”和“数据转换2” 。对“数据转换1”Express VI的配置是“结果数据类型”为“一维波形数组”,如图1所示。

图1:“数据转换1”Express VI 的配置对话框

把Express VI 转换为普通VI并常看其程序框图,如图2所示。


图2:打开Express VI的前面板,然后打开程序款图

这个Express VI 的程序框图由一个简单的子VI构成,如图3所示


图3:“数据转换1”的程序框图

对“数据转换2”Express VI的配置是“结果数据类型”为“二维标量数据”;标量数据类型为“布尔”,如图4所示。


图4:“数据转换2” Express VI 的配置对话框

使用同样方法打开“数据转换2” Express VI 的程序框图,可以看到,它与“数据转换1” 的程序框图完全不同,因为它们实际上需要完成不同的功能。


图5:“数据转换2”的程序框图

返回《我和LabVIEW》的补充内容

Express VI 1 – 什么是 Express VI

LabVIEW自带的子VI中有一些VI的图标看起来与普通子VI的不太一样,这就是Express VI。大部分Express VI可以在函数选板“Express”中找到。

从函数选板上直接就可以看出哪些VI是Express VI,它们的共同特点是图标周围有一圈浅蓝色的边框。如图1中的“时间延迟”和“已用时间”VI。

 
图1:函数选板上的Express VI

Express VI在使用时,也与普通VI有些不同。Express VI通常都配有一个配置对话框(图 2),用于设定Express VI运行时用到的一些数据,因而不必再在程序框图上输入数据。这就大大简化了程序框图。Express VI的功能通常都比一般的VI强大,某些常见的简单程序,譬如基本的数据采集显示程序,仅需使用几个Express VI就可以实现。加之使用它编程也比较简单,所以得名“Express VI(中文直译快捷VI)”。

 
图2:“时间延迟”Express VI和它的对话框

Express VI的功能强大、使用便捷,但付出的代价是效率较低。应用程序的功能可能比较简单,但是它所调用的Express VI中却包含了大量应用程序根本用不到的功能。这部分功能既占用内存空间,又会影响程序的运行速度。所以,对于效率要求较高的程序,不适合使用Express VI。

返回《我和LabVIEW》补充与注释