Skip to main content

对象:财产

象征: _cds_icon_interface_property.png

关键词: PROPERTY

属性是 IEC 61131-3 标准的扩展,是面向对象编程的工具。

属性用于数据封装,因为它们允许外部访问数据并同时充当过滤器。为此,属性提供了访问器方法 GetSet 它允许对属性下方实例的数据进行读写访问。

您可以在程序、功能块或全局变量列表下方添加带有访问器方法的属性。点击 项目→添加对象→属性 打开 添加属性 对话。

提示

您可以添加一个 接口属性 界面下方。

当您复制插入到 POU 下方的属性并将其添加到接口下方时,或者如果您将属性移到那里,包含的实现将自动删除。

对话框:添加属性

功能: 当对话框关闭时,在选定的 POU 下创建一个新属性。

称呼项目→添加对象→属性;上下文菜单

要求:一个程序(PRG), 一个功能块 (FUNCTION_BLOCK) 或全局变量列表 (GVL) 被选择在 POU 查看或 设备 看法。

姓名

属性的名称(标识符)

例子: prop_iA

返回类型

返回值的默认类型或结构化类型

例子: INT

实现语言

例子: 结构化文本 (ST)

访问说明符

控制对数据的访问

民众 或未指定

访问不受限制。

私人的

访问仅限于程序、功能块或 GVL。

该对象被标记为 (private) 在 POU 或设备视图中。声明包含关键字 PRIVATE.

受保护

访问仅限于程序、功能块或 GVL 及其派生。

该对象被标记为 (protected) 在 POU 或设备视图中。声明包含关键字 PROTECTED.

内部的

访问仅限于命名空间(库)。

该对象被标记为 (internal) 在 POU 或设备视图中。声明包含关键字 INTERNAL.

抽象的

standard icon: 标识该属性没有实现,该实现由派生的FB提供

添加

在选定对象下方和访问器方法下方添加一个新属性 GetSet

注意:当您选择一个属性时,您还可以通过单击显式添加以前删除的访问器 添加对象.

编辑:财产

您可以在编辑器中对数据访问进行编程。代码可以包含额外的局部变量。但是,它不得包含任何额外的输入变量或(与函数或方法相反)输出变量。

522. 例子
_cds_img_property.png

功能块 FB_A

FUNCTION_BLOCK FB_A
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
    iA : INT;
END_VAR

iA := iA + 1;

财产 prop_iA

PROPERTY PUBLIC prop_iA : INT

访问器方法 FB_A.prop_iA.Get

prop_iA := iA;

访问器方法 FB_A.prop_iA.Set

iA := prop_iA;
PROGRAM PLC_PRG
VAR
        fbA : FB_A;
        iVar: INT;
END_VAR

fbA();
IF fbA.prop_iA > 500 THEN
        fbA.prop_iA := 0;
END_IF
iVar := fbA.prop_iA;


获取和设置访问器

的召唤 Set 访问器被写入属性。然后它以与输入参数相同的方式使用。调用 Get 访问器时,将读取该属性。它的使用方式与输出参数相同。在每种情况下,访问都通过访问修饰符(限定符)进行限制。结果,相应地识别对象。

当属性以只读或只写方式访问时,您可以删除不需要的访问器。

您可以通过选择属性并单击来显式添加访问器 添加对象.一个对话框打开,要么 添加获取访问器 要么 添加设置访问器.在那里您可以设置实现语言和访问权限。

60. 对话框:添加获取(设置)访问器

实现语言

例子: 结构化文本 (ST)

访问说明符

声明部分的限定符

PUBLIC 或未指定

访问不受限制。

PRIVATE

访问仅限于程序、功能块或 GVL。

该对象被标记为 (private) 在 POU 或设备视图中。声明包含关键字。

PROTECTED

对该属性的访问仅限于程序、功能块或 GVL 及其派生项。声明包含关键字。

该对象被标记为 (protected) 在 POU 或设备视图中。

INTERNAL

对该方法的访问仅限于命名空间(库)。

该对象被标记为 (internal) 在 POU 或设备视图中。声明包含关键字。

添加

添加访问器方法 Get 要么 Set 在所选属性下方。



在线模式下监控属性

下列 语用 用于在线模式下监控属性。您将它们插入到属性定义的顶部位置:

  • {attribute 'monitoring' := 'variable'}

    每次访问该属性时, CODESYS 将实际值保存到变量并显示该变量的值。如果代码中不再对该属性进行访问,则此值可能会过时。

  • {attribute 'monitoring' := 'call'}

    每一次 显示值, CODESYS 调用代码 Get 访问者。如果此代码包含副作用,则监控会执行副作用。

. 您可以借助以下功能监控属性。
  • 在线监控

    要求: 启用在线监控 选项被选中 文本编辑器 的类别 选项 对话。

  • 观察名单

生成继承 POU 时的输入支持

当你进行面向对象的编程并使用继承时 (EXTENDS 关键字)的 POU,您可以通过以下方式获得支持:

当您在派生自基本 POU 的 POU 下插入操作、属性、方法或转换时, 添加 … 对话框打开。然后名称的输入字段扩展到一个列表框。列表框包含从基本 POU 中可用的动作、属性、方法或转换中进行的有效选择。例如,现在您可以轻松地接受基本 POU 的方法,然后将其调整为 POU 的派生函数。

带有访问修饰符的方法和属性 PRIVATE 此处未列出,因为它们也不是继承的。带有访问修饰符的方法和属性 PUBLIC 接受派生的 POU 时自动获得一个空白的访问修饰符字段,这在功能上意味着相同的事情。

有关更多信息,请参阅: 财产方法过渡行动

523. 例子
_cds_img_input_wizzard_for_blocks.png