在联机模式下,您可以监控和更改控制器的变量值。此外,还提供了断点和步进等调试功能。
监测
与往常一样,您可以在声明部分和实现部分(使用内联监控)监控值。
只有当功能块实例打开时,才能对功能块进行内联监控。基本执行视图中不显示任何值。
监控布尔变量
布尔变量之间的连接根据其实际值用颜色显示:TRUE
为蓝色,FALSE
为黑色。元素引脚用实际值装饰。
示例
应用程序包含一个 CFC POU。一个内部布尔变量在这里切换。每循环一次,变量iToggle
的状态就从TRUE
切换到FALSE
。


监控标量变量
如果是标量变量,则用实际值装饰元素引脚。
示例

强制和写入变量
在声明编辑器的联机模式下,您可以为强制或写入监控变量准备一个值。
在CODESYS 选项的“CFC 编辑器” 类别中选择“在执行部分准备值” 复选框时,也可以在执行部分准备值。
为此,请双击一个元素或元素旁边的监控框,打开“准备值” 对话框。布尔变量不显示对话框。不过,每点击一次变量旁边显示的值,TRUE
和FALSE
的值就会切换一次。
准备值显示在角括号内。执行写入或强制操作后,监控框中会显示红色 "F"。
更改功能块实例的常量输入参数
您可以在联机模式下为VAR_INPUT CONSTANT
类型的功能块实例写入输入参数并修改参数。注销后,单击“Save Prepared Parameters to Project 保存这些参数” 。
要求:CFC 编辑器处于活动状态。实例化的功能块在其声明中包含VAR_INPUT CONSTANT
变量。
-
在编辑器中,通过调用功能块实例打开 POU。
FUNCTION_BLOCK FB_DoIt VAR_INPUT iAlfa : INT; iBravo: INT; sCharlie : STRING := 'Charlie'; xItem : BOOL; iDelta : INT; END_VAR VAR_INPUT CONSTANT MAXIMUM : INT := 12; END_VAR VAR_OUTPUT iResult : INT; sResult : STRING; xResult : BOOL; END_VAR
FB_DOIt
的声明由常数MAXIMUM
补充。功能块实例的图形显示包含“Parameters” 按钮。
-
登录控制器。
-
单击功能块实例的“Parameters” 按钮。
“编辑参数” 对话框将打开。
-
单击参数内联监控字段中的“值” 列。
“准备值” 对话框将打开。
-
在“为下一次写入或强制操作准备一个新值字段”中键入
20
。 -
单击“OK” 确认条目。
准备值显示在当前值旁边的角括号中(例如
<20>
)。 -
单击“调试 写入值” 。
准备值已写入。参数将被更改,并显示在项目中数值后面的括号内。
功能块实例参数字段旁边的红叉显示两个值之间的差值。
-
单击“编辑参数” 关闭对话框。注销。
-
单击“CFC 将准备好的参数保存到项目” 。
更改后的参数值将保存到项目中。参数字段旁边的星号消失。
断点位置
断点的可能位置
-
元件“输出”
变量说明
-
元素“盒”
POU 被称为
-
元素“返回”
程序流程有分支。
-
元素“选择器”
描述了结构要素。
单击“Debug Toggle Breakpoint” 设置新断点或删除现有断点。框图中的红圈代表活动断点。





注意

所有可调用的方法都会自动设置断点。
因此,如果调用了在接口上定义的方法,那么就会在实现该接口的功能块的所有方法中设置断点。这也适用于所有定义方法的继承功能块。
走进 POU
您可以在调试模式下分步处理 POU。一个被调用的 POU 在内部由一个RETURN
作为补充,它位于带有0
编号的元素之前的开头和最后一个元素之后的结尾。步进时,这些系统会自动启动。