首页 百科知识 标准状态机模式

标准状态机模式

时间:2022-10-08 百科知识 版权反馈
【摘要】:之所以在LabVIEW编程中经常强调状态机,是因为LabVIEW特有的图形编程方式,特别适于采用状态机模式编程。例如,在PLC中流程图的编程方式,就是一种特殊的状态机。状态机包括状态、事件和动作3个基本要件。状态机的概念非常简单,但是越简单的东西越不容易处理,因为简单则代表着限制少,也就更灵活。一个状态机设计的好坏,关键是看如何定义状态。状态少,则意味着每一个状态中要处理的事物多;而状态多,则整个状态机就变得复杂了。

状态机(statemachine)不是LabVIEW特有的概念。早在LabVIEW诞生之前就有了。之所以在LabVIEW编程中经常强调状态机,是因为LabVIEW特有的图形编程方式,特别适于采用状态机模式编程。例如,在PLC中流程图的编程方式,就是一种特殊的状态机。

状态机包括状态(state)、事件(event)和动作(action)3个基本要件。它们的作用介绍如下。

(1)状态是一个抽象的概念,状态在一定条件下或者一定时间内保持不变,等待一个或几个事件的发生。以交通信号灯为例,红、绿、黄灯都有亮和灭两种状态。命名状态时,往往可以用“等待×××”来定义。

(2)事件是一个瞬时的概念,表示某件事情发生了。一旦有关的事件发生了,就要采取某种动作。在信号灯自动控制状态下,红灯亮的时间是由定时器控制的,一旦“定时时间到”事件发生,就需要采取动作改变信号灯的状态,时间在有些软件中也称为转换条件,“定时时间到”就是转移条件。

(3)动作表示一旦事件发生,应该采取何种处理方式。处理的结果通常是转入另一个稳定的状态。例如,红灯“定时时间到”事件发生后,转换条件具备,采取的动作是熄灭红灯的同时转入到黄灯亮的状态。

状态机的概念非常简单,但是越简单的东西越不容易处理,因为简单则代表着限制少,也就更灵活。状态及设计的好坏完全取决于编程者,不仅仅取决于他编程的水平,更依赖于他的逻辑思维方式。一个状态机设计的好坏,关键是看如何定义状态。状态少,则意味着每一个状态中要处理的事物多;而状态多,则整个状态机就变得复杂了。

图8-7所示,LabVIEW模板提供的标准状态机属于有限状态机。它通过自定义枚举方式定义所有的状态。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