从子VI更新LabVIEW GUI

use*_*748 5 labview

我正在编写一个程序来控制Labview中的两个类似设备.为了避免复制代码,我使用了子VI.但我有一段代码,我在一个while循环中更新GUI上的一些值.我想知道是否有可能以某种方式在我的子VI中有这个循环并让子VI在每次迭代后发送一个输出参数.

nek*_*tic 7

要从子VI中更新GUI,您可以执行以下操作之一:

  • 在顶级VI中创建队列通知程序,并将引用传递给子VI.在子VI中,将数据发送到队列或通知程序.在顶级VI中,有一个等待队列或通知程序上的数据的循环,并将其写入前面板指示器.
  • 在顶层VI中创建前面板指示器的控件参考,并将参考传递给子VI.在子VI中,使用属性节点写入Value指示符的属性.

如果您查看LabVIEW帮助中的粗体术语,您将找到有关如何使用它们的文档和示例.

在这些选项中,我会使用队列来获取任何数据,其中顶级VI接收每个数据点是重要的(例如,如果数据是在图表上绘制或记录到文件中),还是通知者,其中只需要用户看到最新的价值.为此目的使用控件引用有点"快速和肮脏",可能会导致性能问题.

如果您需要更新多个这样的指标,您可能希望构建一个包含您发送到队列/通知程序或包含控件引用的数据的集群.将您的群集另存为typedef,以便您可以在不破坏代码的情况下修改其内容.