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_VAR
PROGRAM 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'