SA0028: Áreas de memoria superpuestas
Detecta las líneas de código donde dos o más variables reservan la misma memoria.
Justificación: Cuando dos variables reservan la misma memoria, el código puede comportarse con resultados inesperados. Esta situación debe evitarse a toda costa. Si no puede evitar utilizar un valor en diferentes interpretaciones (por ejemplo, una vez como DINT
y otra vez como REAL
), entonces deberías definir un UNION
. También puede utilizar un puntero para acceder a un valor con un tipo diferente sin que se convierta el valor.
Importancia: Alta
PROGRAM PLC_PRG VAR iVvar1 AT %QB21: INT; dwVar2 AT %QD5: DWORD; END_VAR
Salida en el Mensajes vista:
Las siguientes variables acceden a la misma memoria:
SA0028: iVar1 en %QB21
SA0028: dwVar2 EN %QD5
Para más información, ver: