扩展功能块
一般的
功能块的扩展基于面向对象编程中的继承概念。为此,派生功能块“扩展”基本功能块,因此除了其自身的属性外,还接收基本功能块的属性。
功能块的扩展意味着:
派生功能块包含基本功能块定义的所有数据和方法。您可以在任何上下文中使用基本功能块的实例 CODESYS 需要一个基本功能块类型的功能块。
派生功能模块可以覆盖您在基本功能模块中定义的方法。这意味着: 派生功能块可以定义与基本功能块定义的名称、输入和输出相同的方法。
提示:为覆盖从基本块继承的方法、动作、属性和转换提供了以下支持。如果在派生的构建块下方插入方法、操作等,则会出现对话框 添加对象 一个组合框,其中包含基本模块中使用的方法、操作等的选择,可以接受它们,然后只相应地调整它们。
派生功能块不得包含与基本功能块使用的名称相同的功能块变量。编译器将此报告为错误。
唯一的例外:如果您在基本功能块中使用变量作为
VAR_TEMP
声明,那么派生的功能块可以定义一个同名的变量。在这种情况下,派生功能块不能再访问基本功能块的变量。您可以在派生功能块范围内使用基本功能块的变量和方法,方法是使用
SUPER
- 直接寻址指针。
重要
不允许多重继承。
例外:一个功能块可以实现多个接口,一个接口可以扩展其他接口。
使用新功能块扩展基本功能块
要求:当前打开的项目有一个基本功能块,例如 POU_1(FB), 将增加一个新的功能模块。
选择对象 应用 在设备树中并选择菜单命令 .
对话 添加 POU 打开。
在输入字段中输入新功能模块的名称 姓 一个,例如 POU_Ex.
选择 功能块.
选择 先进的 并点击按钮
.
在入口助手中,从类别中选择 功能块 在下面 应用 用作基本功能块的 POU(FB),例如
POU_1
并点击 行.您可以选择拥有一个 访问修饰符 用于组合框中的新功能块。
从组合框中选择 实现语言 例如 结构化文本(ST) 出去。
点击 添加.
CODESYS 添加功能块
POU_Ex
进入设备树并打开编辑器。第一行说:FUNCTION_BLOCK POU_Ex EXTENDS POU_1
功能块
POU_Ex
扩展基本功能块POU_1
.
使用现有功能块扩展基本功能块
要求:当前打开的项目有一个基本功能块,例如 POU_1(FB)
,以及另一个功能块,例如 POU_Ex(FB)
.功能块 POU_Ex(FB)
还应具备基本功能块的属性。这意味着: POU_Ex(FB)
目标 POU_1(FB)
扩张。
双击设备树中的功能块
POU_Ex(FB)
.功能块的编辑器打开。
展开现有的顶行条目
FUNCTION_BLOCK POU_Ex
和EXTENDS POU_1
.功能块 POU_Ex 扩展了基本功能块
POU_1
.
生成继承 POU 时的输入支持
当你进行面向对象的编程并使用继承时 (EXTENDS
关键字)的 POU,您可以通过以下方式获得支持:
当您在派生自基本 POU 的 POU 下插入操作、属性、方法或转换时, 添加 … 对话框打开。然后名称的输入字段扩展到一个列表框。列表框包含从基本 POU 中可用的动作、属性、方法或转换中进行的有效选择。例如,现在您可以轻松地接受基本 POU 的方法,然后将其调整为 POU 的派生函数。
带有访问修饰符的方法和属性 PRIVATE
此处未列出,因为它们也不是继承的。带有访问修饰符的方法和属性 PUBLIC
接受派生的 POU 时自动获得一个空白的访问修饰符字段,这在功能上意味着相同的事情。
