状态机主要由3部分组成,包括一个while循环,一个条件结构,以及while循环的移位寄存器,其中while循环用于保证程序的持续运行,条件结构用于处理不同状态的执行,移位寄存器用于实现从一个状态跳转到另外一个状态。
此外一个重要的变量构建是:枚举常量表示了两组成对的数据,一组是字符串,一组是数值,两者一一对应,在前面板上,能直观地看到字符串,在程序面板上则简单地表示为数值型数据,整个枚举型数据的值可以是预定义的多个数据中的任何一个值。
考虑到以后对状态机修改及维护的方便, 通常,我们将该枚举常量保存为一个自定义控件,将该自定义控件作为枚举常量引入状态机中,当我们需要对状态变量迚行修改的时候,只需要对这个自定义控件迚行一次修改,更新,就能对该状态机中任何位置的状态变量迚行统一的管理了。
状态机的状态转换:有5种方法
1、默认状态:无论这个状态执行如何,都无条件转入下一个状态
2、选择转换 :利用真假选择函数来实现,在逻辑子VI输出为真时,跳入真分支的状态,迚行State1,为假时,跳入假分支的状态,迚行State2,这个方式在两个可能状态的情况下非常简单和好用,但如果下一个状态的有可能是三个或三个以上的状态呢?
后两种方式就是处理这个情况的
3、条件结构转换 :条件结构的多个分支分别对应了不同的下一状态值,根据逻辑判断子VI输出的结果,跳入不同的分支以选择不同的状态,当子VI输出1是,跳入State1,
4、转换数组转换:条件结构虽然解决了多个状态选择的问题,但从结构上来看不太直观,管理不够方便,我们可以把所有待选择的状态放入数组中,通过逻辑判断子VI输出不同的索引值直接从数组中索引出下一个状态输出到移位寄存器