符号:
关键字:属性
属性是IEC 61131-3标准的扩展,是用于数据封装的面向对象编程的工具。属性用于数据封装,因为它们允许外部访问数据并同时充当过滤器。为此,属性提供访问器方法Get和Set并允许对该属性下实例的数据进行读写访问。
您可以在程序,功能块或全局变量列表下方添加具有访问器方法的属性。单击打开添加属性对话框。
|
您可以在界面下方添加界面属性。 当您复制插入到POU下方的属性并将其添加到接口下方时,或者如果您将该属性移到接口的下方,则会自动删除包含的实现。 |
对话框‘添加属性’
功能:关闭对话框时,在所选POU下方创建一个新属性。
调用:菜单栏:;上下文菜单
要求:在POUs视图或设备视图中选择了程序(PRG),功能块(FUNCTION_BLOCK)或全局变量列表(GVL)。
名称 | 属性的名称(标识符) |
返回类型 | 返回值的默认类型或结构化类型 例:BOOL |
实现语言 | 例:结构化文本(ST) |
| |
访问说明符 | 控制对数据的访问 |
PUBLIC或未指定 | 访问不受限制。 |
PRIVATE | 访问仅限于程序,功能块或GVL。 该对象在POU或设备视图中标记为(private)。该声明包含关键字PRIVATE。 |
PROTECTED | 访问仅限于程序,功能块或GVL及其派生类。 该对象在POU或设备视图中标记为(protected)。该声明包含关键字PROTECTED。 |
INTERNAL | 访问仅限于名称空间(库)。 该对象在POU或设备视图中标记为(internal)。该声明包含关键字INTERNAL。 |
| |
Abstract | :标识该属性没有实现,并且该实现由派生的FB提供 |
添加 | 在所选对象的下方以及访问器方法Get和Set的下方添加一个新属性。 注意:选择属性时,还可以通过单击添加对象来显式添加以前删除的访问器。 |
“属性”编辑器
您可以在编辑器中对数据访问进行编程。该代码可以包含其他局部变量。但是,它不得包含任何其他输入变量或(与函数或方法相对)输出变量。
.例
.功能块
FUNCTION_BLOCK fb_A
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
iA : INT;
iB : INT;
END_VAR
iA := iA + 1;
.属性Value_A
PROPERTY PUBLIC Value_A : INT
.访问器方法fb_A.Value_A.Get
VAR
END_VAR
Value_A := iA;
.访问器方法fb_A.Value_A.Set
VAR
END_VAR
iB := Value_A;
Get and
Set访问器
调用Set访问器时,将写入属性。然后以与输入参数相同的方式使用它。调用Get访问器时,将读取属性。然后以与输出参数相同的方式使用它。通过访问说明符来限制访问,并相应地标记对象。
当属性以只读或只写方式访问时,可以删除不需要的访问器。
您可以通过选择属性并单击添加对象来显式添加访问器。将打开一个对话框,即添加Get访问器或添加Set访问器。在那里您可以设置实现语言和访问权限。
.添加Get(Set)访问器对话框
实现语言 | 示例:结构化文本(ST) |
| |
访问说明符 | |
PUBLIC或未指定 | 访问不受限制。 |
PRIVATE | 访问仅限于程序,功能块或GVL。 该对象在POU或设备视图中标记为(private)。声明包含关键字。 |
PROTECTED | 对该属性的访问仅限于程序,功能块或GVL及其派生类。声明包含关键字。 该对象在POU或设备视图中标记为(protected)。 |
INTERNAL | 对方法的访问仅限于名称空间(库)。 该对象在POU或设备视图中标记为(internal)。声明包含关键字。 |
| |
添加 | 在所选属性下添加Get或Set访问器方法。 |
在线模式下的属性监控
提供以下实用程序以在线模式监视属性。您将它们插入到属性定义的顶部:
{attribute 'monitoring' := 'variable'}
每次访问该属性时,CODESYS将实际值保存到变量中并显示此变量的值。如果在代码中不再对属性进行访问,则此值可能会过时。
{attribute 'monitoring' := 'call'}
每次显示该值时,CODESYS都调用Get访问器的代码。如果此代码包含副作用,则监视将执行该副作用。
创建继承功能块时的输入帮助
当您进行面向对象的编程并希望对功能块使用继承时,您将获得以下支持:在继承的功能块下插入方法,动作等时,添加对象对话框将包含一个组合框,其中包含在基功能块中使用的方法,动作等的列表。这样,您可以轻松地得到基的方法定义,并将其相应地适应于功能块的继承方法。具有PRIVATE访问修饰符的方法和属性在此选择中不可用,因为它们不应被继承。当被接受到继承的功能块中时,具有PUBLIC访问修饰符的方法和属性将自动具有空白的访问修饰符字段。(从功能上讲,这是同一件事。)