应用程序中设置的断点用于停止程序执行。随后可在当前执行点看到变量值。利用调用栈,能够更精确地确定当前位置。
只有刚好已到达断点的调试任务被停止。其他任务则继续执行。可能的断点位置取决于相应的程序编辑器。在每种情况下,在 POU 的末端都有一个断点。
有关断点命令的说明,请参阅断点命令一章。对话框提供了所有断点的概览,让您能够添加、删除和修改断点。
断点处停止可能取决于以下条件:
特定布尔表达式为 TRUE 时。
正在运行的循环次数。
正在执行的任务。
变量值已被修改时(数据断点)。
声明特定调试任务可有助于避免多个任务受到错误校验影响(请参阅具有多个任务的应用程序中的断点和单步运行文段)。
符号 |
描述 |
---|---|
![]() |
断点已启用。 |
![]() |
断点已禁用。 |
![]() |
断点设置在编辑器中已打开的功能块的另一实例中。 |
![]() |
在断点处停止。 |
![]() |
有条件断点已启用。 |
![]() |
有条件断点已禁用。 |
![]() |
执行点已启用。 |
![]() |
执行点已禁用。 |
![]() |
有条件执行点已启用。 |
![]() |
有条件执行点已禁用。 |
![]() |
当前步位置。 由相应行前的黄色箭头以及相关操作后的黄色阴影指示。 |
![]() |
数据断点已启用。 |
![]() |
数据断点已禁用。 |
![]() |
在数据断点处停止。 |
![]() |
数据执行点已启用。 |
![]() |
数据执行点已禁用。 |
![]() |
在数据执行点处停止。 |
![]() |
有条件数据执行点已启用。 |
![]() |
有条件数据断点已启用。 |
单步运行可实现应用程序在在线模式下出于调试目的的可控执行。在使用单步运行命令之前,必须在定义的程序步处,例如通过设置断点的方式,来停止程序。基本而言,您可通过跳入指令、跳过下个指令或跳出指令,从一个指令跳至下个指令。有关单步运行命令的描述,请参阅章节断点相关命令。
EcoStruxure Machine Expert 提供下列单步运行功能:
命令:执行单一步;这也适用于在步内调用的 POU。
命令:执行单一步;POU 完全在步内执行。
命令:如果应用程序不包含任何调用,则执行跳回到应用程序开头。
命令:将程序一直执行到临时的可定义位置。
命令:定义要执行的下一个指令(语句)。
命令:跳至要在下一步中执行的指令(语句)。
视图:此视图指示当前到达的步位置以及整个调用路径。
在通过应用程序执行单步运行时,可能的停止位置取决于编辑器类型。当前位置由黄色箭头来指示。
视图:显示在编译应用程序之前功能块在应用程序的调用结构中的位置。
数据断点让您能够在变量值更改时停止程序执行。
并非所有支持的控制器都支持该功能。 查询您的控制器对应的编程指南。
能够定义的数据断点的数量取决于正使用的控制器。如果在已达到最大数量时试图设置数据断点,则会显示相应消息。
数据断点包含以下跟普通断点相同的选项:
无法同时对多个任务执行调试。当您正在处理包含断点或单步运行的任务时,其他任务中的断点会被忽略。
如果多个任务可能抵达断点,由于 POU 由多个任务使用,则仅首先执行的任务将暂停。在单步运行或在暂停后继续调试时,要注意这点。如果应当只有 1 个特定任务(调试任务)相关,可在断点条件属性中对其进行指定(
对话框, 选项卡)。您可以激活流控制,从而跟踪应用程序中已经运行过的部分。与仅显示两次循环间的变量值的标准监视不同,流控制提供每个处理步在其处理时的值。另请参阅菜单命令在线帮助中的流控制说明。
在每次执行停止时,EcoStruxure Machine Expert 会显示当前循环的变量值(监视)。如要确定当前位置,您可以显示变量的调用栈。另请参阅菜单命令在线帮助中的调用栈说明。