使用Labview的状态机

时间:2012-02-24 19:48:52

标签: sequence labview

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

有一种简单的方法吗?谢谢你的帮助!

1 个答案:

答案 0 :(得分:4)

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

如果要首先运行Test1(或首先运行Test2,则2),Case结构的输入应为1。在运行Test1之后,它会通过在while循环中使用移位寄存器将此值反馈回其输入来输出2(显示为here)。类似地,Test2案例在完成后输出1并通过移位寄存器将其反馈。


Per Yair的评论,我的建议是一个常见的设计模式,称为State Machine,在绘制出来时,它看起来就像是程序的流程图。 NI的教程是here编写的,实际上涉及嵌套在while循环中的案例结构。希望它有所帮助!