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_VARPROGRAM PLC_PRG
VAR_OUTPUT
xVarOut1:BOOL;
xVarOut2:INT;
xVarOut3:INT;
END_VAR
VAR
iCondition : INT;
END_VARiCondition := 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_CASESalida en el Mensajes vista:
SA0038: Acceso de lectura a la variable de salida 'xVarOUT2'
SA0026: SA0038: Acceso de lectura a la variable de salida 'xVarOUT1'