枚举是由很多字符串常量组成的用户定义数据类型。这些常量称为枚举值。即使在POU之内声明枚举值,枚举值仍然可以在整个工程范围内被识别。用户可以通过添加对象对话框建立“DUT”对象来创建一个枚举。
注意:与CoDeSys V2.3不同的是,必须使用“TYPE”才能进行局部枚举声明。
语法结构:
TYPE<标识符>:(<Enum_0>,<Enum_1>,…,<Enum_n>)<数据类型>;
END_TYPE
<标识符>变量可以代表枚举值<Enum…>并被初始化为第一个值。这些值与所有的数字类型兼容,也就是说可以像使用整形变量一样对其进行操作。您也可以把数x赋给这个值。如果在声明中枚举值没有被初始化为指定的值,那么将从0开始递增依次进行初始化。请确保初始化时的初始值在内部元素中递增。运行时将会检查这些值的有效性。
例如,我们建立一个枚举变量如下。
1)添加数据单元类型DUT,如图6-40所示。
图6-40 选择添加DUT
2)命名一个枚举变量名,并选择枚举,如图6-41所示。
图6-41 选择枚举
3)打开枚举编辑,如图6-42所示。
图6-42 打开枚举编辑
4)编辑枚举变量下的元素,如图6-43所示。
图6-43 编辑枚举值
5)在程序中声明一个变量为一个枚举体,并在编程区调用这个枚举体变量,如图6-44所示。
图6-44 在程序中调用枚举变量
6)执行程序仿真,当condition为“0”时,条件不满足,traffic sig保持初始值,即“0”,如图6-45所示。
图6-45 仿真程序(一)
当condition为“1”时,条件满足,traffic_sig被赋值为“1”,traffic_sig为yellow,如图6-46所示。(www.daowen.com)
图6-46 仿真程序(二)
枚举类型的名称可以(作为范围操作符)用来确定需要访问的枚举常量。因此,您可以在不同枚举中使用相同的常量。
例如:
定义两个枚举:
TYPE_COLORS_1:(red,blue);
END_TYPE
TYPE COLORS_2:(green,blue,yellow);
END_TYPE
在POU中使用枚举值Blue:
声明:
colorvar1:COLORS_1;
colorvar2:COLORS_2;
实现:
可以这样使用:
colorvar1:=colors_1.blue;
colorvar2:=colors_2.blue;
不能这样使用:
colorvar1:=blue;
colorvar2:=blue;
还可以明确指定枚举所指向的数据类型(默认类型是INT)。
例如:
需要将枚举BigEnum的数据类型指定为DINT:
TYPE BigEnum:(yellow,blue,green:=16#8000)DINT;
END TYPE
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。