From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.



我应该如何在可执行程序中动态调用VI,而在创建时并不包换此VI?



主要软件:
主要软件版本: 8.6.1
主要软件修正版本: N/A
次要软件: N/A

问题: 我尝试通过VI服务器在可执行程序中动态调用VI,但是我收到Error 1003 或者一些其他错误,因为被调用的VI不能正常运行。如果不添加VI到创建文件中,能否解决该问题?

解答:

方法1:

在LabVIEW中没有什么特殊操作可以避免此问题,它是一个复杂的过程。其复杂性在于当你在LabVIEW开发环境下开发一个VI时,你通常是使用子VI或者内置LabVIEW函数,这些图形化的函数都位于硬盘的不同位置。当你在开发机上运行VI时,LabVIEW自动汇总这些函数到一个环境之中。当你尝试在一个只有运行引擎的机器上在可执行程序中动态调用运行同一个VI时,你必须手动确认每一个依赖关系与在开发机上的位置都相同。即使对一个中等大小的VI来说,都需要花费很大工作量。

如果你提前知道你需要在可执行程序中调用该VI,你就要在开发的时候控制好依赖关系路径。例如,如果你复制使用了的每一个函数和VI,把它们放在特定路径下面,然后在程序框图中从该位置加载VI(通过函数选板上的选择VI)而不是从它们通常位置加载。需要提醒的是,这个函数可能包含一些子VI,它们也必须重新连接到新的位置。

方法 2:

除此之外,LabVIEW Application Builder可用于跟踪这些依赖关系。为此,只需生成一个源代码发布。从如下的项目浏览器中选择生成即可。这将生成一个llb库文件,它包含了原始VI和运行它需要的所有依赖关系。这个.llb文件只需要你额外输入一个的动态调用VI的路径目录(.llb文件名)。



如果你发现这些方法还是比较复杂,直接添加该VI到创建过程中会简化我们的过程,因为依赖关系会被自动添加到创建过程中,动态VI就可以进行调用。为此,请参考下面的指导 KnowledgeBase 268B8SXQ : Error 1003 When Using VI Server in a LabVIEW.


相关链接: KnowledgeBase 268B8SXQ : Error 1003 When Using VI Server in a LabVIEW Application
KnowledgeBase 268B8SXQ : Error 1003 When Using VI Server in a LabVIEW Application
KnowledgeBase 40TAKSQG : Accessing VIs Inside of a LabVIEW Executable or DLL in LabVIEW 8.2 and Later
Developer Zone Tutorial: Calling a VI by Reference- Developer Zone

附件:





报告日期: 08/11/2009
最近更新: 01/26/2010
文档编号: 50A980BQ