在 TestStand 中异步运行 VI

更新 Oct 18, 2022

环境

软件

  • TestStand
  • LabVIEW

在开发应用程序时异步运行部分代码是一种常见需求。在本文中,我们将分享如何在您的 TestStand 序列文件中异步运行 LabVIEW VI。异步 LabVIEW VI 的执行也将被可视化以用于监控以及提高您对该主题的理解。

以下步骤包括从头开始在 LabVIEW 和 TestStand 上完成的准备工作。

LabVIEW
  1. 创建一个空的LabVIEW VI。
  2. 在前面板中,从Controls Palette»Refnum 放置一个Automation Refnum控件。
    自动化引用句柄
  3. 右键单击Automation Refnum并选择Select ActiveX Class»Browse。将出现从类型库中选择对象对话框。
    选择
  4. Select Object From Type Library对话框中,选择NI TestStand <Year> API Version x.0作为Type Library下拉列表的值。
    测试台 API
  5. Objects列表框中选择SequenceContext并单击OK
    对象列表框
  6. 可以观察到,Automation Refnum 的名称现在是 TS.SequenceContext。
  7. 单击连线板左上角的方框然后单击TS.SequenceContext 。连线板左上角的方框现在应该是绿色的。
    连线板
  8. TestStand - Initialize Termination Monitor.vi、TestStand - Get Termination Monitor Status.viTestStand - Close Termination Monitor.viFunctions Palette»TestStand 放入框图中
    测试台
  9. 互连TestStand - 初始化 Termination Monitor.vi、TestStand - 获取 Termination Monitor Status.viTestStand - 关闭 Termination Monitor.vi。
  10. TS.SequenceContext连接到TestStand - Initialize Termination Monitor.viSequence Context In 输入
  11. 使用 while 循环包围 TestStand - Termination Monitor Status.vi ,并将其Terminating 和 Aborting 输出连接到 while 循环的终止终端
  12. 在 while 循环中,为迭代终端创建一个指示器,并使用Wait(ms)放置 100 ms 的延迟。
  13. 下图说明了此阶段的框图。
    框图
    注意:此图像是一个 LabVIEW 片段,其中包含您可以在项目中重复使用的 LabVIEW 代码。要使用片段,右键单击图像,将其保存到计算机,然后将文件拖到 LabVIEW 图表上。
  14. 按 <Ctrl-I>,在Category下拉列表中选择Window Appearance并选择Dialog
    vi 属性
  15. 保存 VI。稍后将在 TestStand 中调用它。

测试台
  1. Insertion Palette >> LabVIEW Utility中,将Run VI Asynchronously拖放到您的 Steps 中。
    试验台步骤
  2. Steps 窗格中选择插入的Run VI Asynchronously 。将显示异步运行 VI 的步骤设置窗格。
    强调
  3. 在远程系统中,相应地填写远程系统的VI服务器的主机名和端口号。由于本文使用的是安装在本地计算机上的 LabVIEW,因此主机名和端口均保持默认。
    远程服务器
  4. 为 Context to Pass as ThisContext VI Arguments 选择Use Context of Calling Thread
    这个上下文
  5. 单击L 图标指定调用哪个 VI。
    指定六
  6. Edit LabVIEW VI Call对话框中,单击Browse for VI并选择本文的 LabVIEW 部分中创建的 VI。
    指定 vi
  7. 指定 VI 后,取消选中 TS.SequenceContext 参数的默认框并将设置为ThisContext 。按OK
    价值
通过上述实现,当您运行序列文件时,您现在可以看到 LabVIEW VI 已启动并正在运行,而 TestStand 正在继续下一步,而无需等待 VI 完成执行。