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里用的很溜的,没啥问题。
daniel4587
级别: 探索解密
精华主题: 0
发帖数量: 44 个
工控威望: 160 点
下载积分: 809 分
在线时间: 30(小时)
注册时间: 2017-08-09
最后登录: 2025-03-25
查看daniel4587的 主题 / 回贴
1楼  发表于: 12天前
SysHC_GetSystemDate(xEnable := TRUE);
currentHours := UINT_TO_INT(SysHC_GetSystemDate.uiHour);
currentMinutes := UINT_TO_INT(SysHC_GetSystemDate.uiMinute);

CASE Mode OF
    DUT_ShiftMode.onlyDay:
    IF currentHours >= InShiftTime.working[DUT_Shift.day].hour[DUT_Shift.day] AND currentMinutes >= InShiftTime.working[DUT_Shift.day].minute[DUT_Shift.day]
        AND currentHours < InShiftTime.off_work[DUT_Shift.day].hour[DUT_Shift.day] AND currentMinutes < InShiftTime.off_work[DUT_Shift.day].minute[DUT_Shift.day] THEN
        POU_CurrentShift := DUT_Shift.day;
    END_IF
    DUT_ShiftMode.day_night:
    IF TRUE THEN
        ;
    END_IF
    ;
    DUT_ShiftMode.day_middle_night:
    ;
    ELSE
    ;
END_CASE

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
这是刚用汇川InoProShop做的,也编译通过了。
不知道欧姆龙要怎样搞。