SUPER
SUPER ist eine spezielle Variable und dient der objektorientierten Programmierung.
SUPER ist der Zeiger eines Funktionsbausteins auf die Basis-Funktionsbaustein-Instanz, aus die der Funktionsbaustein erzeugt wurde. Der SUPER-Zeiger erlaubt somit auch den Zugriff auf die Implementierung der Methoden des Basis-Funktionsbausteins (Basisklasse). Für jeden Funktionsbaustein steht automatisch ein SUPER-Zeiger zur Verfügung.
Sie können SUPER nur in Methoden- und in den zugehörigen Funktionsbaustein-Implementierungen verwenden.
Dereferenzierung des Zeigers: SUPER^
Verwendung des SUPER-Zeigers: Mithilfe des Schlüsselworts SUPER rufen Sie die Implementierung der Basisklasse oder eine Methode auf, die in der Instanz der Basisklasse gültig ist.
Beispiele:
ST:
SUPER^();                 // Call of FB-body of base class
SUPER^.METH_DoIt();       // Call of method METH_DoIt that is implemented in base classFUP/CFC/LD:

|  | SUPER ist für die Anweisungsliste (AWL) nicht implementiert. | 
Verwendung von SUPER- und THIS-Zeiger:
Funktionsbaustein FB_Base:
FUNCTION_BLOCK FB_Base
VAR_OUTPUT
    nCnt : INT;
END_VARMethode FB_Base.METH_DoIt:
METHOD METH_DoIt : BOOLnCnt := -1;Methode FB_Base.METH_DoAlso:
METHOD METH_DoAlso : BOOLMETH_DoAlso := TRUE;Funktionsbaustein FB_1:
FUNCTION_BLOCK FB_1 EXTENDS FB_Base
VAR_OUTPUT
    nBase: INT;
END_VARTHIS^.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();
nBase := SUPER^.nCnt;Methode FB_1.METH_DoIt:
METHOD METH_DoIt : BOOLnCnt := 1111;    
METH_DoIt := TRUE;Methode FB_1.METH_DoAlso:
METHOD METH_DoAlso : BOOLnCnt := 123;    
METH_DoAlso := FALSE;Programm MAIN:
PROGRAM MAIN
VAR
    fbMyBase : FB_Base;
    fbMyFB_1 : FB_1;
    nTHIS    : INT;
    nBase    : INT;
END_VARfbMyBase();
nBase := fbmyBase.nCnt;
fbMyFB_1();
nTHIS := fbMyFB_1.nCnt;Siehe auch: