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:
SA0037: Acceso de escritura a la variable de entrada 'xVarIn1'