Skip to main content

SA0037:入力変数への書き込みアクセス

入力変数を検出します (VAR_INPUT) POU 内で書き込み権限でアクセスされます。

理由:IEC 61131-3規格によると、入力変数はブロック内で変更してはなりません。このようなアクセスもエラーの原因であり、コードの保守が困難になります。次に、変数が入力として使用され、同時に補助変数として使用されることを示します。このような二重使用は避けてください。

重要性:中

47.
VAR_GLOBAL
    g_xGlob AT %QX0.0 : BOOL;
END_VAR
PROGRAM PLC_PRG
VAR_INPUT
    xVarIn1 : BOOL;
    xVarIn2 : BOOL;
END_VAR
VAR
    iCondition : INT;
END_VAR
iCondition := iCondition + INT#1;
CASE iCondition OF
    INT#1:
        g_xGlob := xVarIn1;
    INT#2:
        g_xGlob := xVarIn2;
    ELSE
        g_xGlob := FALSE;
        xVarIn1 := FALSE;       // SA0037
END_CASE

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

  • sa_icon_message.png SA0037: 入力変数 'xVarIn1' への書き込みアクセス