# 状态机错误检查
用于在设计和模拟过程中自动检测和报告状态机模型中的潜在错误或不一致性。
在状态机建模过程中,Sysblock 建模环境会对用户操作和基础语法进行检查,并通过界面提示用户,存在以下场景说明:
# 状态文本语法错误
如上图所示,左侧的S1状态文本的if语句缺少end if,造成语法错误,右侧的S2为修正后状态。
# 转移文本语法错误
如上图所示,转移动作 ① 中缺少{},造成语法错误,转移动作 ② 为修正后状态。
# 转移缺少目标状态
如上图所示,转移线缺少目标状态,或同时缺少源状态和目标状态,不符合转移状态的要求。
# 图形元素边框重叠
状态、节点、历史节点的边框不能重叠,边框重叠通常会引发一系列问题,导致模型不清晰,难以理解,设置影响系统的执行。
# 历史节点异常使用
# 顶层状态中使用
在顶层状态中使用历史节点是没有实际意义的,因为顶层状态没有子状态或历史上下文来恢复。保持状态机的层次结构清晰,历史节点应只在有子状态的嵌套状态中使用。
# 同一状态中多次使用
在同一状态中使用多个历史节点会导致状态恢复逻辑冲突、状态不一致、不可预测的行为和设计复杂性增加。
# 并行状态内使用
由于并行状态的每个子状态独立运行,历史节点的设计初衷无法满足同时恢复多个子状态的需求。因此,并行状态内不应使用历史节点,应使用其他方法来处理状态之间的切换和恢复逻辑。