断点通常用于调试程序。CODESYS支持所有IEC编辑器中的断点。
您可以在程序中的特定位置设置断点,以强制执行停止并监视变量值。您可以设置特殊的数据断点,以在特定变量的值更改时停止程序执行。
断点或数据断点处的暂停可以链接到其他条件。您也可以将断点和数据断点重新定义为执行特定代码的执行点,而不是停止程序。
断点视图提供了所有已定义断点的概览。它还包括用于处理对多个断点的批处理更改的其他命令。
.在编辑器中,以下符号标识断点或执行点的状态:
.另请参阅
是否可以设置数据断点以及断点的数量取决于目标系统。
当特定变量或内存地址的值更改时,程序在数据断点处停止执行。 与普通断点一样,可以将停止链接到其他条件,或者可以处理特定代码来代替停止(转换为数据执行点)。
您可以通过调试菜单中的新建数据断点命令或断点视图中的新建按钮来设置数据断点。您可以直接指定一个合格的变量名或一个内存地址,对其值的更改进行监视。
.例如
在下面的示例代码中,变量iNumber的内存被无意覆盖。但是,变量iNumber的数据断点将检测其值何时更改。然后,处理在数组访问处以一条相应的消息停止,该消息将覆盖变量值:Idx = 7。另请参阅:“设置数据断点”。
PROGRAM PLC_PRG VAR Idx : INT; Ary : ARRAY[0..3] OF BYTE; iNumber : INT := 55; END_VAR FOR idx := 0 TO 6 DO Ary[idx] := 0; END_FOR
基本上,不可能同时对多个任务进行调试。使用断点或单步执行任务时,在其他任务中会忽略断点。
如果包含断点的块被多个任务使用,则只有调试任务会暂停,因为它首先到达断点。 所有其他任务继续。 调用堆栈对话框显示当前暂停的任务。
如果只需要一个断点来影响一个特定任务,则可以在断点属性中定义该断点。
断点针对每个应用程序独立运行,因此“ HALT ON BP”不会影响任何其他应用程序。即使将断点设置在多个应用程序使用的块中,并且其代码在PLC上仅定位一次,这也适用于父/子应用程序。
提示!
即使您在PLC设置中选中了停止时刷新I/O复选框,调试任务所调用的I/O也不会在断点处暂停更新。
如果应用程序在PLC的断点处停止,则在线更改或下载将导致所有任务都停止,这意味着PLC将停止。在这种情况下,CODESYS会提示您是否继续登录。
要求:该应用程序处于在线模式并正在运行。操作模式为调试。
⇒
该行用红色标记,并由“启用断点”符号()标识。 如果程序在断点处暂停,则该行用“在断点处停止”符号()标记。程序处理停止,并在状态行中以红色突出显示的HALT ON BP状态标识。
该程序继续。
标记消失。断点将被删除。
此时将打开断点属性对话框。
该行用红色标记,并由“启用条件断点”符号()标识。
监视正在运行的程序。只要条件的布尔变量为FALSE,就不会满足断点条件,程序将继续运行。如果将变量设置为TRUE,则条件将得到满足,并且程序每隔5次在断点处停止。
当程序到达执行点时,它不会停止,而是执行上面定义的代码。 此外。将向设备日志发出消息。
要求:该应用程序处于在线模式并正在运行。
该行由“启用数据断点”符号()标记和标识。当程序到达数据断点时(即所选变量的值更改时),程序处理将暂停。在POU的实现部分中,下一行由箭头标识。这在状态行中由以红色突出显示的HALT ON BP状态标识。
当变量值再次改变时,程序继续运行并再次停止。