Skip to main content

SA0013:同じ変数名の宣言

他の変数によって既に使用されている名前を持つ変数を検出します (たとえば、同じ名前を持つグローバル変数とローカル変数)。同じアクセス範囲内で関数名、アクション名、メソッド名、またはプロパティ名が使用されている変数も検出されます。の GVL で宣言された変数も検出されます。 デバイス ビューまたは POU プール内で。ただし、この場合、 POU ビューはアプリケーション プログラムで使用する必要があります。

理論的根拠:同じ名前はコードを読み取るときに混乱する可能性があり、間違ったオブジェクトに誤ってアクセスするとエラーが発生する可能性があります。このような状況を回避する命名規則を使用することをお勧めします。

PLCopenルール:N5 / N9

重要性:中

25.
VAR_GLOBAL
    xVar1 : BOOL;
    iVar3 : INT;
END_VAR
PROGRAM PLC_PRG
VAR
    xVar1 : BOOL;  // SA0013
    iVar3 : INT;   // SA0013
END_VAR
xVar1 := NOT GVL.xVar1;
iVar3 := iVar3 + INT#2;
iVar3 := GVL.iVar3;

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

  • sa_icon_message.png SA0013: 'iVar1' の宣言によりシンボル 'GVL.iVar1' が非表示になります

  • sa_icon_message.png SA0013: 'xVar3' の宣言によりシンボル 'GVL.xVar3' が非表示になります



26.

FB_Pou ファンクションブロックには ACT アクション、 METH メソッドと同じ名前のローカル変数。

_san_rule_0013_fb.png
FUNCTION_BLOCK FB_Pou
VAR
    ACT : UINT;  // SA0013
    METH : BYTE; // SA0013
END_VAR
PROGRAM PLC_PRG
VAR
    fbPou : FB_Pou;
END_VAR
fbPou();

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

  • sa_icon_message.png SA0013: 'ACT' の宣言によりシンボル 'FB_Pou.ACT' が非表示になります

  • sa_icon_message.png SA0013: 「METH」の宣言によりシンボル「FB_Pou.METH」が非表示になります