该pragma的作用是,可以在 IEC 编辑器的联机视图或监控列表中监控属性值或函数调用。有两种可能的属性值:'variable'
和 'call'
语法
{attribute 'monitoring' := 'variable'} {attribute 'monitoring' := 'call'}
监控编程对象及其属性
在功能块或程序的联机视图中,除了本地变量外,还可以监控下级属性。这样就可以监控Get
和Set
方法的值。
在属性块的声明中插入 pragma{attribute 'monitoring' := 'variable'}
或{attribute 'monitoring' := 'call'}
。属性的当前值会自动显示在 IEC 编辑器或监控列表中。
示例
在联机模式下,PLC_PRG
对象会在 ST 编辑器中显示调用位置的Minutes
属性值。这是因为 pragma{attribute 'monitoring' := 'variable'}
位于Minutes
属性的声明中。

为每个应用程序仔细检查哪个属性 pragma 适合显示所需值。这取决于是否在属性中对变量执行进一步操作。
1.Pragma{attribute 'monitoring':='variable'}
:
为属性创建一个隐式变量,当应用程序调用Set
或Get
方法时,该变量将始终获得当前的属性值。最后存储在该变量中的值将显示在监控中。
2.Pragma{attribute 'monitoring':='call'}
:
该属性只能用于返回简单数据类型或指针的属性,不能用于结构化类型。要监控的值可通过直接调用属性来读取或写入。这意味着运行时的监控服务会执行该属性的Get
或Set
方法。




注意

在插入用于监控的 pragma{attribute 'monitoring':='call'}
时,必须注意可能产生的副作用。如果在属性中执行额外的操作,就会产生此类副作用。




注意

pragma{attribute 'monitoring'}
也会对符号配置进行评估。'variable'
的值只能进行读访问。
使用上下文菜单命令“Add Watch” ,光标当前所在的变量将直接应用到在线模式下的监控列表中。
不支持强制或写入函数。不过,您可以通过为相应函数添加一个额外的输入参数来隐式地实现强制,该参数可用作内部强制标志。
紧凑型运行时无法进行功能监控。
另见