Advertencia del compilador C0354
Mensaje: Comparación de un tipo de enumeración (<tipo nombre 1>) con otro (<tipo nombre 2>)
Posible causa del error: Los tipos de enumeración se utilizan en los operadores de comparación.
Corrección de errores:
Utilice tipos de datos enteros predefinidos (ejemplo:
INT
) en lugar de los tipos de enumeración en el código de su programa.Copie los valores de las variables de enumeración en variables auxiliares (ejemplo:
INT
variables) y utilice las variables auxiliares en el operador de comparación.
ejemplo 468. Ejemplo de la advertencia
{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;
El IF
la declaración produce la siguiente advertencia.
Mensaje:
C0354: Comparación de un tipo de enumeración (ENUM1) con otro (ENUM2)