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