Skip to main content

在编程对象中调用监控

当应用程序在控制器上运行时,变量的实际值会显示在 POU 的编辑器中。这就是监控变量值的方式。

要求: 启用在线监控 选项被选中 工具 → 选项 在里面 文本编辑器 上的类别 监控 标签。

  1. 将应用程序下载到控制器并启动它。

  2. 点击 调试 → 显示模式 → 十进制.

    设置实际值的显示格式。

  3. 单击程序中的编程对象 设备 查看或 POU 看法。

    相应的编辑器打开。对于声明和实现,变量的实际值会不断刷新。

在声明编辑器中监控

_cds_img_declaration_editor_online.png

表达式 (1) 的实际值显示在 价值 第 (3) 列。

变量的注释显示在 评论 专栏 (6)。

有关显示评论的逻辑和优先级的更多信息,请参阅: ST 评论

您可以在 准备值 (4) 栏目。强制期间,实际值用红色装饰 _cds_icon_forced_variable.png 象征。

可以扩展接口引用的表达式。如果接口指向全局实例,则此全局实例显示为引用下方的第一个条目。之后,如果界面引用发生变化,则显示的引用将被折叠。

实施中的监控(在线监控)

内联监控是在实现中显示当前变量值。

根据实施语言,实施部分可能会出现以下显示:

  • 变量有一个窗口 _cds_img_ex_inline_monitoring_window.png 当前值显示在其名称之后。

    如果您为强制或写入的变量准备了值,则它们将在内联监控视图中显示在当前值之后的尖括号中。

    强制后,相应的值由 _cds_icon_forced_variable.png 象征。

  • 网络编辑器和 CFC 编辑器

    连接线根据其实际布尔值以颜色显示(蓝色表示 TRUE, 黑色表示 FALSE)。

  • LD编辑器

    触点和线圈元件也有标记。

    对于触点和线圈,准备值 (TRUE 或者 FALSE) 显示在元素旁边的小视图中。

  • 证监会编辑器

    带有值的转换 TRUE 根据其实际布尔值以颜色显示(蓝色表示 TRUE, 黑色表示 FALSE)。

    活动步骤以蓝色显示。

    强制转换值在实现中显示为红色。

  • IL 表格编辑器

    当前值显示在单独的列中。

39. 在 ST 编辑器中监控
_cds_img_inline_monitoring_st.png


40. 在 LD 编辑器中监控
_cds_img_monitoring_in_ld.png


41. 在 SFC 编辑器中监视
_cds_img_monitoring_in_sfc.png


提示

您可以在 工具 → 选项, 在里面 文本编辑器 类别,在 监控 标签。

阵列的部分监控

扩展数组显示最多 1000 个元素的实际值。但是,这可能会令人困惑。此外,一个数组可以包含超过 1000 个元素。然后限制显示元素的范围是有帮助的。您可以通过以下方式在在线模式下执行此操作。

过程. 限制监控范围

要求:应用程序正在运行。它包含一个具有 1000 多个元素的多维数组变量。

例子: arrBig : ARRAY [0..100, -9..10, -19..20] OF INT;

  1. 在字段中单击 数据类型arrBig 多变的。

    监测范围 对话框打开。

  2. 指定值 [1, -9, -19] 为了 开始.

  3. 指定值 [1, 10, 20] 为了 结尾.

    800 个数组元素的实际值显示在声明编辑器中。范围仅限于索引的元素 [1, <i>, <j>] i 从 -9 到 10, j 从 -19 到 20。

监视功能块

当您在在线模式下双击功能块的编辑器视图时,将打开一个对话框,您可以在其中选择查看基本实现或特定实例。

如果选择基本实现,则代码在编辑器中显示,没有当前值。现在在基本实现中设置断点。如果执行在那里停止,则显示程序流中首先处理的实例的当前值。现在您可以逐步遍历所有实例。

如果您选择其中一个实例,则编辑器将打开并显示功能块实例的代码。当前值显示在声明中,如果适用,在实施中显示,并不断更新。

监控属性

您可以监控变量 _cds_icon_interface_property.png 属性对象通过在在线模式下在函数中设置断点。停在那里时,会显示当前值。

除了您自己的值之外,还会自动显示上级实例的变量值。在财产的声明部分, THIS 指向上级实例的指针出现在具有当前数据类型信息和值的第一行。

42. 例子

代码

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
_cds_img_monitoring_property.png


监视上级编程对象中的属性访问

您可以监控下属的值 _cds_icon_interface_property.png 除了变量值之外,功能块或程序中的属性。

为此,请添加 pragma {attribute 'monitoring' = 'variable'} 或者 {attribute 'monitoring' = 'call'} 到声明中的从属属性对象。如果在运行时打开上级程序实例或功能块实例,则除了当前变量值外,当前属性值也会显示在编辑器中。

监控方法

您可以监控变量 _cds_icon_method.png 方法对象通过在在线模式期间在方法中设置断点。停在那里时,会显示当前值。

除了您自己的值之外,还会自动显示上级实例的变量值。在方法的声明部分, THIS 指向上级实例的指针与当前数据类型信息和值一起出现在第一行。

43. 例子

代码

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();
_cds_img_monitoring_method.png


监控功能

您可以通过在在线模式下在函数中设置断点来监视函数对象中的变量。停在那里时,会显示当前值。

监控函数调用的返回值

在 POU 的 ST 编辑器中,当前返回值在调用函数的 POU 的位置显示为内联监控。

. 必须满足以下条件:
  • 该值可以解释为 4 字节数值。例子: INT, SINT, 或者 LINT.

  • 语用 {attribute 'monitoring' := 'call'} 被插入到函数中。