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: Mit Hilfe des Schlüsselworts SUPER rufen Sie eine Methode auf, die in der Instanz der Basisklasse oder Elternklasse
gültig ist.
Beispiele
ST:
SUPER^.METH_DoIt();
FUP/CFC/LD

THIS ist für die Anweisungsliste (AWL) noch nicht implementiert.
Beispiele
Verwendung von SUPER- und THIS-Zeiger
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;
iBas : INT;
END_VAR
myBase();
iBase := myBase.iCnt;
myFB_1();
iTHIS := myFB_1.iCnt;
Siehe auch