IEC 61131-3 标准的扩展的属性可用作一种面向对象的编程方法。其由一对访问器方法(Get、Set)组成。它们允许将 POU 或 GVL 内部声明的变量的读取或写入访问封装到函数调用中,同时保留变量访问语法。
要将属性作为对象在程序或功能块、GVL 或接口节点下插入,可在中选择节点,单击绿色加号按钮,并执行命令。作为备选方法,可右键单击节点并从上下文菜单执行命令。
在对话框中,指定、、所需以及可选择指定的 。
可使用与方法所用相同的以下访问说明符:
EcoStruxure Machine Expert 利用功能块内的继承简化面向对象的编程:当在继承自另一功能块的功能块上执行时,列出基本功能块中使用的、、和元素以供选择:
在基本功能块中定义的为 、 和 的、、和元素可供选择。您可以调整继承对象的定义。在继承对象中,将相同的分配给源元素。
为 的、、和不可选择,因为对基本功能块的访问受限。
Get 和 Set 访问器
名为访问器的两个特殊方法将自动插入中的属性对象下。如果属性只能用于写入或读取,可删除其中一个。和属性一样(请参阅之前内容),可在显式添加访问器时,通过对话框在声明部分向访问器分配访问修饰符。
Set 访问器在写入属性时被调用。
Get 访问器在读取属性时被调用。
示例:
功能块 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:
属性可具有额外的局部变量但是没有额外的输入,并且和功能或方法相比也不能有额外输出。