为什么不应该将LabVIEW的代码模块VI复制到Teststand的部署系统中?



主要软件:
主要软件版本: 4.2
主要软件修正版本: N/A
次要软件: LabVIEW Run-Time Engine, LabVIEW Development Systems>>LabVIEW Professional Development System

问题: 在创建并部署了一个包含了调用LabVIEW代码模块VI的Teststand应用之后,开发环境计算机上的其中一个VI进行了改动, 欲将该更新同步至运行部署项目的计算机中。为什么不应该简单地将该VI从开发环境计算机中拷到部署计算机中并覆盖掉旧的VI程序?

部署LabVIEW的代码模块时的具体过程是怎样的?

解答: 创建一个调用了LabVIEW代码模块的Teststand部署项目不仅仅是将所有相关的文件都打包到一个安装文件或是镜像文件这么简单。

在创建一个包含LabVIEW的VI的Teststand部署项目时,TestStand Deployment Utility实际上使用了 LabVIEW Application Builder API来生成LabVIEW的源代码发布

首先,TestStand Deployment Utility会遍历工作空间中的每一个序列文件(以及序列文件中的每一个序列)以定位作为代码模块被进行调用的VI文件。这些VI将会自动地被添加到部署的源文件中。(在Deployment Utility的分布文件这个选项卡中可以看到各序列调用的代码模块 )

在实际创建部署的时候,TestStand Deployment Utility利用 LabVIEW应用程序生成器的API来生成这些VI的源代码发布。这意味着Deployment Utility会遍历所有的LabVIEW代码模块并搜寻其能够发现的一切依赖关系,如创建的子VI或是通过调用库函数调用的DLL文件。部署的项目中会包含这些依赖关系,所有的子VI将被默认地放入一个命名为SupportVIs的文件夹中。
 
更重要地是,这个过程将会将代码模块的被调用对象指向放在SupportVIs文件夹中的文件。这是十分关键的,因为部署的系统环境中一般是不包含LabVIEW的开发系统的,因此无法手动地在部署系统中进行这些调用的重连接。

欲了解更多的详细信息,可参考NI TestStand Reference ManualDeploying TestStand Systems章节的Processing VIs这一部分。

注意: TestStand Deployment Utility和LabVIEW Application Builder是无法找到诸如动态调用VI,动态调用DLL文件以及LabVIEW共享变量这样的依赖关系的。对于上述调用的文件,需要手动将其添加到

相关链接: NI TestStand Reference Manual
KnowledgeBase 4GPCI4T3: TestStand Deployment Fails when Deploying Dynamic Dispatch VI
KnowledgeBase 3QOCE1YV: Deploying TestStand Systems
KnowledgeBase 3EO1P423: Missing Sub-VIs when Deploying TestStand System
KnowledgeBase 6H1D30CN: Why Do I Receive Error -18002 When Running a Dynamically Deployed VI in TestStand?

附件:





报告日期: 06/19/2009
最近更新: 05/02/2017
文档编号: 4YIJ4CPE