SA0037: Accesso in scrittura alla variabile di ingressoPermalink

Rileva le variabili di input (VAR_INPUT) a cui si accede con autorizzazione di scrittura all'interno del POU.

Giustificazione: Secondo la norma IEC 61131-3, una variabile di ingresso non deve essere modificata all'interno di un POU. Questo tipo di accesso è anche causa di errori e rende il codice poco manutenibile. Questo indica che una variabile viene utilizzata sia come variabile di input che come variabile ausiliaria. Questo tipo di doppio uso dovrebbe essere evitato.

Importanza: Medio

Esempio

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

--> SA0037: Write access to input variable 'xVarIn1'