SUPER
是一个特殊变量,用于面向对象编程。
SUPER
是指向基本功能块实例的功能块指针,该功能块就是由它生成的。因此,SUPER
指针还允许访问基本功能块(基本类)方法的实现。每个功能块都会自动提供一个SUPER
指针。
您只能在方法和相关功能块实现中使用SUPER
。
取消引用指针 SUPER^
使用SUPER
指针:借助关键字SUPER
,可以调用在基本类或父类实例中有效的方法。
示例
ST:
SUPER^.METH_DoIt();
FBD/CFC/LD

THIS
尚未在指令列表 (IL) 中实施。
示例
使用SUPER
和THIS
指针
FUNCTION_BLOCK FB_Base VAR_OUTPUT iCnt : INT; END_VAR METHOD METH_DoIt : BOOL iCnt := -1; METHOD METH_DoAlso : BOOL METH_DoAlso := TRUE; FUNCTION_BLOCK FB_1 EXTENDS FB_Base VAR_OUTPUT iBase : INT; END_VAR THIS^.METH_DoIt(); //Call of the methods of FB_1 THIS^.METH_DoAlso(); SUPER^.METH_DoIt(); //Call of the methods of FB_Base SUPER^.METH_DoAlso(); iBase := SUPER^.iCnt; METHOD METH_DoIt : BOOL iCnt := 1111; METH_DoIt := TRUE; PROGRAM PLC_PRG VAR myBase : FB_Base; myFB_1 : FB_1; iTHIS : INT; iBase : INT; END_VAR myBase(); iBase := myBase.iCnt; myFB_1(); iTHIS := myFB_1.iCnt;