主要内容

评估过渡

Stateflow®使用图表中的转换从一个排他(或)状态移动到另一个排他(或)状态。为入口执行图表执行的工作流,Stateflow评估转换以确定它们是否有效。有效的转换是条件标签为真且路径结束于某个状态的转换。如果转换是有效的,则Stateflow退出源状态并进入目标状态。了解评估在什么时候发生执行入口工作流,看到执行状态溢图表输入图表或状态

用于评估转换的工作流程

过渡评估令

当多个转换来自单个源时,例如状态或连接,Stateflow使用评估顺序来确定何时测试每个转换。根据图表使用的操作语言,可以显式或隐式地创建转换的顺序。无论是显式排序还是隐式排序,转换都显示靠近转换源的一个数字,该数字指定转换顺序。

请注意

使用显式排序以避免在编辑图表时从更改顺序的转换。

明确的要求

打开新的StateFlow图表时,源的所有传出转换都按照您创建的顺序自动编号。订单开始1然后继续给下一个可用的号码。

要更改转换的执行顺序,请右键单击转换,将光标放在上面执行顺序,并选择您希望转换执行的顺序。当您更改转换编号时,Stateflow图表通过保持源的相对顺序自动重新编号其他传出转换。

隐式排序

对于隐式排序模式下的C图表,Stateflow图表根据以下条件评估一组从单个源输出的转换:

  • 等级制度。

    图表以基于每个转换的父级的分层级别的顺序评估一组传出转换。

  • 标签。

    图表在以下优先顺序下,根据标签评估一组具有相等分层优先级的传出转换:

    1. 带有事件和条件的标签

    2. 标签与活动

    3. 标签有条件

    4. 没有标签

    有关使用事件时的图表行为的详细信息,请参阅使用隐式事件控制图行为

  • 过渡源的角度面位置。

    图表评估基于源对象表面上的角度位置的等级和标签优先级的一组传出转换。具有最小时钟位置的过渡具有最高优先级。例如,具有2点钟源位置的转换具有比具有4点钟源位置的过渡更高的优先级。带有12点钟源位置的过渡具有最低优先级。

过渡到父州的内边缘

在父状态的内沿结束的转换是返回默认转换路径的快捷方式,并且在当前时间步期间评估默认路径。在本例中,从状态的转换B立即引导到默认转换到州一个

过渡到内边缘。

如果存在默认转换,则equentflow立即执行这些路径。如果没有,并且没有孩子,那就是时间的结束。在这两种情况下,父父仍保持活动状态,并未执行父级的退出和输入操作。

即将离任的过渡的例子

在这个例子中,初始化Stateflow图表并入口执行的操作是雕象.一个新的时间步长出现,图表被唤醒。按照用于状态溢图执行的工作流程, Stateflow发现多个传出转换从雕象.在这个时间步x = 1y = 1, 和z = 1

评估即将离任的转换

按照用于评估转换的工作流程,评估此图表的转换的步骤均按顺序:

  1. 过渡1雕象为评价打分。

  2. 过渡1雕象有一个条件。

  3. 条件为真。

  4. 转换的目的地雕象不是国家。

  5. 结确实有向外的转变。

  6. 从结处的转变1标记为评估。

  7. 从结处的过渡1具有条件。

  8. 条件为假。

  9. 从连接点开始的过渡2被标记用于评估。

  10. 从结的过渡2没有条件。

  11. 从连接点开始的转换2的目的地是一个状态(陈述).

  12. 陈述标记为入口, 和雕象标记为出口

要完成时间步骤,请按照退出状态流程雕象进入图表或状态的工作流

带有回溯的传出过渡示例

当所有从源传出的转换都无效或没有以终止连接结束,但之前有未计算的转换时,Stateflow返回到之前的状态或连接来计算所有可能的路径。

在这个例子中,初始化Stateflow图表并入口执行的操作是雕象.发生新的时间步骤,并且图表唤醒。按照用于状态溢图执行的工作流程, Stateflow发现多个传出转换从雕象.在这个时间步x = 1y = 1, 和z = 1

