Skip to main content

SA0076: Costante di enumerazione mancante

Determina se ciascuna costante di enumerazione viene utilizzata o meno come condizione in CASE dichiarazioni e interrogato in a CASE ramo.

Motivazione: la programmazione difensiva richiede la gestione di tutti i possibili valori di un'enumerazione. Se non è richiesta alcuna azione per un valore di enumerazione specifico, contrassegnarlo esplicitamente con un commento. È quindi chiaro al lettore del codice che il valore non è stato semplicemente dimenticato.

Importanza: Bassa

Esempio 83. Esempio
TYPE My_Enum :
(
    red := 1, blue := 2, green := 3, black := 4
);
END_TYPE
PROGRAM PLC_PRG
VAR
    iVar : My_Enum;
    xTemp : BOOL;
END_VAR
iVar := My_Enum.black;
CASE iVar OF
    My_Enum.red:
        xTemp := FALSE;
    My_Enum.blue, My_Enum.green:
        xTemp := TRUE;
    ELSE
        xTemp := NOT xTemp;
END_CASE

Uscita in Messaggi vista:

  • sa_icon_message.png SA0076: Costante di enumerazione 'black' mancante nell'istruzione CASE