前页 | 后页 |
建模
在创建旨在呈现为状态流图的状态机图时,您有多种选择。这些包括可以使用哪些元素和连接器、状态机的放置、可以在模型中定义代码的位置以及可以使用什么格式的代码。
状态机放置
在创建要生成为状态流图的模型时,必须将状态机图放在一个SysML块下,并有一个子状态机元素,在该状态机元素下有一个状态机图。
例如本例中的“控件”有一个子状态机名称为“块”,它有一个子状态机图“ControlStateMachine”:
注记该块必须仅包含状态机图;它不应包含其他图表。
定义代码
在状态机模型中放置脚本有多种选择。这样做的关键考虑因素是:脚本的格式是什么,它可以放在哪里?
代码格式
当您编写任何有效的 SysML 代码时,它将被转换为有效的状态流代码。 SysPhS 规范将 Modelica 数学语言定义为“标准”,这是Enterprise Architect接受的状态机图中的代码片段,并将这些转换为 MATLAB/状态流等效项。有关详细信息,请参阅OMG SysPhS 规范的第 10 节。
代码放置
在状态内部并且符合UML规范,状态流支持三个标准操作:
- 入口
- 出口
- 做
在转换中,使用代码有三个关键选项:
- 转移
守卫条件 - 转移
影响 - 触发器
中定义的条件语句转移
守卫条件:
使用块属性
对于代码,可以在脚本中引用常量、端口等属性块。在端口的情况下,输入到块的详细信息是使用输入端口名称派生的,并且可以将类似的值分配给与输出端口同名的变量。
例如:
注记
这些 SysML状态机特征在状态流中不可用:
- 深历史状态
- 具有要在所有默认条目上使用的传出转换(即初始状态)的历史状态
- 分叉/汇合
- 同步
- 连接点(只有选择-连接点才会被选择)
- 入口/出口点
- 引用其他状态机;状态流可以做子状态机但不能再次引用
- 每个 SysML块只有一个状态机