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;
での出力 メッセージ ビュー:
SA0013: 'iVar1' の宣言によりシンボル 'GVL.iVar1' が非表示になります
SA0013: 'xVar3' の宣言によりシンボル 'GVL.xVar3' が非表示になります
例 26. 例
の FB_Pou
ファンクションブロックには ACT
アクション、 METH
メソッドと同じ名前のローカル変数。
![]() |
FUNCTION_BLOCK FB_Pou VAR ACT : UINT; // SA0013 METH : BYTE; // SA0013 END_VAR
PROGRAM PLC_PRG VAR fbPou : FB_Pou; END_VAR
fbPou();
での出力 メッセージ ビュー:
SA0013: 'ACT' の宣言によりシンボル 'FB_Pou.ACT' が非表示になります
SA0013: 「METH」の宣言によりシンボル「FB_Pou.METH」が非表示になります