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

例 101. 例
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();
例 102. 例
関数呼び出しには、それ自体のインスタンスへの参照が必要です。
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)にはまだ実装されていません。