Skip to main content

SA0037: Acceso de escritura a la variable de entrada

Detecta variables de entrada (VAR_INPUT) a los que se accede con permiso de escritura dentro de la POU

Justificación: De acuerdo con el estándar IEC 61131-3, una variable de entrada no debe cambiarse dentro de una POU. Este tipo de acceso también es causa de errores y hace que el código sea poco fácil de mantener. Esta es una indicación de que una variable se utiliza como variable de entrada y como variable auxiliar. Debe evitarse este tipo de doble uso.

Importancia: Media

ejemplo 47. Ejemplo
VAR_GLOBAL
    g_xGlob AT %QX0.0 : BOOL;
END_VAR
PROGRAM PLC_PRG
VAR_INPUT
    xVarIn1 : BOOL;
    xVarIn2 : BOOL;
END_VAR
VAR
    iCondition : INT;
END_VAR
iCondition := iCondition + INT#1;
CASE iCondition OF
    INT#1:
        g_xGlob := xVarIn1;
    INT#2:
        g_xGlob := xVarIn2;
    ELSE
        g_xGlob := FALSE;
        xVarIn1 := FALSE;       // SA0037
END_CASE

Salida en el Mensajes vista:

  • sa_icon_message.png SA0037: Acceso de escritura a la variable de entrada 'xVarIn1'