在控制器上运行应用程序时,变量的实际值会显示在 POU 的编辑器中。这就是监测变量值的方法。
要求:“启用内联监控” 选项在“工具 选项” “ 文本编辑器” 类别中的“监控” 选项卡上激活。
-
将应用程序下载到控制器并启动。
-
单击“调试 显示模式 十进制” 。
设置实际值的显示格式。
-
单击“Devices” 视图或“POUs” 视图中的编程对象。
打开相应的编辑器。变量的实际值在声明和执行时都会不断刷新。
在声明编辑器中进行监控

表达式 (1) 的实际值显示在“Value” 栏 (3) 中。
您可以在“准备值” (4) 列中写入并强制输入一个值。在强制过程中,实际值以红色符号 () 表示。
接口引用的表达式可以扩展。如果接口指向一个全局实例,则该全局实例将显示为引用下面的第一个条目。之后,如果接口引用发生变化,则显示的引用将被折叠。
实施过程中的监测(在线监测)
内联监控是在执行过程中显示当前变量的值。
根据执行语言的不同,执行部分可以显示以下内容:
-
变量名后有一个窗口,显示变量的当前值:
如果您为变量准备了用于强制或写入的值,那么这些值将在内联监控视图中显示在当前值之后的角括号内。
强制后,相应的值由
符号标识。
-
网络编辑器和 CFC 编辑器:
连接线根据其实际布尔值用不同颜色显示(蓝色表示
TRUE
,黑色表示FALSE
)。 -
LD 编辑:
触点和线圈元件也有标记。
对于触点和线圈,准备值 (
TRUE
或FALSE
) 显示在元件旁边的小视图中。 -
SFC 编辑:
值为
TRUE
的转场将根据其实际布尔值用不同颜色显示(蓝色表示TRUE
,黑色表示FALSE
)。活动步骤显示为蓝色。
在执行过程中,强制转换值显示为红色。
-
IL 表格编辑器:
当前值显示在单独的一栏中。
在 ST 编辑器中进行监控

在 LD 编辑器中进行监控

在 SFC 编辑器中进行监控

您可以在“工具 选项” ,“文本编辑器” 类别中的“监控” 标签中停用内联监控功能。
部分监控阵列
扩展数组最多可显示 1000 个元素的实际值。然而,这可能会引起混淆。此外,一个数组可以包含超过 1000 个元素。因此,限制显示元素的范围是有帮助的。在在线模式下,您可以通过以下方式实现这一功能。
限制监测范围
要求:应用程序正在运行。它包含一个有 1000 多个元素的多维数组变量。例如 arrBig : ARRAY [0..100, -9..10, -19..20] OF INT;
-
单击“数据类型” 列中的
arrBig
变量字段。“Monitoring Range” 对话框将打开。
-
指定值
[1, -9, -19]
为“开始”。 -
指定值
[1, 10, 20]
为“结束”。800 个数组元素的实际值显示在声明编辑器中。范围仅限于索引
[1, <i>, <j>]
中的元素,其中 i 从 -9 到 10,j 从 -19 到 20。
监控功能块
在联机模式下双击功能块的编辑器视图时,会打开一个对话框,您可以选择查看基本实现或特定实例。
如果选择基本实现,则代码将显示在编辑器中,不带当前值。现在在基本实现中设置一个断点。如果执行到此为止,则显示程序流程中最先处理的实例的当前值。现在,您可以依次浏览所有实例。
如果您选择了其中一个实例,编辑器就会打开并显示该功能块实例的代码。当前值显示在声明中,如果适用,也会显示在执行中,并不断更新。
监控物业
在联机模式下,通过在函数中设置断点,可以监控属性对象 中的变量。在此停止时,将显示当前值。
除了您自己的值之外,还会自动显示上级实例的变量值。在属性的声明部分,指向上位实例的THIS
指针与当前数据类型信息和值一起出现在第一行。
示例
代码
FUNCTION_BLOCK FB_BaseAlfa VAR iBaseLocal : INT; sBaseLocal : STRING; END_VAR iBaseLocal := iBaseLocal + 1; sBaseLocal := 'Testing Text'; FB_BaseAlfa.PorpBeta.Get iBaseLocal := iBaseLocal + 1; IF iBaseLocal > 0 THEN PropBeta := TRUE; END_IF FB_BaseAlfa.PorpBeta.Set IF PropBeta = TRUE THEN iBaseLocal := 0; sBaseLocal := 'Tested IF'; END_IF PROGRAM PLC_PRG VAR fb_BaseAlfa : FB_BaseAlfa; END_VAR fb_BaseAlfa(); IF fb_BaseAlfa.PropBeta = TRUE THEN xResult := TRUE; END_IF IF xReset THEN fb_BaseAlfa.PropBeta := TRUE; xReset := FALSE; END_IF

另见
监控上位编程对象的属性访问
除变量值外,您还可以监控功能块或程序中下级属性 的值。
为此,请在声明中为下级属性对象添加 pragma{attribute 'monitoring' = 'variable'}
或{attribute 'monitoring' = 'call'}
。如果在运行时打开上层程序实例或功能块实例,则除了当前变量值外,编辑器中还会显示当前属性值。
监测方法
在联机模式下,通过在方法中设置断点,可以监控方法对象 中的变量。在此停止时,将显示当前值。
除了您自己的值之外,还会自动显示上级实例的变量值。在方法的声明部分,指向上位实例的THIS
指针与当前数据类型信息和值一起出现在第一行。
示例
代码
FUNCTION_BLOCK FB_BaseAlfa VAR iBaseLocal : INT; sBaseLocal : STRING; END_VAR iBaseLocal := iBaseLocal + 1; sBaseLocal := 'Testing Text'; METHOD MethBaseAlfa : BOOL // Method of FB_BaseAlfa VAR_INPUT END_VAR VAR iMethLocal : INT; END_VAR iMethLocal := iMethLocal + 1; PROGRAM PLC_PRG VAR fb_BaseAlfa : FB_BaseAlfa; END_VAR fb_BaseAlfa(); fb_BaseAlfa.MethBaseAlfa();

监测功能
在联机模式下,通过在函数中设置断点,可以监控函数对象中的变量。在此停止时,将显示当前值。
监控函数调用的返回值
在 POU 的 ST 编辑器中,当前返回值会在调用函数的 POU 位置以内联监视形式显示。
必须满足以下条件
-
该值可解释为一个 4 字节的数值。例如
INT
,SINT
, 或LINT
。 -
在函数中插入了 pragma
{attribute 'monitoring' := 'call'}
。