Attribute monitoring

概述

此属性 pragma 使您可以获取在 IEC 编辑器的在线视图或在监视列表中监控的属性和函数调用结果。

监控属性

在属性定义上方的行中添加 pragma。然后,属性变量的名称、类型和值将显示在使用该属性的 POU 的大纲视图中,或者显示在监视列表中。在其中,您还可以输入准备好的值以强制使用属于该属性的变量。

针对变量监控准备的属性示例

监控视图示例

监控属性变量的当前值

有两种不同的方法来监控属性变量的当前值。对于特定用例,请仔细思考哪个属性适合于实际获取所需值。这将取决于对变量的操作是否是在属性中实现:

1. Pragma {attribute 'monitoring':='variable'}

将为属性创建一个隐式变量,只要应用程序调用 set 或 get 方法,此隐式变量就会获取当前属性值。将监控在此隐式变量中存储的最新值。

语法

{attribute 'monitoring':='variable'}

2. Pragma {attribute 'monitoring':=‘call'}

只能将此属性用于返回简单数据类型或指针的属性,不能用于结构化类型。

要监控的值通过直接调用属性来读取或写入:运行时系统的监控服务执行属性函数的 GetSet 方法,包括属性的实现部分。

注: 在选择此监控类型而不是使用中间变量(参见 1. Pragma)时,应考虑因属性内实现的任何操作的潜在副作用。
注: monitoring pragma 还通过符号配置来求值。如果指定了值 variable,那么在符号配置配置中,只能对属性执行读取访问。

语法

{attribute 'monitoring':='call'}

监控函数调用结果

您可以对能够解译为 4 字节数字值(例如,INTSHORTLONG)的任何常量值使用函数调用监控。对于其他输入参数(例如 BOOL),请使用变量,而非常量参数。请在函数声明上方的行中添加 {attribute 'monitoring':='call'} pragma。然后,您可以在 POU 的大纲视图中的文本编辑器视图中监控此变量,在其中,某个变量被分配函数调用的结果。出于相同目的,您还可以向观察列表中添加变量。要获取观察视图中立即提供的变量,请执行命令添加观察列表

示例 1:包含属性 'monitoring' 的函数 FUN2FUN_BOOL2

示例 2:在程序 POU 中调用函数 FUN2FUN_BOOL2

示例 3:在线模式下的函数调用:

通过隐式调用外部函数来监控变量

要通过隐式调用外部函数来监控变量,必须满足以下条件:

  • 该函数以 {attribute 'monitoring' := 'call'} 来标记。

  • 该函数标记为一直连接

  • 该函数以 {attribute 'monitoring_instead' := 'MyExternalFunction(a,b,c)'}. 来标记。

  • a,b,c 是整数值并且与要调用的函数的输入参数相匹配。

注: 不支持强制或写入函数。可以通过为充当内部强制标志的特定函数添加其他输入参数来隐式实现强制。
注: 在微型运行时系统上无法进行函数监控。