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
:
属性可具有额外的局部变量但是没有额外的输入,并且和功能或方法相比也不能有额外输出。