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
THIS
aiguille. 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).