属性

概述

IEC 61131-3 的扩展的属性可用作面向对象的编程的方法。其由一对访问器方法(GetSet)组成。它们允许将 POU 或 GVL 内部声明的变量的读取或写入访问封装到函数调用中,同时保持变量访问语法。

要将属性作为对象在程序功能块GVL接口节点下插入,可在应用程序树中选择节点,单击绿色加号按钮,并执行命令属性。作为备选方法,可右键单击节点并从上下文菜单执行命令添加对象 > 属性

添加属性对话框中,指定名称返回类型、所需实现语言以及可选择指定的 Access Specifier

可使用和用于方法的一样的访问说明符:

oPUBLIC

oPRIVATE 

oPROTECTED

oINTERNAL

注意: 也可在接口中声明属性。

EcoStruxure Machine Expert 利用功能块内的继承简化面向对象的编程:当在继承自另一功能块的功能块上执行添加对象时,列出基本功能块中使用的动作方法属性转换元素以供选择:

o在基本功能块中定义的访问说明符PUBLICPROTECTED 和 INTERNAL动作方法属性转换元素可供选择。您可以调整继承对象的定义。在继承对象中,将相同的访问说明符分配给源元素。

o访问说明符PRIVATE动作方法属性转换不可选择,因为对基本功能块的访问受限。

属性的 Get 和 Set 访问器

名为访问器的两个特殊方法将自动插入应用程序树中的属性对象下。如果属性只能用于写入或读取,可删除其中一个。和属性一样(请参阅之前内容),可在显式添加访问器时,通过添加对象对话框在声明部分向访问器分配访问修饰符。

oSet 访问器在写入属性时被调用。

oGet 访问器在读取属性时被调用。

示例:

功能块 FB1 具有使用本地变量 milli 的属性 seconds。该变量由属性 Get 和 Set 确定:

Get 实现示例

seconds := milli / 1000; 

Set 实现示例

milli := seconds * 1000; 

您可写入功能块的属性(Set 方法),例如通过 fbinst.seconds := 22; 来写入。

fbinst 是 FB1 的实例)。

您可读取功能块的属性(Get 方法),例如通过 testvar := fbinst.seconds; 来读取。

在下面的示例中,会将属性 seconds 分配至功能块 FB1

G-SE-0072542.1.gif-high.gif

 

 

属性可具有额外的局部变量但是没有额外的输入,并且和功能方法相比也不能有额外输出。

注意: 将方法或属性从 POU 复制或移动到接口时,将自动删除包含的实现。从接口复制或移动到 POU 时,需要指定所需的实现语言。

监控属性

可借助内联监视监视列表于在线模式下监视属性。监视属性的前提条件是在其定义的顶部添加 pragma {attribute 'monitoring' := 'variable'} (请参阅属性监控一章)。