daniel4587
級別: 探索解密
![]() |
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
工控小白
級別: 略有小成
![]() |
數組索引只能是數值,用枚舉型去做索引,不就是用字符串肯定不行。估計軟件也不會根據枚舉值去訪問實際的數值,再代入到數組索引中訪問。直接用數值吧 |
---|---|
|
daniel4587
級別: 探索解密
![]() |
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做的,也編譯通過了。 不知道歐姆龍要怎樣搞。 |
---|---|
|
qq240559043
干就完了
級別: 略有小成
![]() |
codesys肯定可以呀,你這個問題我早就遇到過了。所以(為什么網上說:codesys是安卓,博途是蘋果)除了codesys和博途都是其它。雖然歐姆龍用的是codesys底層 |
---|---|
|
qq240559043
干就完了
級別: 略有小成
![]() |
枚舉本質上還是數值,只是為了方便人閱讀。編譯是會替換成數值(這才是正確的,歐姆龍居然認為枚舉是新的類型)問過官方客服了 |
---|---|
|