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
PROGRAM PLC_PRG VAR iVvar1 AT %QB21: INT; dwVar2 AT %QD5: DWORD; END_VAR
Ausgabe unter Ansicht Meldungen:
Die folgenden Variablen greifen auf denselben Speicher zu:
SA0028: iVar1 AT %QB21
SA0028: dwVar2 AT %QD5
Für weitere Informatinen siehe: