Skip to main content

SA0038: Acceso de lectura a la variable de salida

Detecta variables de salida (VAR_OUTPUT) a los que se accede con permiso de lectura dentro de la POU

Justificación: Según la norma IEC 61131-3, está prohibido leer una salida dentro de una POU. Esta es una indicación de que el producto no solo se utiliza como producto, sino también como una variable temporal para resultados intermedios. Debe evitarse este tipo de doble uso.

Importancia: Baja

ejemplo 48. Ejemplo
VAR_GLOBAL
    g_xGlob AT %QX0.0 : BOOL ;
    g_iGlob AT %QW1 : INT ;
END_VAR
PROGRAM PLC_PRG
VAR_OUTPUT
    xVarOut1:BOOL;
    xVarOut2:INT;
    xVarOut3:INT;
END_VAR
VAR
    iCondition : INT;
END_VAR
iCondition := iCondition + INT#1;
CASE iCondition OF
    INT#1:
        xVarOut1 := g_xGlob;
        xVarOut2 := g_iGlob;
    INT#2:
        xVarOut3 := xVarOut2;    // SA0038
    ELSE
        xVarOut1 := FALSE;
        g_xGlob := xVarOut1;    // SA0038
        xVarOut2 := INT#0;
        xVarOut3 := INT#-1;
END_CASE

Salida en el Mensajes vista:

  • sa_icon_message.png SA0038: Acceso de lectura a la variable de salida 'xVarOUT2'

  • sa_icon_message.png SA0026: SA0038: Acceso de lectura a la variable de salida 'xVarOUT1'