Aiguille: THIS
le THIS pointeur est une variable spéciale utilisée pour la programmation orientée objet.
THIS est le pointeur d'un bloc fonction vers sa propre instance de bloc fonction. UNE THIS pointeur est automatiquement disponible pour chaque bloc fonction. Vous pouvez utiliser THIS uniquement dans les méthodes et dans les blocs fonctionnels. THIS est disponible pour l'implémentation dans l'assistant de saisie dans la catégorie Mots clés.
Déréférencement du pointeur : THIS^
THIS aiguilleSi une variable locale remplace une variable de bloc fonction dans une méthode, vous pouvez définir la variable de bloc fonction avec la
THISaiguille. Voir exemple ci-dessous (1)Si le pointeur vers la propre instance de bloc fonction du bloc fonction est référencé pour être utilisé dans une fonction. (Voir exemple ci-dessous (2))
ST
THIS^.METH_DoIt();
FBD/CFC/LD

le iVarB la variable locale remplace la iVarB variable de bloc fonction.
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();Un appel de fonction nécessite la référence à sa propre instance.
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();Astuce
THIS n'est pas encore implémenté pour la liste d'instructions (IL).