从while循环中更新输出

时间:2013-03-14 11:35:23

标签: labview

我有一个ex1.vi,有2个输入 1).Signal(boolean) 2).Message(String)

有1个输出 Parsed message(String)

现在这个vi有一个while循环,它检测输入的变化,应该给出输出。这个ex1.vi本身位于main.vi中的一个消息循环中,实例化它。此main.vi生成传感器和消息数据并使用Parsed消息。

例如。 main.vi提供Signal = truemessage = "hello" ex1.vi将提供parsed message = "hi"。因为ex1.vi在while循环中我将如何给出输出?如果我更新一个局部变量并将其连接到输出main.vi仍然无法使用,因为ex1.vi尚未完成。如何在不使用全局变量的情况下实现这一目标?

2 个答案:

答案 0 :(得分:1)

使用队列或用户事件在运行的VI之间共享消息。

我很担心你的ex1.vi设置如何。对于每次调用子VI,您只能有一组输入和一个输出 - 您无法监视输入。如果输入数据是通过队列进入的,那么你就在那里。您只需要一个队列来将消息返回给调用VI。

如您所知,VI的输出与返回功能相同,因此您无法返回并继续运行。

答案 1 :(得分:1)

您可以使用功能全局变量,这可能是更快的解决方案。看这里: Functional Global Variables

消息队列也可以很好地工作,我的选择可能是这两个中的一个取决于应用程序。看这里: Queued Message Handler

哪种更好的解决方案真的取决于应用程序,你应该根据大局来权衡利益。