Skip to main content

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.

Esempio 17. Esempio
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:

  • sa_icon_message.png SA0004: Accesso multiplo in scrittura sull'uscita '%QX0.0'

  • sa_icon_message.png SA0004: Accesso multiplo in scrittura sull'uscita '%QW0'