文章目录
- 简单状态机
- 状态机的创建和了解
简单状态机
一个优秀的应用程序离不开好的程序框架,不仅要很好满足用户的功能需求,还要考虑到系统的稳定性、实时性、可扩展性、可维护性,执行效率等方面。借用一些成熟的设计框架,可以帮助开发人员很容易地完成一些复杂系统的设计和开发,并且在满足需求的同时还保证程序的性能。
有限状态机(FSM-Finite State Machine),即用有限确定数量的状态来描述一个系统的运行,统称称此为状态机。状态机的概念很早就有了,它不是LabVIEW特有的概念,而是LabVIEW比较适合设计框架之一。
状态机包括三个基本要件:状态、事件(转换条件)、动作。
状态机简单灵活,状态机设计的好坏取决于设计者的编程水平和逻辑思维。太少,会使得每个状态中要处理的任务太多;太多,又会使得状态机太复杂,不便于维护。
状态机的创建和了解
- 创建项目-简单状态机,
Main.vi
中就是简单状态机的模板。
- 简单状态机。
- 状态机的执行过程:
程序框图中最外层是一个while循环,内层是一个条件结构。条件结构主要根据移位寄存器也就是状态寄存器,用来保存当前系统的一个状态,从而在下次循环的时候将系统跳转到对应的状态去执行。
Step1:首先,系统最初始的状态就是Initialize
,进入循环后其状态存入移位寄存器中,然后进入条件分支结构,执行对应的操作,操作执行完之后就会跳转到下一个状态Wait for Event
,Wait for Event
就会赋值给移位寄存器。
Step2:当进入下一次循环,就会从移位寄存器中拿到Wait for Event
的状态,Wait for Event
中有一个事件结构,分别有三个事件分支,其中有两个事件分支有按钮,按下对应的按钮可触发该事件。
Step3:当在Wait for Event
分支中触发事件,将User State 1
存入移位寄存器中,在下一次循环时切换到移位寄存器中,将字符串以对话框的形式显示,然后又切换到Wait for Event
分支中。同理,其余的状态切换也相同。
- 运行结果: