Skip to main content

SA0028: Überlappende Speicherbereiche

Ermittelt die Codestellen, durch die 2 oder mehr Variablen denselben Speicherplatz belegen.

Begründung: Wenn zwei Variablen auf dem gleichen Speicherplatz liegen, kann sich der Code sehr unerwartet verhalten. Dies ist in jedem Fall zu vermeiden. Wenn es unumgänglich ist, einen Wert in verschiedenen Interpretationen zu verwenden, zum Beispiel einmal als DINT und einmal als REAL, sollten Sie eine UNION definieren. Auch über einen Pointer können Sie auf einen Wert anders getypt zugreifen, ohne dass der Wert umgewandelt wird.

Wichtigkeit: Hoch

Beispiel 40. Beispiel
PROGRAM PLC_PRG
VAR
    iVvar1 AT %QB21: INT;
    dwVar2 AT %QD5: DWORD;
END_VAR

Ausgabe unter Ansicht Meldungen:

  • sa_icon_message.png Die folgenden Variablen greifen auf denselben Speicher zu:

  • sa_icon_message.png SA0028: iVar1 AT %QB21

  • sa_icon_message.png SA0028: dwVar2 AT %QD5