THIS işaretçisi, nesne yönelimli programlama için kullanılan özel bir değişkendir.
THIS bir fonksiyon bloğunun kendi fonksiyon bloğu örneğine işaretçisidir. Her fonksiyon
bloğu için otomatik olarak bir THIS işaretçisi mevcuttur. THIS adresini yalnızca yöntemlerde ve fonksiyon bloklarında kullanabilirsiniz. THIS adresi, «Anahtar Kelimeler» kategorisindeki Giriş Asistanında uygulama için kullanılabilir.
İşaretçinin yeniden referanslanması: THIS^
THIS işaretçisinin kullanımı
-
Lokal bir değişken bir yöntemdeki bir fonksiyon bloğu değişkenini geçersiz kılıyorsa, fonksiyon bloğu değişkenini
THISişaretçisi ile ayarlayabilirsiniz. Aşağıdaki örneğe bakınız (1) -
Fonksiyon bloğunun kendi fonksiyon bloğu örneğinin işaretçisine bir fonksiyonda kullanılmak üzere başvurulursa. (Aşağıdaki örneğe bakınız (2))
Örnekler
ST
THIS^.METH_DoIt();
FBD/CFC/LD

Örnek
iVarB lokal değişkeni, iVarB fonksiyon bloğu değişkenini geçersiz kılar.
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();
Örnek
Bir fonksiyon çağrısı kendi örneğine referans gerektirir.
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 talimat listesi (IL) için henüz uygulanmamıştır.