Skip to main content

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