关于VI Server中的动态调用 - LabVIEW Nugget
 
与网友在QQ中交谈中,他发来下面的图片,希望阐述两种加载子vi的区别。
 
Picture
从VI Server的功能来看,这两种加载子vi的方法大致相同。但是,从数据交换的方式来看确大不相同。
 
现在简单的谈谈它们的不同之处:

1、动态载入的vi的类型不同
第一种方式,动态载入的是严格类型的vi。
第二种方式,动态载入的是通用类型的vi。
关于vi的类型的定义,请参照《LabVIEW学习札记》中的4.2.3  VI的类型 内容。
 
2、与动态载入的vi进行数据交换
第一种方式,可以与动态载入的vi进行数据交换。比如,进行数据分析和计算。
第二种方式,不能与动态载入的vi进行数据交换(可以使用全局变量进行)。

第二种方式,我在《LabVIEW——北方客栈》中的“外行看热闹 内行看门道”中有说明。另外阮奇桢先生的《我和LabVIEW》对这两种方式也说明的很清楚。

下面就重点谈谈第一中方式的实际应用:

比如:我们在测试、分析时时可能需要进行(X^2+Y^2)的计算,该vi被称为:(X^2+Y^2).vi。因为一般情况下不使用这个vi,所以可以采用第一种方式来动态载入,计算完成后,该vi退出。
 
现在利用一个简单的项目来演示。
 
Picture
项目5.4.1.2-1
在这个项目中,有一个top vi.vi为主程序,其中他要使用到(X^2+Y^2).vi,我们假设这个vi很复杂,但不常用。比如:校准时的数据拟合vi等,所以采用动态载入的方式进行使用。这样一般情况下,该vi不导入,使用时再动态导入。

Picture
top vi.vi的前面版
Picture
top vi.vi的程序框图
这样我们通过这样的动态载入的方式,实现了在top vi.vi中也使用(X^2+Y^2)计算。也仅仅在使用时调用,计算完成后(X^2+Y^2).vi退出。
 
Picture
(X^2+Y^2).vi的程序框图



Leave a Reply.