Stateflow 对象概述
Stateflow® 对象基于包容关系按层次结构排列。也就是说,一个 Stateflow 对象可以包含其他 Stateflow 对象。
Stateflow 层次结构中处于最高层级的对象是 Stateflow 状态机。Stateflow 状态机包含 Simulink® 模型中的所有 Stateflow 图。
Stateflow 图可以包含状态、函数、框、数据、事件、消息、转移、结点、entry 和 exit 端口以及注释。状态、函数和框可以包含其他状态、函数、框、数据、事件、消息、转移、结点、entry 和 exit 端口以及注释。嵌套层次数可以无限多。
图形对象
要管理图形对象,请使用 Stateflow 编辑器。下表列出了每种图形对象类型和用于添加对象的选项板图标。有关详细信息,请参阅Stateflow 编辑器操作。
图形对象的类型 | 选项板图标 | 参考 |
---|---|---|
状态 | | 通过使用状态来表示工作模式 |
转移 | | 工作模式之间的转移 |
连接结点 | | 组合使用转移和结点以创建分支路径 |
框 | | Group Chart Objects by Using Boxes |
基于 Simulink 的状态 | | Create and Edit Simulink Based States |
Simulink 函数 | | 在 Stateflow 图中重用 Simulink 函数 |
图形函数 | | 通过定义图形函数重用逻辑模式 |
MATLAB® 函数 | | 通过定义 MATLAB 函数重用 MATLAB 代码 |
真值表函数 | | 使用真值表对组合逻辑建模 |
历史结点 | | 通过使用历史结点继续先前的子状态活动 |
退出结点 | | Create Entry and Exit Connections Across State Boundaries |
进入结点 | | Create Entry and Exit Connections Across State Boundaries |
注释 | | 在图中添加描述性注释 |
图像 | | 在图中添加描述性注释 |
非图形对象
您可以定义在 Stateflow 编辑器中不以图形方式显示的数据、事件和消息对象。要管理非图形对象,请使用符号窗格或模型资源管理器。有关详细信息,请参阅:
数据对象
Stateflow 图存储并检索用于控制其执行的数据。Stateflow 数据位于它自己的工作区中,但您也可以访问存储在外部、位于嵌入了 Stateflow 状态机的 Simulink 模型或应用程序中的数据。您必须定义在 Stateflow 图中使用的任何内部或外部数据。
事件对象
事件是一种 Stateflow 对象,它可以触发整个 Stateflow 图或图中的单个动作。由于 Stateflow 图通过对事件作出响应来执行,因此您可以在图中指定事件并对事件编程以控制其执行。您可以将事件广播到发送事件的对象的作用域内的每个对象,也可以将事件发送到特定对象。您可以定义直接指定的显式事件,也可以定义在执行某些动作(例如进入状态)时发生的隐式事件。有关详细信息,请参阅通过广播事件同步模型组件。
消息对象
Stateflow 消息对象是可以载送数据的排队对象。您可以从一个 Stateflow 图向另一个图发送消息,以便在各图之间进行通信。您也可以在图中发送局部消息。您可以定义消息数据的类型。您可以在 Sequence Viewer 模块中查看消息的生命线。有关详细信息,请参阅通过发送消息与 Stateflow 图通信。