在LabVIEW高级编程技巧中,基于状态机的架构是一种常用的程序框架结构之一,也是一种通用的设计模式。
在状态机程序架构中包含了有限个运行状态,这些运行状态可通过一定的条件进行组合反复执行,或者在状态之间进行任意切换执行。
下面通过一个例子,基于while循环、条件结构、事件结构及移位寄存器等基本编程知识点,演示在LabVIEW中如何实现状态机的程序框架架构。
实例说明
为演示状态机的编程实现,这儿模拟了某个工作场景,在这个场景中需要执行2个任务,这2个任务可由5个子任务(分别为子任务1、子任务2、子任务3、子任务4、子任务5)完成,在状态机结构中可将这5个子任务理解为5个不同的状态。其中,执行任务1时需要依次执行子任务1、子任务2、子任务4完成,执行任务2时需要依次执行子任务2、子任务3、子任务5完成,其前面板运行界面如下图所示:
在上图中,点击按钮“执行任务1”或“执行任务2”时可执行对应的任务,同时在右侧“系统运行记录”控件中显示了当前任务执行中的各个状态情况。此外,点击“清空记录”按钮可清空右侧“系统运行记录”控件的内容。
编程思路
程序主框架使用while循环、条件结构、事件结构及移位寄存器的的组合方式。
While循环维持状态机的运行,同时,配合使用移位寄存器实现一个或多个状