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_VAR
PROGRAM 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_VAR
PROGRAM 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'