什么是默认转换
默认转换指定当两个或多个相邻的异或状态之间存在歧义时要进入哪个异或状态。默认转换有一个目标,但没有源对象。例如,默认转换指定在没有任何其他信息(如历史连接)的情况下,系统默认进入具有异或(OR)分解的超级状态的哪个子状态。默认转换也可以指定默认情况下应输入连接。
绘制默认转换
单击工具栏中的“Default transition ”按钮,然后单击绘图区域中靠近要作为默认过渡目标的状态或连接的位置。将鼠标拖动到目标对象以附加默认过渡。在某些情况下,标记默认转换非常有用。
一个常见的编程错误是在没有默认转换的情况下创建多个异或状态。在没有默认转换的情况下,没有指示哪个状态在默认情况下变为活动状态。请注意,当您使用启用了“State Inconsistencies ”选项的调试器模拟模型时,会标记此错误。
标记默认转换
在某些情况下,可能需要标记默认转换。可以像标记其他过渡一样标记默认过渡。例如,您可能希望指定一个或另一个状态应根据已发生的事件变为活动状态。在另一种情况下,您可能希望执行特定的操作,这些操作取决于转换的目的地。
提示:标记默认转换时,请确保至少有一个有效的默认转换。否则,图表可能会转换为不一致的状态。
默认转换示例
以下示例显示了Stateflow®图表中默认转换的使用:
默认状态转换示例
默认转换为连接示例
带有标签示例的默认转换
默认状态转换示例
如果没有默认的PowerOff状态转换,当Stateflow图表唤醒时,所有状态都不会变为激活状态。您可以在运行时通过检查状态不一致来检测这种情况。
默认转换为连接示例
进入图表后,目的地取决于每个过渡段的条件。
带有标签示例的默认转换
当图表唤醒时,数据p和v分别初始化为10和15。