Skip to main content

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)