使用BackTracking评估外出转换

按照用于评估转换的工作流程,评估此图表的转换的步骤均按顺序:

  1. 过渡1雕象为评价打分。

  2. 过渡1雕象有一个条件。

  3. 条件为真。

  4. 转换的目的地雕象不是国家。

  5. 结确实有向外的转变。

  6. 从结处的转变1标记为评估。

  7. 从结处的过渡1具有条件。

  8. 条件为假。

  9. 从连接点开始的过渡2被标记用于评估。

  10. 过渡2从结有一个条件。

  11. 条件为假。

  12. 转换2来自雕象为评价打分。

  13. 转换2来自雕象没有条件。

  14. 转换2的目的地来自雕象是一个国家().

  15. 标记为入口, 和雕象标记为出口

要完成时间步骤,请按照退出状态流程雕象进入图表或状态的工作流

防止回溯

在该示例中,终端结防止了回溯。初始化Stateflow图表,然后入口执行的操作是雕象.一个新的时间步长出现,图表被唤醒。按照用于状态溢图执行的工作流程, Stateflow发现多个传出转换从雕象.在这个时间步x = 1y = 1, 和z = 1

按照用于评估转换的工作流程,评估此图表的转换的步骤均按顺序:

  1. 过渡1雕象为评价打分。

  2. 过渡1雕象有一个条件。

  3. 条件为真。

  4. 转换的目的地雕象不是国家。

  5. 结确实有向外的转变。

  6. 从结处的转变1标记为评估。

  7. 从结处的过渡1具有条件。

  8. 条件为假。

  9. 从连接点开始的过渡2被标记用于评估。

  10. 过渡2从结有一个条件。

  11. 条件为假。

  12. 从结处的过渡3标记为评估。

  13. 从交界处的过渡3没有条件。

  14. 目的地不是一种状态,并且没有任何传出转换。

  15. 还给用于状态溢图执行的工作流程

要完成时间步骤,请按照用于状态溢图执行的工作流程雕象,从你停下的地方开始。

条件和过渡行动

条件措施

在转换标签语法中,条件动作跟随转换条件,并用花括号括起来({}).当条件被评估为True但在转换路径被确定为有效时,执行条件操作。

过渡行动

在转换标签语法中,转换操作前面有一个正斜杠(/)并封闭在卷曲的括号中({}).转换操作仅在确定转换路径有效之后执行。

在本例中,条件操作和转换操作都存在。初始化Stateflow图表,然后入口执行的操作是雕象.一个新的时间步长出现,图表被唤醒。有多个向外转换雕象.在这个时间步x = 1y = 1, 和z = 1

评估带有条件和转换操作的传出过渡

按照用于评估转换的工作流程,评估此图表的转换的步骤均按顺序:

  1. 过渡1雕象为评价打分。

  2. 过渡1雕象有一个条件((y > = 1)).

  3. 条件为真。

  4. 没有条件操作。

  5. 转换的目的地雕象不是国家。

  6. 结确实有向外的转变。

  7. 从结处的转变1标记为评估。

  8. 从结的过渡1有一个条件((x > 2)).

  9. 条件为假。

  10. 从连接点开始的过渡2被标记用于评估。

  11. 从结的过渡2有一个条件([x> = 1]).

  12. 条件为真。

  13. 有一个条件动作({y = 0;}).现在y = 0

  14. 结确实有向外的转变。

  15. 从连接点开始的转换被标记以进行计算。

  16. 从结的过渡1有一个条件((z > = 5)).

  17. 条件为假。

  18. 转换2来自雕象为评价打分。

  19. 转换2来自雕象没有条件。

  20. 转换2的目的地来自雕象是一个国家(陈述).

  21. 陈述标记为入口, 和雕象标记为出口.执行此有效路径的转换措施(/ {z = 5}).现在z = 5

要完成时间步骤,请按照退出状态流程雕象进入图表或状态的工作流

相关话题