查看: 821|回复: 0
收起左侧

[教程经验] Codesys笔记_数据类型之枚举

邀请回答

马上注册,享受更多特权

您需要 登录 才可以下载或查看,没有帐号?立即注册   

x
本帖最后由 skyandboy 于 2023-3-8 16:40 编辑

记录一下本人对Codesys中的枚举这种数据类型的理解:

1:枚举的特性:
我的软件版本是inoproshopV1.7.3 下面是新建好的枚举,最上面有两行灰色的代码即该枚举的特性
1.JPG

存在该特性的时候使用该枚举的时候必须是“Enum_StateMachine.初始化中”这种格式,删除该特性允许直接“初始化中”去使用

2:枚举的隐式转换
枚举是一种特殊的结构体(个人理解为是数据类型全为常量的结构体),实际上也是一种数据类型在可以在变量表中可以定义枚举类型的变量
枚举的值默认为int类型(在上图的右括号和分号之间添加一个数据类型可更改枚举的值类型)

VAR
        _eState:Enum_StateMachine;
        _iState :INT;
        _xRight:BOOL;
END_VAR


_iState:=Enum_StateMachine.初始化中;

IF _iState=Enum_StateMachine.初始化中 THEN
        _eState:=2;
ELSE
        _eState:=1;
END_IF



“_iState ”为int类型而“Enum_StateMachine.初始化中”和“_eState”是 Enum_StateMachine类型
这里允许不同类型的数据相互比较和赋值所以这里存在枚举类型和int类型的隐式转换。在其他面向对象的语言中是需要强制转换的比如C#
经测试枚举的值类型为byte\word\dword 均可以完成隐式转换

3:以前我们用一个int类型的数据去表示当前的机器状态以及动作步骤但是可读性比较差,现在可以用枚举去表示这样可读性更高

如下图监控的时候就可以直接看到当前的机器状态




1.JPG





















上一篇:中型机TCP、UDP
下一篇:ST语言

已有 0 人打赏作者

回复 邀请回答送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册   

本版积分规则

有技术问题,就上汇川技术社区

INOVANCE汇川技术 公众号

扫码下载掌上汇川APP

全国服务热线:8:30-17:30

4000-300124

苏州地址:江苏省苏州市吴中区越溪友翔路16号

深圳地址:深圳市龙华新区观澜街道高新技术产业园汇川技术总部大厦

Copyright © 2003-2100 汇川技术 Powered by Discuz! X3.4 ( 苏ICP备12002088号 )
快速回复 返回列表 返回顶部