Enumeration (ENUM)

Enumeration is a user-defined data type that is made up of a number of string constants. These constants are referred to as enumeration values. Enumeration values are recognized in all areas of the project even if they were locally declared within aPOU. It is best to create your enumerations as objects in the Object Organizer under the register card Data types. They begin with the keyword TYPE and end with END_TYPE.

Syntax:

TYPE <Identifier>:(<Enum_0>
,<Enum_1>, ...,<Enum_n>);END_TYPE

The <Identifier> can take on one of the enumeration values and will be initialized with the first one. These values are compatible with whole numbers which means that you can perform operations with them just as you would with INT. You can assign a number x to the <Identifier>. If the enumeration values are not initialized, counting will begin with 0. When initializing, make certain the initial values are increasing. The validity of the number will be reviewed at the time it is run.

Example:

TRAFFIC_SIGNAL: (Red, Yellow, Green:=10);
(*The initial value for each of the colors is red 0, yellow 1, green 10 *)
TRAFFIC_SIGNAL:=0; (* The value of the traffic signal is red*)

FOR i:= Red TO Green DO 
    i := i + 1;
END_FOR;

You may not use the same enumeration value more than once.

Example:

TRAFFIC_SIGNAL: (red, yellow, green);
COLOR: (blue, white, red);

Error: red may not be used for both TRAFFIC_SIGNAL and COLOR.