检查 Stateflow 图中状态和过渡线是否存在禁止的重叠
检查 ID:mathworks.jmaab_v6.jc_0904
规范:jc_0904:禁止状态和转移线的重叠/交叉
MAB v6.0
描述
检查 Stateflow® 图中的状态、过渡线或其他图形元素是否重叠或相交。
此检查适用于 Stateflow 图中的以下目标组件。
状态、状态名称、状态标签。
连接点、过渡标签、过渡线。
真值表、方框、注释、子图、原子子图。
图形函数、Simulink® 函数、MATLAB® 函数、Simulink 函数基于状态。
异常 1:Stateflow 对象具有父子关系。例如,该检查并不禁止子状态与包含它们的状态重叠。
例外情况 2:图形函数中构成建模逻辑的连接节点和过渡。
例外情况 3:状态名称或状态标签,位于其所在状态的边界内。
例外情况 4:从子对象跨越其父对象的边界到达另一个 Stateflow 对象的过渡线。例如,当子状态的转换线连接到新状态时,该检查不会禁止子状态的转换线与其父状态的边界相交。
例外情况 5:过渡线与其自身的过渡标签相交。
此检查需要 Simulink Check™ 和 Stateflow 许可证。
检查参数化
此检查包含与 JMAAB 建模规范中指定的子 ID 对应的子检查。您可以使用模型顾问配置编辑器来指定要执行的子 ID(一个或多个)。
作为参考,NA-MAAB 和 JMAAB 建模标准组织建议使用的 MAB 规范子 ID 为:
NA-MAAB - a、b
JMAAB - a、b
结果和建议的操作
| 规范子 ID | 条件 | 建议的操作 |
|---|---|---|
| jc_0904_a:检查 Stateflow 图中是否存在重叠的对象。 | 状态、图形函数、Simulink 函数、MATLAB 函数、真值表、方框、连接点、注释、状态名称、状态标签或转换标签重叠。 | 修改模型,使状态、图形函数、Simulink 函数、MATLAB 函数、真值表、框、连接点、注释、状态名称、状态标签和转换标签不重叠。 |
| jc_0904_b:检查 Stateflow 图中是否存在与对象重叠的过渡线。 | 转换线与其他转换线、状态、图形函数、Simulink 函数、MATLAB 函数、真值表、方框、连接点、注释、状态名称、状态标签或转换标签重叠或相交。 | 修改模型,使转换线不与其他转换线、状态、图形函数、Simulink 函数、MATLAB 函数、真值表、框、连接点、注释、状态名称、状态标签或转换标签重叠或相交。 |
功能和限制
不检查连接点是否与其他 Stateflow 对象相交或重叠。
不会报告与 Stateflow 对象重叠的注解的违规行为。在这种情况下,检查仅报告 Stateflow 对象存在违规行为。
无法检测 Stateflow 图中的重叠注释。
不会报告状态名称或状态标签与单独的 Stateflow 对象重叠的违规行为。在这种情况下,检查仅报告状态名称或名称标签在与其他 Stateflow 对象重叠之前跨越其自身名称边界的违规行为。
可以分析库链接模块的内容。默认情况下,输入参数 Follow links 设置为 on。
可以分析封装子系统中的内容。默认情况下,输入参数 Look under masks 设置为 graphical。
对库模型运行。
允许排除模块和图。
注意
此检查继承并扩展了 mathworks.jmaab.jc_0739 检查的规则。因此,MAB v5.0 中的检查 mathworks.jmaab.jc_0739 从 MAB v6.0 中移除。 (自 R2024b 起)