状态图
状态图是一种图形形式,您可以使用它对有限状态机进行图形化编程。状态机是在运行时连续处于有限数量状态之一的系统。可以在每个状态下执行操作。当一个事件发生时,就会发生到下一个状态的转换。也可以在过渡期间执行操作。
在 CODESYS,状态图是在 状态图 实现语言。这种类型的 POU 由 中的符号 POU 查看或 设备 看法。您可以将程序、功能块、函数、方法、动作或属性创建为状态图。编辑器提供状态、伪状态和转换的元素。
状态和转换都可以调用方法或动作。伪状态是用于控制过程的控制元素,但它们不调用任何动作或方法。
: 状态
: 快速状态
: 复合状态
: 开始状态
: 结束状态
: 分叉/加入
: 选择
: 过渡
:完成过渡
: 异常过渡
一个状态图至少有两个状态和两个转换到另一个状态的转换。
响应事件的转换的保护条件是布尔表达式或布尔变量。它以常规字体和过渡线旁边的方括号显示。下面的例子: [bPowerOn]
, [bPowerOff]
, [bDoIt]
, [bReady]
.
事务动作是在转移的保护条件成立时立即执行的动作 TRUE
.动作名称以粗体显示 //
在过渡线之前。
下面的例子: //PowerUp //PowerDown TODO
当活动状态的多个传出转换的保护条件同时应用时,转换具有适用的优先级。在这种情况下,优先级在图表中由过渡线开头的数字符号表示。请参阅下面的示例 Idle
:(1)和(2)。
状态总共可以有三种类型的动作: ENTRY
, DO
, 和 EXIT
.有关这些操作的详细信息,请参阅帮助页面 状态 元素。
该示例显示了具有通常三种状态的简单机器的状态图: PowerOff
, Idle
, 和 DoIt
.当一个事件发生时,这意味着创建的保护条件得到满足,系统切换到下一个状态。例如机器切换到工作状态 DoIt
只要守卫条件 bDoIt
获取值 TRUE
.
当所有动作结束时,机器切换回状态 Idle
等待下一个事件。机器也可以关闭(//PowerDown
行动),然后在 PowerOff
状态。
