ポインター: THIS
The THIS ポインタは、オブジェクト指向プログラミングに使用される特別な変数です。
THIS 自身の関数ブロックインスタンスへの関数ブロックのポインタです。 A THIS ポインタは、機能ブロックごとに自動的に使用可能になります。使用できます THIS メソッドと機能ブロックでのみ。 THIS カテゴリの入力アシスタントでの実装に使用できます キーワード。
ポインターの間接参照: THIS^
. の使用
THIS ポインターローカル変数がメソッド内の関数ブロック変数をオーバーライドする場合は、関数ブロック変数を次のように設定できます。
THISポインタ。以下の例を参照してください(1)関数ブロック自体の関数ブロックインスタンスへのポインタが、関数で使用するために参照されている場合。 (以下の例(2)を参照)
例 101. 例
ST
THIS^.METH_DoIt();
FBD / CFC / LD

例 102. 例
The iVarB ローカル変数は 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();例 103. 例
関数呼び出しには、それ自体のインスタンスへの参照が必要です。
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 命令リスト(IL)にはまだ実装されていません。