CODESYS Development System > Runtime应用程序 > 监视值 > 调用编程对象中的监视 |
当应用程序在控制器上运行时,变量的实际值将显示在POU的编辑器中。这就是监视变量值的方式。
表达式(1)的实际值显示在值列(3)中。
您可以在准备值(4)列中写入并强制使用值。在强制期间,实际值用红色符号()标识。
接口引用的表达式可以扩展。如果接口指向全局实例,则该全局实例将显示为引用下方的第一个条目。此后,如果接口引用发生更改,则显示的引用将折叠。
内联监视是执行中当前变量值的显示。
.根据实现语言的不同,在执行部分中可能会显示以下内容:
您可以在工具 ➔ 选项上文本编辑器类别监视选项卡上停用内联监视功能。 |
展开的数组显示最多1000个元素的实际值。但是,这可能会造成混淆。此外,一个数组可以包含1000个以上的元素。这样有助于限制显示元素的范围。您可以通过以下方式在在线模式下执行此操作。
.限制监视范围
要求:应用程序正在运行。 它包含具有1000个以上元素的多维数组变量。例如:arrBig : ARRAY [0..100, -9..10, -19..20] OF INT;
1. | 单击arrBig变量的数据类型列字段。
| ||
2. | 将开始指定为[1, -9, -19]。 | ||
3. | 将结束指定为[1, 10, 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
除了变量值之外,还可以监视功能块或程序中从属属性的值。
为此,请将{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();