主要内容

调试单机Stateflow图表

独立的状态流®图表是一个MATLAB®类,该类定义有限状态机的行为。独立图表以MATLAB作为动作语言实现经典图表语义。您可以使用MATLAB的全部功能对图表进行编程,包括在Simulink中限制用于代码生成的那些功能金宝app®.有关更多信息,请参见创建作为MATLAB对象执行的状态流程图

要启用调试,请在独立图表或执行图表的MATLAB脚本中设置断点。断点暂停图表的执行。当执行暂停时,您可以逐步完成图表中的每个动作,查看数据值,并与MATLAB工作空间交互以检查图表的状态。

请注意

当调试从MATLAB脚本执行的独立图表时,首先打开Stateflow Editor。在打开编辑器之前尝试调试独立图表至少一次可能会产生意想不到的结果。

有关在Simulink模型中调试状态流程图的信息,请参见金宝app将断点设置为调试图

设置和清除断点

断点显示为圆形红色徽章。例如,这个图表包含状态上的断点一个一个B

在状态和转换上带有断点的状态流图表。

您可以在图表、状态和转换上设置断点。

图表上的断点

要在图表上设置断点,请在图表内右键单击并选择在图表项上设置断点.这种类型的断点在进入图表之前暂停执行。

要删除断点,请在图表中右键单击并清除在图表项上设置断点选择。

状态和转换上的断点

您可以在状态和转换上设置不同类型的断点。

对象 断点的类型
状态

关于国家入境—执行状态前暂停执行条目行动。

在国家—执行状态前暂停执行行动。

关于国家出口—执行状态后暂停执行退出行动。

过渡

当测试过渡时—在测试转换是否为有效路径之前暂停执行。如果转换上不存在任何条件,则此断点类型不可用。

当转换有效时—在转换有效后暂停执行,但在执行转换之前暂停执行。

若要在状态或转换上设置断点,请右键单击状态或转换并选择设置断点.对于状态,默认的断点是关于国家入境在国家.对于转换,默认的断点是当转换有效时.要更改断点的类型,请单击断点标记并选择不同的断点配置。有关更多信息,请参见管理断点类型和条件

要删除断点,请右键单击状态或转换并选择清晰的断点.要删除图表中的所有断点,请在图表中右键单击并选择清除图表中的所有断点

管理断点类型和条件

一个断点标记可以表示不止一种类型的断点。若要查看列出在状态或转换上设置的断点类型的工具提示,请指向其徽标。在本例中,是州上的徽章一个表示两种断点类型:关于国家入境在国家

显示状态上的断点类型的工具提示。

若要更改对象上的断点类型,请单击断点标记。在“断点”对话框中,您可以根据对象类型选择不同的断点配置。清除“断点”对话框中的所有复选框将删除该断点。

“断点”对话框。

若要限制执行在断点处停止的次数,请向断点添加条件。默认情况下,状态流图在到达断点时暂停。向断点添加条件时,只有当条件为真时,图表才会在断点处暂停。例如,在这些条件下,状态上的断点一个只有当值为时,才暂停图表的执行x是负的。

“断点”对话框,显示断点的条件。

要指定断点的条件,您可以使用任何有效的MATLAB表达式,该表达式将断点处范围内的数值和Stateflow数据对象组合在一起。

断点后的控制图执行

当执行在断点处停止时,statflow进入调试模式。

  • MATLAB命令提示符变为K > >

  • 符号窗格显示图表中每个数据对象的值。

  • 图表以蓝色突出显示活动元素,以绿色突出显示当前正在执行的对象。

例如,当执行在状态中的断点处停止时一个州的边界和州内的第一个声明条目动作以绿色高亮显示。

在断点处暂停的状态流程图。状态A是活动的。

执行状态徽章出现在执行暂停的图形对象中。

徽章 描述

在进入图表或处于状态之前暂停执行条目行动。

执行在某个状态中暂停行动。

执行在某个状态中暂停退出行动。

在测试转换之前暂停执行。

在进行有效转换之前暂停执行。

当图表在断点处暂停时,您可以使用以下命令继续执行:

  • 的按钮调试选项卡

  • MATLAB命令窗口

  • 键盘快捷键

行动 调试选项卡按钮 MATLAB命令 键盘快捷键 描述
继续

dbcont Ctrl + T

继续执行到下一个断点。

跨过

dbstep F10

进入图表执行的下一个步骤。在图表层面,可能的步骤包括:

  • 进入图表

  • 执行转换操作

  • 激活状态

  • 执行状态操作

有关更多信息,请参见状态流程图的执行

一步

dbstep在

从调用函数的状态或转换操作开始,前进到函数中的第一个可执行语句。

从包含另一个函数调用的函数中的语句,推进到第二个函数中的第一个可执行语句。

否则,进入图表执行的下一步。(参见“Step Over”选项。)

走出

dbstep出来 Shift +季

从函数调用返回到调用函数的语句。

否则,继续执行到下一个断点。(请参阅Continue选项。)

停止

dbquit Ctrl + Shift + T

退出调试模式并中断执行。

当您从Stateflow Editor中执行独立图表时,此操作将从MATLAB工作空间中删除图表对象。

在包含多个语句的状态或转换操作中,您可以通过选择,一次一个地步进单个语句跨过.状态流编辑器在执行每个语句之前突出显示它。

请注意

因为独立图表根据时钟时间定义时间逻辑,所以当图表在断点处暂停时,时间逻辑运算符可以有效。在这种情况下,图表退出调试模式,并继续执行到下一个断点。

检查和更改图表数据值

当statflow处于调试模式时符号窗格显示图表中每个数据对象的值。还可以通过指向图表中的状态或转换来检查数据值。工具提示显示所选状态或转换中使用的每个数据对象的值。

要测试图表的行为,请在符号窗格中,您可以在执行期间更改数据对象的值。或者,在调试提示符处,使用关键字输入新值取代图表对象名称。例如,要更改本地数据的值x,输入:

这一点。X = 7
新值出现在符号窗格。

请注意

在Simulink模型中调试图表时,不要使用关键字金宝app.相反,您可以在调试提示符处直接访问所有Stateflow数据。有关更多信息,请参见在MATLAB命令窗口中查看和修改数据

相关的话题