![]() |
提示! 这个功能只有在在当前支持特征设置的情况下才能够使用。 |
支持 面向对象的编程中方法可以用于描述一个指令序列。与函数不同的是,方法不是一个POU程序,但是必须分配给 ⇘ “功能块”。他可以被看做是一个包含当前功能块接口的一个函数。像函数一样,它有一个返回值并且可以定义自己的临时变量和参数,可以有自己的声明部分。
另外作为面向对象的一种手段, ⇘ 接口可用于组织工程中可用的方法。接口是方法的“原型”,这意味着方法是只包含接口的定义部分,但是没有实现部分;更多的,在定义部分不允许使用本地和静态变量,只能使用输入,输出,和输入输出变量。方法的实现过程必须在功能块中进行,功能块定义了接口和方法使用的 ⇘ 实施 。
通过指定POUs视图或者设备树中的一个功能块,并通过右键菜单中的
⇘
“添加对象”
来进行一个方法的添加。在“添加方法”对话框输入名称,返回类型,编程语言和访问类型(参照以下文档)。对于选择返回类型,可以使用按键获得
⇘
“输入助手...” 对话框。
“访问类型”:由于兼容性的问题,访问类型是可选的。特别的“PUBLIC”相当于没有特别的说明,或者从选择列表中选择其他的方式:
![]() |
访问类型的有效版本是V 3.4.4.0 ,在旧版本不能使用此定义。 |
确认设置之后通过“打开”方法编辑器将会打开。
语法:
METHOD <access specifier> <method name> : <return data type> VAR_INPUT ... END_VAR
关于怎样进行接口方法的定义,请参阅 ⇘ “接口”。
⇘ 方法调用 也叫做“虚拟函数调用”。请参阅 ⇘ “方法调用”。
![]() |
提示! 所有方法的数据都是暂时的只有在有效的方法执行过程中才存在(堆栈变量)。 在一个方法的内部可以调用一个功能块实例的变量。 如果必要的话使用 ⇘ “THIS 指针”也指向当前的实例。 功能块 VAR_IN_OUT 或者 VAR_TEMP 变量不允许在方法中使用! 定义在 ⇘ “接口”中的方法只能有输入,输出和输入输出变量,没有实体(实现部分)。 方法和函数一样可以有附加输出。必须在 ⇘ “方法调用”进行分配。 |
初始化方法:一个命名为FB_init的方法通常被隐藏定义,但是也可以进行显示定义。他包含功能块定义部分的功能块初始化代码。参照 ⇘ FB_init 方法。
重新初始化:如果一个方法定义"FB_reinit" 方法作为一个功能块的实例,将会在功能块进行复制之后被调用,像 ⇘ “在线修改”在线修改一样,并重新初始化实例模块。参阅 ⇘ “FB_init,FB_reinit方法”。
退出方法:如果一个退出方法命名为 "FB_exit" ,他必须作为实函数定义,内部没有隐式说明。退出方法将在功能块的每个实例进行一个新的下载之前调用,或者在实例进行移动和删除,复位,在线修改之前。参阅: ⇘ FB_exit 方法。
属性 和 接口属性 每一个都包含一个设置或者获得 "累加器" 方法。参阅: ⇘ “属性” resp. ⇘ “接口属性”.