Skip to main content

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

での出力 メッセージ ビュー:

  • sa_icon_message.png SA0167: 一時関数ブロック インスタンス: 'methafb'