Enumeration
An enumeration consists of a set of named constants, typically representing options or states. Enumerations are strongly typed meaning enumeration variables can only be assigned a value defined in the enumeration type.
- Named values within an enumeration definition must be unique, but multiple enumerations can have a member with the same name
- The first value defined in an enumeration is the default value unless an explicit default value is assigned.
- Only equality and inequality operators can be used.
Syntax
TYPE <EnumName> :
(
// Members
) := <optional default>;
END_TYPE
Samples
An enumeration for a color
TYPE E_Color :
(
Red,
Orange,
Yellow,
);
END_TYPE
VAR
color : E_Color;
name : STRING;
END_VAR
color := color.Yellow;
// Enumerations are commonly used with CASE statements
CASE color OF
color.Red :
name := 'Red';
color.Orange :
name := 'Orange';
color.Yellow :
name := 'Yellow';
END_CASE;
print(name);
A different default value
TYPE E_Color :
(
Red,
Orange := 4,
Yellow,
) := Orange;
END_TYPE
VAR
color : E_Color;
END_VAR
print(color); // 4