主要内容

通过使用内部转换控制图表执行

一个内心的转变是不退出源状态的转换。当定义为具有排他(OR)分解的超状态时,内部转换功能非常强大。使用内部转换可以极大地简化状态流®图表,如下例所示:

在使用内部转换之前

这个图表展示了如何使用内部转换简化逻辑。

在三个基态之间有复杂转换的图表。

发生任何事件并唤醒状态流图。到连接连接的默认转换是有效的。转换的目的地由[c1 > 0]而且[c2 > 0].如果[c1 > 0]是真的,过渡到A1是真的。如果[c2 > 0]是真的,过渡到A2是有效的。如果既不[c1 > 0]也不[c2 > 0]是真的,过渡到A3是有效的。之间的转换A1A2,A3是由E[c1 > 0],[c2 > 0]

在使用内部转换到连接连接后

此示例使用到连接结的内部转换简化了前面的示例。

图表与内部过渡路径到三个基态。

一个事件发生并唤醒图表。到连接连接的默认转换是有效的。转换的目的地由[c1 > 0]而且[c2 > 0]

您可以通过使用内部转换来代替原始示例中所有状态之间的转换来简化图表。如果状态一个已经是主动的,内部过渡是用来重新评估哪个状态的次状态一个就是要积极主动。当事件E发生时,内部转换可能有效。如果[c1 > 0]是真的,过渡到A1是有效的。如果[c2 > 0]是真的,过渡到A2是有效的。如果既不[c1 > 0]也不[c2 > 0]是真的,过渡到A3是有效的。这个图表的设计比之前的简单。

请注意

当您使用到连接结的内部转换时,活动子状态可以退出并在该子状态的转换条件有效时重新进入。例如,if substateA1是活动的,并且[c1 > 0]是真的,过渡到A1是有效的。在这种情况下:

  1. 退出操作A1执行并完成。

  2. A1变得不活跃。

  3. A1变得活跃。

  4. 输入操作A1执行并完成。

看到处理具有到连接连接的内部转换的第一个事件有关此符号语义的更多信息。

使用内部过渡到历史节点

这个例子显示了一个到历史节点的内部转换。

包含到历史节点的内部过渡的图表。

状态Power_on。高最初是活动的。当事件重置发生时,向历史节点的内部转换是有效的。因为内部转换是有效的,当前的活动状态,Power_on。高,退出。当内部过渡到历史节点时,最后一个活动状态,Power_on。高,变为活动(重新进入)。如果Power_on。低在同样的情况下也很活跃Power_on。低会退出,然后再进入。本例中的内部转换相当于在两者上绘制外部自循环转换Power_on。低而且Power_on。高

看到向历史交汇点的内部过渡有关此符号语义的更多信息。