2012-02-24 73 views
1

我有一个连续运行2个不同测试的堆栈序列。让我们称他们为test1和test2。所以它是一个while循环中的2阶段堆栈序列。我有一个按钮“Start Test1”,它跳转到while循环并执行test1,test2,test1,test2等。 我想添加另一个按钮,指出“Start Test2”,它将首先启动test2,然后再启动test1 。所以它基本上会改变我的堆栈序列的顺序来开始执行test2代码而不是test1代码(test2,test1,test2,test1等)。使用Labview的状态机

有没有简单的方法来做到这一点?谢谢你的帮助!

回答

4

自从我使用LabVIEW以来,我已经有一段时间了,但是这里呢......我会尝试用一个案例结构来替换堆叠序列。案例结构应该有一个Test1案例和一个Test2案例;它仍然会放在你的while循环中。

当您想先运行Test1(或者先运行Test2)时,Case Structure的输入应该是1。 Test1运行后,它会通过在while循环中使用移位寄存器将该值反馈给其输入,从而输出2(示为here)。同样,Test2的情况下,它会输出一个1,并通过移位寄存器反馈回来。


每亚伊尔的评论,在这里我的建议是被称为State Machine,当被拉出,看起来像你的程序的流程图一个常用的设计模式。 NI的教程写成here,实际上它涉及一个嵌套在while循环中的case结构。希望能帮助到你!

+5

这个答案描述的相关术语是“状态机”。在LabVIEW本身和在线中都有很多这样的例子,我建议你看看一些例子来感受它。 – Yair 2012-02-26 09:01:47

+0

谢谢@Yair!你促使我编辑和改进我的答案。 (通常我会说“*你可以通过使用Y和Z *来解决X”,但不会认为我提供的是一种常见模式,应该参考它。) – gary 2012-02-26 15:02:42

+0

对于迟到回复感到抱歉。但是我已经完成了它的工作,它工作得很好。就像你们说的那样,这是一个简单的2态状态机。谢谢:) – serge2487 2012-03-01 16:52:28