SA0013: Deklarationen mit gleichem Variablennamen
Ermittelt Variablen, deren Name bereits von anderen Variablen verwendet wird (beispielsweise globale und lokale Variablen mit gleichen Namen). Äußerem werden Variablen ermittelt, deren Namen von Funktionen, Aktionen, Methoden oder Eigenschaften innerhalb des gleichen Zugriffsbereichs verwendet werden. Es werden auch Variablen erkannt, die in einer GVL in der Ansicht Geräte und in einer GVL im POUs-Pool deklariert sind. Dafür muss jedoch die GVL der Ansicht POUs im Applikationsprogramm verwendet werden.
Begründung: Gleiche Namen können beim Lesen des Codes verwirrend sein, und sie können zu Fehlern führen, wenn unbeabsichtigt auf das falsche Objekt zugegriffen wird. Es wird empfohlen, Namenskonventionen zu verwenden, deren Einhaltung solche Situationen vermeidet.
PLCopen-Regel: N5/N9
Wichtigkeit: Mittel
VAR_GLOBAL
xVar1 : BOOL;
iVar3 : INT;
END_VARPROGRAM PLC_PRG
VAR
xVar1 : BOOL; // SA0013
iVar3 : INT; // SA0013
END_VAR
xVar1 := NOT GVL.xVar1; iVar3 := iVar3 + INT#2; iVar3 := GVL.iVar3;
Ausgabe unter Ansicht Meldungen:
SA0013: Deklaration von 'iVar1' verdeckt Symbol 'GVL.iVar1'
SA0013: Deklaration von 'xVar3' verdeckt Symbol 'GVL.xVar3'
Funktionsbaustein FB_Pou hat die Aktion ACT und die Methode METH und lokale Variablen mit gleichen Namen.
![]() |
FUNCTION_BLOCK FB_Pou
VAR
ACT : UINT; // SA0013
METH : BYTE; // SA0013
END_VARPROGRAM PLC_PRG
VAR
fbPou : FB_Pou;
END_VAR
fbPou();
Ausgabe unter Ansicht Meldungen:
SA0013: Deklaration von 'ACT' verdeckt Symbol 'FB_Pou.ACT'
SA0013: Deklaration von 'METH' verdeckt Symbol 'FB_Pou.METH'
