枚举类型

一个枚举类型是一个 用户定义类型 是由若干串常量组成的。这些常量被称为枚举类型值。

枚举类型值在项目中的所有区域被视为全局地,即使他们在POU中已经被声明。

一个枚举类型是在一个项目中所谓 'DUT' 对象通过 添加对象 对话框被创建的。

提示!

与CoDeSys V2.3 版本相比,一个本地的枚举类型声明除在TYPE中是不可能的。

句法:

TYPE <identifier>:(<enum_0> ,<enum_1>, ...,<enum_n>) |<base data type>;

END_TYPE

一个标识符类型的变量可以取枚举类型值中的一个<enum_..> 并且将被同第一个初始化。这些值与整数兼容,这就意味着你可以使用它们执行操作就像你使用整数变量一样。你可以分配一个数字x给一个变量。如果枚举类型值没有随声明中的特殊值被初始化,计数将从0开始。当初始化了,确保初始值在部件的行中是增加的。数字有效性将在运行时被检查。

例子:

TYPE TRAFFIC_SIGNAL: (red, yellow, green:=10);  (* The initial value for each of the colors is red 0, yellow 1, green 10 *)

END_TYPE

TRAFFIC_SIGNAL1 : TRAFFIC_SIGNAL;

TRAFFIC_SIGNAL1:=0; (* The value of the traffic signal is "red" *)

FOR i:= red TO green DO

 i := i + 1;

END_FOR;

 

扩展IEC61131-3标准

1. 1、 枚举类型的类型名称可被用(作为一个 范围运算符)来解除对于一个枚举类型常量的访问。

也可使用 在不同枚举类型中的相同常量

例子:

两个枚举类型的定义:

TYPE COLORS_1: (red, blue);

END_TYPE

TYPE COLORS_2: (green, blue, yellow);

END_TYPE

在POU中的枚举值使用:

声明:

colorvar1 : COLORS_1;

colorvar2 : COLORS_2;

执行:

(* possible: *)

colorvar1 := colors_1.blue;

colorvar2 := colors_2.blue;

(* not possible: *)

colorvar1 := blue;

colorvar2 := blue;

 

2. 2、 枚举类型的基本数据类型-默认是NT-可被明确指定

例子:

枚举BigEnum 的基本数据类型 应 DINT:

TYPE BigEnum : (yellow, blue, green:=16#8000) DINT;

END_TYPE