SA0167:一時的な機能ブロックインスタンス
このチェックにより、一時変数として宣言されている機能ブロックインスタンスが決定されます。これは、メソッド内、関数内、またはとしてのインスタンスに影響します VAR_TEMP
宣言されているため、各処理サイクルまたは各ブロック呼び出しで再初期化されます。
理由:
機能ブロックには、通常、複数の PLC サイクルにわたって維持される状態があります。スタック上のインスタンスは、関数呼び出しの間のみ存在します。したがって、インスタンスを一時変数として作成することはほとんど意味がありません。
第 2 に、関数ブロック インスタンスは多くの場合大きく、スタック上に多くのスペースを必要とします (通常はコントローラーに制限されます)。
第三に、初期化と、多くの場合、機能ブロックのスケジューリングにも時間がかかることがあります。
重要性:中
例 125. 例
PROGRAM PLC_PRG VAR END_VAR VAR_TEMP yafb: AFB; END_VAR
FUNCTION Fun : INT VAR_INPUT END_VAR VAR funafb: AFB; END_VAR
METHOD METH : INT VAR_INPUT END_VAR VAR methafb: AFB; // SA0167 END_VAR
での出力 メッセージ ビュー:
SA0167: 一時関数ブロック インスタンス: 'methafb'