Avviso del compilatore C0354
Messaggio: onfronto di un tipo di enumerazione (<nome del tipo 1>) con un altro (<nome del tipo2>)
Possibile causa dell'errore: i tipi di enumerazione vengono utilizzati negli operatori di confronto.
Correzione degli errori:
Usa tipi di dati interi predefiniti (esempio:
INT
) invece dei tipi di enumerazione nel codice del programma.Copia i valori delle variabili di enumerazione in variabili ausiliarie (esempio:
INT
variabili) e utilizza le variabili ausiliarie nell'operatore di confronto.
Esempio 468. Esempio di avviso
{attribute 'qualified_only'} {attribute 'strict'} TYPE ENUM1: ( enum_member1 := 0, enum_member2 := 1 ); END_TYPE {attribute 'qualified_only'} {attribute 'strict'} TYPE ENUM2: ( enum_member := 0 ); END_TYPE PROGRAM PLC_PRG VAR enum1 : ENUM1; enum2 : ENUM2; i:INT; END_VAR enum1 := 0; enum2 := 0; IF enum1 > enum2 THEN i := 1; END_IF;
Le IF
l'istruzione produce il seguente avviso.
Messaggio:
C0354: Confronto di un tipo di enumerazione (ENUM1) con un altro (ENUM2)