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