Engee 文档

有限状态机调试器

页面进行中。

基于以下内容创建模型 有限自动机是描述复杂离散逻辑的有效方法。 为了简化对此类机器运行的分析并确保对其行为的控制,*Engee*提供了一个内置的调试器,允许对执行进行分步监控,以识别有限状态机中的错误。

调试器在块内可用 Chart 它是启用的,如果 国家 stateflow state 和/或 过渡 stateflow default transition 设置断点:

state machines breakpoint 1 cn

断点 它们看起来像红色标记。 state machines breakpoint 1 (或灰色 state machines breakpoint 2 如果禁用)。

断点 -有限状态机调试器的关键工具,使用它可以设置停止模型执行的条件。 这使我们能够在有限自动机执行的特定步骤中研究模型的行为。 所以,使用断点,你可以:

  • 有限状态机仿真的逐步控制;

  • 查看特定步骤中的变量值;

  • 分析何时以及哪些状态变为活动状态或终止状态;

  • 检查是否正在执行以下操作 状态机操作员组 (对于进入、期间和退出组);

  • 分析转换的有效性,包括使用运算符的转换 时间逻辑, 信号边缘跟踪变化指标;

  • 以及诊断未出现在模型输出中的隐藏逻辑错误和不稳定状态。

使用断点

断点 可以设置为:

  • 状态 stateflow state -进入时、执行时和退出时;

  • 过渡 stateflow default transition -检查条件时或在进行过渡之前。

向状态添加断点 stateflow state 或过渡 stateflow default transition,左键单击所需的元素,然后单击出现的断点图标。 活动断点将用红色标记标记。:

sm breakpoints 1 cn

state machines breakpoint 4 cn

您可以为状态和转换设置不同类型的断点。 为此,请用鼠标左键单击断点:

在美国

在十字路口

state machines breakpoint 3 cn

  • 进入状态(进入)时 -模拟在执行"输入"之前停止;

  • 在状态时(期间) -模拟在每个时钟周期执行"期间"之前停止;

  • 离开状态时(退出) -在切换到另一个状态之前,模拟在执行"退出"后立即暂停。

state machines breakpoint 11 cn

  • 过渡有效时 -模拟在过渡变得可接受并且可以执行的时刻停止。;

  • 过渡测试时 -当检查过渡条件时,模拟暂停。 如果转换不包含逻辑条件(例如,无条件转换),则此参数不可用。

当光标悬停在断点上时,将显示所选类型。:

state machines breakpoint 4 cn
state machines breakpoint 12 cn

您可以启用复选框的任意组合,具体取决于要跟踪的状态/转换点。 如果取消选中所有框,断点将被删除。

要暂时禁用断点(将其留在状态/转换上,但未触发),请再次单击断点图标。:

state machines breakpoint 3 cn

断点列表

要转到断点列表,请左键单击已创建的断点,然后选择 断点列表 :

state machines breakpoint 5 cn

这将打开有限状态机模型的所有断点的列表。:

state machines breakpoint 6 cn

通过断点列表,您可以:

  • 跟踪在模拟模型期间触发了哪些断点及其触发器的数量。 触发器的数量显示在列" 触发器 ". 触发的断点将以绿色突出显示:

    state machines breakpoint 14 x cn

  • 通过在列表中左键单击断点并单击图标来删除断点 删除断点 state machines breakpoint 7.

  • 通过在列表中左键单击断点并单击图标来添加断点 添加断点 state machines breakpoint 8. 在打开的窗口中,选择必要的参数-触发器的类型,如果需要,条件:

    state machines breakpoint 9 cn

  • 使用复选框启用/禁用断点。 state machines breakpoint 10 在相应的点上。

  • 通过在列中输入表达式为断点设置条件" 条件 "与期望的线相对。 例如’y>5’或'(y==0)&(n>5)'。 条件可以指定由 有限自动机的逻辑。 它们使用*Chart*块中可用的输入、输出和所有变量的值。

管理模型执行

分步执行仅在*Chart*块内可用,不影响工作区中模型的全局执行。 退出*Chart*块时,面板消失,*Engee*返回到正常模拟模式。
*Chart*块的活动断点与断点不冲突。 型号脚本

在*Chart*块内设置第一个断点后,画布的左上角将出现一个逐步模拟控制面板。:

state machines breakpoint 14

三个执行控制命令可用:

  1. 进入 state machines breakpoint 14 1 -进入当前状态或转换内的下一阶段执行。 该命令一步一步地执行有限状态机元素的细节。 它可以是:

    • 有限状态机图的输入;

    • 检查过渡条件;

    • 执行过渡操作;

    • 状态激活;

    • 执行’entry`、`during`或’exit’语句组;

    • 过渡到 子状态或嵌套 交通图.

  2. 跨过 state machines breakpoint 14 2 -执行当前步骤的全部内容,而不去内部细节。 命令用于依次经过有限状态机的关键执行步骤。:

    • 激活有限状态机;

    • 过渡到状态;

    • 检查可用流量;

    • 执行过渡操作;

    • 执行状态操作。

  3. 走出来 state machines breakpoint 14 3 -完成当前状态、过渡、子状态或嵌套过渡图的执行,并返回到更高级别的执行。 该命令允许您退出当前嵌套级别,并继续在执行输入的级别执行机器。


为了直观地跟踪机器模型执行的当前阶段,使用背光-当在模型本身和断点列表中执行时,活动元素以绿色突出显示。:

state machines breakpoint 14 4 cn

除了用颜色突出显示之外,系统还以图标的形式提供提示,当您将光标悬停在它们上时,会弹出一条关于模型在当前步骤中究竟如何工作的辅助消息。:

  • sm before entering 在进入国家之前

  • sm during 州内

  • sm before exit 出国前

  • sm before testing transition 在检查过渡条件之前

  • sm before transition 过渡前

查看和编辑变量

在有限自动机的逐步模拟期间,您不仅可以观察哪些状态和转换被激活,还可以监视*Chart*块内部使用的变量的值。

要做到这一点,打开 设置窗口 debug article icon 1 *Chart*块-它显示所有可用的变量。

state machines breakpoint 14 7 cn

在此窗口中,您可以:

  • 查看每个步骤中变量的当前值;

  • 要查看值的变化-它们以绿色突出显示,类似于断点列表。;

  • 当模型停止时,手动更改某些变量的值。

    变量值只能在仿真暂停期间和存在活动断点时进行编辑。

更改变量的值:

  1. 将光标移动到列中所需的行" 重要意义 »;

  2. 点击当前值;

  3. 输入一个新值,然后按Enter键。

您可以更改*局部变量*和*输出信号*。 输入信号的值是从外部建模环境(在*图表*块之外)设置的。

有用的连结