Il puntatore THIS è una variabile speciale utilizzata per la programmazione orientata agli oggetti.
                     
THIS è il puntatore di un blocco funzione alla sua istanza di blocco funzione. Per ogni
                     blocco funzione è automaticamente disponibile un puntatore THIS. È possibile utilizzare THIS solo nei metodi e nei blocchi funzione. THIS è disponibile per l'implementazione nell'Assistente ingressi nella categoria «Parole chiave». 
Dereferenziazione del puntatore: THIS^ 
Utilizzo del puntatore THIS  
- 
                           
Se una variabile locale sovrascrive una variabile di blocco funzione in un metodo, si può impostare la variabile di blocco funzione con il puntatore
THIS. Vedi esempio sotto (1) - 
                           
Se il puntatore all'istanza del blocco funzione viene utilizzato in una funzione. (Vedi esempio sotto (2))
 
Esempi
ST
THIS^.METH_DoIt(); 
FBD/CFC/LD

Esempio
La variabile locale iVarB sovrascrive la variabile del blocco funzione iVarB. 
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();
                     Esempio
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();
                     THIS non è ancora implementato per l'elenco delle istruzioni (IL).