Compiler Warning C0354
Message: Comparison of one enumeration type (<type name 1>) with another (<type name 2>)
Possible error cause: Enumeration types are used in comparison operators.
Error correction:
Use predefined integer data types (example:
INT) instead of enumeration types in your program code.Copy the values of the enumeration variables into auxiliary variables (example:
INTvariables) and use the auxiliary variables in the comparison operator.
Example 473. Example of the warning
{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;
The IF statement produces the following warning.
Message:
C0354: Comparison of one enumeration type (ENUM1) with another (ENUM2)