Puntatore: THIS
Il THIS pointer è una variabile speciale che viene utilizzata per la programmazione orientata agli oggetti.
THIS è il puntatore di un blocco funzione alla propria istanza di blocco funzione. UN THIS il puntatore è automaticamente disponibile per ogni blocco funzione. Puoi usare THIS solo nei metodi e nei blocchi funzione. THIS è disponibile per l'implementazione nell'Input Assistant nella categoria Parole chiave.
Dereferenziazione del puntatore: THIS^
THIS puntatoreSe una variabile locale sostituisce una variabile del blocco funzione in un metodo, è possibile impostare la variabile del blocco funzione con il
THISpuntatore. Vedi esempio sotto (1)Se si fa riferimento al puntatore all'istanza del blocco funzione del blocco funzione per l'uso in una funzione. (Vedi esempio sotto (2))
ST
THIS^.METH_DoIt();
FBD/CFC/LD

Il iVarB la variabile locale ha la precedenza su iVarB variabile del blocco funzione.
FUNCTION_BLOCK fbA
VAR_INPUT
iVarA: INT;
END_VAR
iVarA := 1;
FUNCTION_BLOCK fbB EXTENDS fbA
VAR_INPUT
iVarB: INT := 0;
END_VAR
iVarA := 11;
iVarB := 2;
METHOD DoIt : BOOL
VAR_INPUT
END_VAR
VAR
iVarB: INT;
END_VAR
iVarB := 22; // The local variable iVarB is set.
THIS^.iVarB := 222; // The function block variable iVarB is set even though iVarB is obscured.
PROGRAM PLC_PRG
VAR
MyfbB: fbB;
END_VAR
MyfbB(iVarA:=0, iVarB:= 0);
MyfbB.DoIt();Una chiamata di funzione richiede il riferimento alla propria istanza.
FUNCTION funA
VAR_INPUT
pFB: fbA;
END_VAR
...;
FUNCTION_BLOCK fbA
VAR_INPUT
iVarA: INT;
END_VAR
...;
FUNCTION_BLOCK fbB EXTENDS fbA
VAR_INPUT
iVarB: INT := 0;
END_VAR
iVarA := 11;
iVarB := 2;
METHOD DoIt : BOOL
VAR_INPUT
END_VAR
VAR
iVarB: INT;
END_VAR
iVarB := 22; //The local variable iVarB is set.
funA(pFB := THIS^); //funA is called via THIS^.
PROGRAM PLC_PRG
VAR
MyfbB: fbB;
END_VAR
MyfbB(iVarA:=0 , iVarB:= 0);
MyfbB.DoIt();Suggerimento
THIS non è ancora implementato per l'elenco di istruzioni (IL).