1、首先,新建一个工程,并且在工程中建立“控件”和“子VI”两个虚拟文件夹来放置自定义控件和子VI。在“控件”文件夹中新建一个控件。
2、在控件的编辑面板上放置一个枚举类型的控件,并且编辑枚举类型控件,输入所有状态装换图中的状态的名称,如下图所示。图中的控件比状态转换图中多了一个“空白”状态。这只是为了修改程序方便才添加的。粕盘镱嘧编辑完成之后,将控件的类型更改为严格自定义类型(Strict Type Define),然后保存。建立这样一个严格自定义类型控件用来控制状态的转换有很大的好处,就是在我们万一要添加新的状态或者要删除一些无用的状态时,只要修改我们建立的控件就可以了,不用在程序中一处一处的寻找、修改,可以节省很多时间,且不易出错。
3、设计完成枚举自定义控件后,接下来需要在工程中新建一个状态机VI。我们可以先新建一个空白VI,然后在里面添加状态机所需要的While循环、条件结构和移位寄存器。而更简单的方法是,点击“文件-->新建(N)”,然后在弹出的“新建”对话框中选择“标准状态机”(Standard State Machine),来建立一个状态机VI,如下图所示(部分LabVIEW版本不提供)。
4、把我们事先建立好的严格自定义类型的枚举控件拖入程序框图中,来获得它所对应的常量,用来替换原模版中的枚举类型常量。然后,在条件结构中加入足够的分支来放置不同状态下的代码;添加足够的移位寄存器来在各个状态之间传递参数;在各个状态(分支)下添加代码,包括实现状态功能的功能代码以及确定下一个状态的流程代码。各个状态程序如下图所示。
5、可以看到,程序在执行时是不会进入最后一个“空白”状态的,添加这个状态的目的就是为了在添加新的状态时,可以通过复制空白状态来得到,可以大大提高编程效率。 以上所说的状态机叫做标准状态机,是最常用也是最基本的状态机,其实状态机还有一些变种的形式。