当启用编辑时检查时,状态流®编辑器在您处理图表时检测潜在的错误和警告。通过在设计过程的早期修复这些问题,您可以避免编译时或运行时的警告和错误。
statflow编辑器用红色(表示错误)或橙色(表示警告)突出显示违反编辑时检查的对象。当您指向突出显示的对象并单击错误或警告标识时,工具提示将显示详细信息和可能的修复。
默认情况下,编辑时检查和语法错误高亮显示是启用的。要禁用编辑时检查,请在调试选项卡上,清晰的诊断>编辑时间错误和警告复选框。
属性上具有关联诊断配置参数的编辑时检查诊断>Stateflow对话框中的。
编辑时间检查问题 | 诊断配置参数 |
---|---|
晃来晃去的过渡 | 遥不可及的执行路径(金宝app模型) |
默认过渡路径不会在一种状态下终止 | 没有无条件的默认转换(金宝app模型) |
在此路径上,转移操作位于条件操作之前 | 在条件动作之前指定的转换动作(金宝app模型) |
自然父对象外的过渡循环 | 亲本外过渡(金宝app模型) |
过渡阴影 | 遥不可及的执行路径(金宝app模型) |
在操作或子状态期间具有的无条件路径状态外 | 亲本外过渡(金宝app模型) |
意外回溯 | 意想不到的回溯(金宝app模型) |
遥不可及的结 | 遥不可及的执行路径(金宝app模型) |
您可以通过将配置参数的值设置为来控制这些编辑时检查的诊断操作级别错误
,警告
,或没有一个
.当更改配置参数的设置时,相应编辑时检查的诊断级别也会更改。例如,如果您设置遥不可及的执行路径配置参数为没有一个
,则状态流编辑器不会突出显示悬空转换、转换阴影或无法访问的状态。
原子子图包含状态操作
问题:原子子图不支持状态操作。金宝app
诊断水平:错误。
解决方案:删除状态操作或将它们移动到原子子图的子状态。
缺少默认转换
问题:在具有排他(or)分解和至少两个子状态或连接的图表或状态中,需要使用默认转换来指示执行的开始位置。
诊断水平:错误。
解决方案:通过添加默认转换指定初始状态。有关详细信息,请参阅默认的转换.
图形函数包含状态
问题:由于图形函数完全在单个时间步中执行,因此它们不能包含任何状态。
诊断水平:错误。
解决方案:用结点替换状态。有关更多信息,请参见通过定义图形函数重用逻辑模式.
无效的十字路口
问题:状态和连接不能在状态流编辑器中重叠。
诊断水平:错误。
解决方案:通过分离状态和交叉点来避免交叉。
监视并行状态的叶或子状态活动
问题:具有并行(and)分解的图表和状态不支持监视叶状态或子状态活动,因为并行子状态是同时活动的。金宝app
诊断水平:警告
解决方案:打开属性检查器或模型管理器。清除创建用于监视的输出复选框或选择自我的活动
从下拉列表中。有关更多信息,请参见通过活动状态数据监视状态活动.
State包含语法错误
遥不可及的状态
问题:一个国家是遥不可及的当没有有效的执行路径指向它时。
诊断水平:取决于配置参数遥不可及的执行路径(金宝app模型).
解决方案:将不可到达状态与从可到达状态或连接的转换连接起来。
晃来晃去的过渡
默认过渡路径不会在一种状态下终止
问题:在具有排他(或)分解和至少一个子状态的图表或状态中:
沿着默认转换的每一条路径都必须通向一个子状态。
必须有一个默认转换路径不受条件保护或由事件触发。
诊断水平:取决于配置参数没有无条件的默认转换(金宝app模型).
解决方案:终止子状态中沿默认转换的每个路径。确保一个默认转换路径不受条件保护或不受事件触发。
无效的默认转换路径
问题:默认转换路径不能退出父状态。
诊断水平:错误。
解决方案:修改默认转换路径,使其保持在父状态。
转换包含语法错误
问题:在转换中,条件或操作不遵循Stateflow语法规则。Stateflow编辑器在语法错误下加上红色波浪线。另请参阅State包含语法错误
.
诊断水平:错误。
解决方案:更正转换条件或操作中的语法错误。有关详细信息,请参阅过渡的标签.
在此路径上,转移操作位于条件操作之前
问题:当带转换操作的转换后面跟着带条件操作的转换时,操作不会按转换的顺序执行。当关联的条件被计算为true时,状态流图执行条件操作。相反,图表只在完全执行转换路径时执行转换操作。因此,图表采用转换路径,条件操作发生在转换操作之前。
诊断水平:取决于配置参数在条件动作之前指定的转换动作(金宝app模型).
解决方案:将转换操作放在路径上的最后一个条件操作之后。
转换以并行状态开始或结束
问题:在具有并行(and)分解的图表和状态中,所有兄弟子状态同时是活动的或不活动的。
诊断水平:警告
解决方案:删除转换或将父状态的分解更改为exclusive (or)。
Transition连接到Box
问题:转换只能连接到状态和连接。
诊断水平:错误。
解决方案:移动或删除附加到方框的过渡。
过渡跨越平行态
问题:独立状态流程图不支持跨越并行状态边界的转换。金宝app
诊断水平:错误。
解决方案:删除进入或离开并行状态的转换。
过渡进入或退出图形功能
问题:转换不能进入或退出图形函数。图形函数中的流程图必须完全包含在函数中。
诊断水平:错误。
解决方案:删除进入或退出图形函数的转换。
自然父对象外的过渡循环
问题:如果转换超出了源和目标之间的父状态,则图表将执行退出
和进入
在目标状态变为活动状态之前父状态的操作。
诊断水平:取决于配置参数亲本外过渡(金宝app模型).
解决方案:移动转换,使其包含在父状态中。
过渡阴影
在操作或子状态期间具有的无条件路径状态外
问题:导致脱离状态的无条件转换会抑制在
状态中的操作以及到子状态的默认转换。
诊断水平:取决于配置参数亲本外过渡(金宝app模型).
解决方案:向转换中添加条件,或在动作和子状态期间从状态中删除条件。
循环包含带有转换操作的转换
问题:周期不应该包含带有转换操作的转换。
诊断水平:错误。
解决方案:删除转换操作或通过删除转换来删除循环。
无效的历史连接
问题:历史的交叉点是无效的当:
历史连接包含在层次结构的图表级别中。
历史连接包含在具有并行(和)分解的状态中。
历史连接包含在一个图形函数中。
同一状态中包含多个历史连接。
历史的交汇是过渡的源头。
诊断水平:错误。
解决方案:从层次结构的图表级别、具有并行(AND)分解的状态或图形函数中删除历史连接。除去这个国家的所有历史连接点,只留下一个。将转换源移动到连接结点或状态。有关更多信息,请参见使用历史连接记录状态活动.
Junction没有无条件的脱离循环
问题:一个结必须有一个从循环到一个状态或终点结的无条件的逃逸路径。
诊断水平:错误。
解决方案:创建从连接点到状态或终止连接点的无条件路径。
意外回溯
遥不可及的结
问题:一个结遥不可及的当没有有效的执行路径指向它时。
诊断水平:取决于配置参数遥不可及的执行路径(金宝app模型).
解决方案:用从可达状态或结的转换连接不可达结。
函数未使用
问题:一个函数未使用的当图表中没有语句时调用该函数。
诊断水平:警告
解决方案:从状态或转换动作或从另一个函数调用该函数。
无效使用关键字作为函数参数
问题:函数定义使用保留关键字作为参数。
诊断水平:错误。
解决方案:将参数重命名为函数。有关保留关键字的列表,请参阅命名状态流对象的指南.