SA0004: Accesso multiplo in scrittura all'uscita
Trova gli output scritti in più di una posizione.
Motivazione: la manutenibilità ne risente quando un'uscita viene scritta in punti diversi del codice. Non è quindi chiaro quale sia l'accesso in scrittura quello che ha effettivamente un impatto sul processo. È buona norma eseguire il calcolo della variabile di uscita in variabili ausiliarie e assegnare il valore calcolato in un punto alla fine del ciclo.
Importanza: Alta
Regola PLCopen: CP12
Suggerimento
Non viene generato alcun errore quando si accede a una variabile di output (VAR_IN_OUT) in diversi rami di IF o CASE le istruzioni sono scritte.
Questa regola non può essere disattivata tramite un pragma.
VAR_GLOBAL
g_xVar AT %QX0.0 : BOOL ;
g_iTest AT %QW0 : INT ;
END_VARPROGRAM PLC_PRG
IF g_iCondition < INT#0 THEN
g_xVar := TRUE;
g_iTest := INT#12;
END_IF
CASE g_iCondition OF
INT#1:
g_xVar := FALSE;
INT#2:
g_iTest := INT#11;
ELSE
g_xVar := TRUE;
g_iTest := INT#9;
END_CASE
Uscita in Messaggi vista:
SA0004: Accesso multiplo in scrittura sull'uscita '%QX0.0'
SA0004: Accesso multiplo in scrittura sull'uscita '%QW0'