调试

对程序的错误进行调试可以通过CoDeSys中在线调试模式进行。在这种情况下,可以对应用程序进行检查 “模拟”例如,不用实际的连接一个设备对程序进行调试。

可以设置断点在特定的位置,强制执行到中断点。在那些情况下,以及那个任务中或者某此循环中断点是有效的,每个断点都可以进行设置(条件断点)。参阅: “断点”

单步执行可以控制程序单步执行。参阅: “单步执行”

在每个断点处,当前变量的值可以被检查。一个 “调用栈”可以查看目前程序运行的位置。

“顺序控制”功能可以被激活,以便于执行所跟踪的应用程序。不同于标准的检测函数,只显示变量在两个执行周期内的变换值,顺序控制在每个特定的执行步骤中,执行时完全相同。

断点

在应用程序中设置的一个断点,将会在应用程序执行到断点处暂停。当包含断点的任务遇到断点(“调试任务”)时将停止运行,但是其他的任务会继续运行。可能的断点位置取决于当前的编辑器。在所有的编辑器中都可以在POU结尾处设置断点。

提示!

IOs 的处理“调试任务”将不会在断点处停止,即使选择选项“停止状态下更新IO”在 “PLC 设置”中启动。

参阅 “断点命令”有关断点命令的详细描述。选项 断点对话框 提供了一个所有断点的概述,以及允许添加的断点位置,移除或者修改的断点。

条件断点:断点的停止可以通过当前程序执行的周期或者当前处理的任务来进行设定。后者允许设置一个专门的“调试任务”,以便于在多个任务的情况下对程序调试进行管理(见下文 “多任务中应用程序的断点和单步执行”)。

图标:

断点激活

断点禁用

在线模式下停止到断点

单步执行

单步执行允许控制应用程序的运行,例如用于调试的目的。基本上通过重复使用按键 [ F10 ] 从当前指令执行到下一步,但是也可以通过此命令跳过 POUs 程序或者....

...与CoDeSys V2.3相比不同之处 :

  • 下一个将要被执行的语句可以被明确定义(‘设置下一条语句’)。
  • 通过鼠标的位置可以定义下一个中断点(‘运行到光标位置’)。
  • ‘跳出一步’回到前一次调用位置。

参阅 “断点命令”对单步执行的详细说明。

图标:

当前步位置,在程序行之前有一个黄色的箭头,并且在箭头后有一个黄色的阴影表示当前命令处理的位置。

步进入示例

可以从断点处通过步命令开始执行单行命令。

插图 54: 步进入示例
多任务中应用程序的断点和单步执行

对每个应用程序分别进行调试。这意味着“断点停止”不会影响任何的其他应用程序。这也适用于父/子应用中,即使断点是被设置在一个POU中,但是两个应用程序都有使用并且只在PLC中出现一次。

如果一个断点可以被多任务处理,因为POU被应用于多个任务,通常第一次到达断点的任务(也只是那个任务!)会被处理。需要注意的是,与单步执行不同,停止之后的连续运行意味着另一个任务将会被停止在下次断点的时候(一个周期可能尚未完成)!如果创建一个单独的任务(“调试任务”),可以单独的在 断点条件属性)中进行设置。