Skip to main content

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

Beispiel 25. Beispiel
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:

  • sa_icon_message.png SA0013: Deklaration von 'iVar1' verdeckt Symbol 'GVL.iVar1'

  • sa_icon_message.png SA0013: Deklaration von 'xVar3' verdeckt Symbol 'GVL.xVar3'



Beispiel 26. Beispiel

Funktionsbaustein FB_Pou hat die Aktion ACT und die Methode METH und lokale Variablen mit gleichen Namen.

_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();

Ausgabe unter Ansicht Meldungen:

  • sa_icon_message.png SA0013: Deklaration von 'ACT' verdeckt Symbol 'FB_Pou.ACT'

  • sa_icon_message.png SA0013: Deklaration von 'METH' verdeckt Symbol 'FB_Pou.METH'