Skip to main content

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)