Skip to main content

SA0004:出力への複数の書き込みアクセス

複数の場所に書き込まれる出力を検索します。

理論的根拠:出口がコード内のさまざまな場所に書き込まれると、保守性が低下します。その場合、どの書き込みアクセスが実際にプロセスに影響を与えるのかは不明です。補助変数で出力変数の計算を行い、サイクルの最後の1つのポイントで計算値を割り当てることをお勧めします。

重要性:高い

PLCopenルール:CP12

ヒント

出力変数にアクセスするときにエラーはスローされません(VAR_IN_OUT)のさまざまなブランチで IF また CASE 指示が書かれています。

このルールは、プラグマを介してオフにすることはできません。

17.
VAR_GLOBAL
    g_xVar AT %QX0.0 : BOOL ;
    g_iTest AT %QW0 : INT ;
END_VAR
PROGRAM PLC_PRG
IF g_iCondition < INT#0 THEN
    g_xVar := TRUE;
    g_iTest := INT#12;
END_IF

CASE g_iCondition OF
    INT#1:
        g_xVar := FALSE;
    INT#2:
        g_iTest := INT#11;
    ELSE
        g_xVar := TRUE;
        g_iTest := INT#9;
END_CASE

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

  • sa_icon_message.png SA0004: 出力 '%QX0.0' に対する複数の書き込みアクセス

  • sa_icon_message.png SA0004: 出力 '%QW0' に対する複数の書き込みアクセス