stateflow 图的执行 -凯发官方首页

main content

stateflow 图的执行

当 stateflow® 图唤醒时,图将按照一个工作流来执行动作。在下列情况下,stateflow 图会唤醒:

  • 在每个时间步

  • 当 stateflow 图收到事件时

当图第一次唤醒时,图将初始化并变为激活状态,如中所述。当不再执行任何动作时,图将进入休眠状态,直到有新的时间步或事件将图唤醒。

stateflow 图执行的工作流

此流程图显示 stateflow 在执行图或状态时相应的事件进程。在该流程图中,当前状态是指其中有决策正在进行或有进程正在发生的状态。

flow chart that shows the steps for executing a chart or state.

默认转移

默认转移是一种没有源的转移。在不包含任何状态的 stateflow 图中,默认转移标记流程图的开始。有关详细信息,请参阅在 stateflow 中创建流程图。

如果 stateflow 图不包含任何状态,则图会在每次唤醒时计算默认转移路径。在标记待计算的默认转移后,图将按照 中所示的步骤操作。

注意

图仅在进入状态时计算状态内的默认转移路径,而不是在图每次唤醒时计算。

外部转移

外部转移是一种退出源状态的转移。stateflow 图将标记待计算的外部转移作为执行状态的第一步。在标记待计算的外部转移后,图按照 中所示的步骤操作。

during 动作

during 动作是使用前缀 during 或 du 在状态标签动作中定义的动作。有关详细信息,请参阅定义状态中的动作。

当图被唤醒,状态为激活状态时,如果没有有效的外部转移,则状态会执行 during 动作。

内部转移

内部转移是一种不退出源状态的转移。有关详细信息,请参阅。

stateflow 图在状态执行 during 动作后,会标记待计算的内部转移。在标记待计算的内部转移后,图按照 中所示的步骤操作。

具有有效转移的图执行

在此示例中,stateflow 图已经过初始化并执行了 statea 和 statea1 的 entry 动作。在一个新时间步,图被唤醒。

在此时间步,x = 5、y = 2 且 z = 0。

stateflow chart with top-level states called statea and stateb. statea has substates statea1 and statea2. stateb has substates stateb1 and stateb2.

图执行以下步骤:

  1. 图有一个激活子状态 statea。

  2. statea 有一个指向 stateb 的外部转移。图确定转移有效。

  3. 图将 stateb 标记为待进入,将 statea 标记为待退出。

  4. 要退出 statea,图按照 中所示的步骤操作。

  5. 要进入 stateb,图按照 中所示的步骤操作。

没有有效转移的图执行

在此示例中,stateflow 图已经过初始化并执行了 statea 和 statea1 的 entry 动作。在一个新时间步,图被唤醒。

在此时间步,x = 3、y = 0 且 z = 0。

stateflow chart with top-level states called statea and stateb. statea has substates statea1 and statea2. stateb has substates stateb1 and stateb2.

图执行以下步骤:

  1. 图有一个激活子状态 statea。

  2. statea 有一个指向 stateb 的外部转移。图确定转移无效。

  3. 图为 statea 执行 during 动作。现在 y = 1。

  4. statea 没有任何内部转移。

  5. statea 的激活子状态是 statea1。

  6. statea1 有一个指向 statea2 的外部转移。图确定转移无效。

  7. 图为 statea1 执行 during 动作。现在 x = 4。

  8. statea1 没有任何激活子状态。

  9. 图进入休眠状态。

相关主题

    网站地图