daniel4587
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 160 点
下载积分: 809 分
在线时间: 30(小时)
注册时间: 2017-08-09
最后登录: 2025-03-25
查看daniel4587的 主题 / 回贴
楼主  发表于: 12天前
CASE Mode OF
    onlyDay:
    IF currentTimeHour >= InShiftTime.working[day].shiftHours.hours[day] AND currentTimeHour >= InShiftTime.working[day].shiftMinutes.minutes[day]
       AND currentTimeHour < InShiftTime.off_work[day].shiftHours.hours[day] AND currentTimeMinutes < InShiftTime.off_work[day].shiftMinutes.minutes[day] THEN
    CheckShift := day ;
    END_IF;
    day_night:
    ;
    day_middle_night:
    ;
ELSE
    ;
END_CASE;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
请问onlyDay和day是两个枚举的成员,onlyDay做case选项时可以编译,但用day去做数组下标索引时,一直报错,提示索引号不合法,编程环境是SYSMAC STUDIO  v1.60。以前在西门子TIA里用的很溜的,没啥问题。
ezio2016
工控小白
级别: 略有小成
精华主题: 0
发帖数量: 191 个
工控威望: 317 点
下载积分: 982 分
在线时间: 123(小时)
注册时间: 2016-08-05
最后登录: 2025-03-25
查看ezio2016的 主题 / 回贴
1楼  发表于: 12天前
数组索引只能是数值,用枚举型去做索引,不就是用字符串肯定不行。估计软件也不会根据枚举值去访问实际的数值,再代入到数组索引中访问。直接用数值吧
ezio2016
工控小白
级别: 略有小成
精华主题: 0
发帖数量: 191 个
工控威望: 317 点
下载积分: 982 分
在线时间: 123(小时)
注册时间: 2016-08-05
最后登录: 2025-03-25
查看ezio2016的 主题 / 回贴
2楼  发表于: 9天前
引用
引用第4楼qq240559043于2025-03-15 11:35发表的  :


枚举本质上还是数值,只是为了方便人阅读。编译是会替换成数值(这才是正确的,欧姆龙居然认为枚举是新的类型)问过官方客服了



确实没错,我找了欧姆龙产品技术问,欧姆龙的NX/NJ虽然是codesys那一套,但是又定制开发了,导致很多时候不通用,需要另外修改。
类似比亚迪、宁德时代之前都尝试想导入codesys到欧姆龙,但还是有些奇怪的问题,需要人工调整。