使用 LabVIEW 运行时引擎加载编译代码时出现 TestStand 错误

更新 Nov 19, 2023

适用于

软件

  • TestStand
  • LabVIEW Runtime

问题详述

  • 我在 TestStand 中调用一个 VI,每次我将适配器切换到 LabVIEW Run-Time Engine 时,我都会收到一个错误,表明该 VI 是一个源代码 - 只有组件,并且在编译对象缓存中找不到其编译代码。
  • 使用包含的 LabVIEW 代码模块运行 TestStand 部署时,我看到错误 -17600

解决方案

出现这种行为是因为 LabVIEW VI 的组成方式。
默认情况下,一个 VI 包含两种代码:
  1. 您编辑的图形源代码
  2. LabVIEW 用于运行 VI 的此代码的编译版本。

不要将已编译代码与您打算使用 LabVIEW 运行时引擎加载或运行的 VI 分开。运行时引擎无法运行纯源代码 VI,因为它无法访问存储单独编译代码的编译对象缓存。

要克服这个问题:
  1. 打开VI。
  2. 在常规窗口 ( ctrl+I ) 中导航至VI 属性
  3. 禁用从源代码文件中分离已编译代码选项。
  4. 对主 VI 中使用的每个子 VI 重复此步骤,然后执行批量编译
或者,您可以使用TestStand Deployment Utility创建序列文件的映像部署。该工具执行 LabVIEW 源代码分发并从调用的 VI 中删除分离选项。

相关信息

  • 如果您希望源代码控制的 VI 层次结构可以在运行引擎上运行,请使用 VI 构建源代码发布或使用 TestStand Deployment Utility。
  • 如果使用vi.lib中的 VI 文件,请创建代码模块的打包库 (PPL) 以携带已编译的vi.lib代码。否则,配置一个源代码发布,配置该发布携带编译后的源代码。这就是正确配置后 TestStand Deployment Utility所做的事。