Skip to main content

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

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

Salida en el Mensajes vista:

  • sa_icon_message.png Las siguientes variables acceden a la misma memoria:

  • sa_icon_message.png SA0028: iVar1 en %QB21

  • sa_icon_message.png SA0028: dwVar2 EN %QD5