daniel4587
級別: 探索解密
精華主題: 0
發(fā)帖數量: 44 個
工控威望: 160 點
下載積分: 809 分
在線時間: 30(小時)
注冊時間: 2017-08-09
最后登錄: 2025-03-28
查看daniel4587的 主題 / 回貼
樓主  發(fā)表于: 15天前
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去做數組下標索引時,一直報錯,提示索引號不合法,編程環(huán)境是SYSMAC STUDIO  v1.60。以前在西門子TIA里用的很溜的,沒啥問題。
ezio2016
工控小白
級別: 略有小成
精華主題: 0
發(fā)帖數量: 191 個
工控威望: 317 點
下載積分: 982 分
在線時間: 123(小時)
注冊時間: 2016-08-05
最后登錄: 2025-03-27
查看ezio2016的 主題 / 回貼
1樓  發(fā)表于: 15天前
數組索引只能是數值,用枚舉型去做索引,不就是用字符串肯定不行。估計軟件也不會根據枚舉值去訪問實際的數值,再代入到數組索引中訪問。直接用數值吧
daniel4587
級別: 探索解密
精華主題: 0
發(fā)帖數量: 44 個
工控威望: 160 點
下載積分: 809 分
在線時間: 30(小時)
注冊時間: 2017-08-09
最后登錄: 2025-03-28
查看daniel4587的 主題 / 回貼
2樓  發(fā)表于: 15天前
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
干就完了
級別: 略有小成
精華主題: 0
發(fā)帖數量: 194 個
工控威望: 335 點
下載積分: 4120 分
在線時間: 146(小時)
注冊時間: 2012-06-06
最后登錄: 2025-03-15
查看qq240559043的 主題 / 回貼
3樓  發(fā)表于: 14天前
引用
引用第2樓daniel4587于2025-03-14 11:59發(fā)表的  :
SysHC_GetSystemDate(xEnable := TRUE);
currentHours := UINT_TO_INT(SysHC_GetSystemDate.uiHour);
currentMinutes := UINT_TO_INT(SysHC_GetSystemDate.uiMinute);

CASE Mode OF
.......



codesys肯定可以呀,你這個問題我早就遇到過了。所以(為什么網上說:codesys是安卓,博途是蘋果)除了codesys和博途都是其它。雖然歐姆龍用的是codesys底層
qq240559043
干就完了
級別: 略有小成
精華主題: 0
發(fā)帖數量: 194 個
工控威望: 335 點
下載積分: 4120 分
在線時間: 146(小時)
注冊時間: 2012-06-06
最后登錄: 2025-03-15
查看qq240559043的 主題 / 回貼
4樓  發(fā)表于: 14天前
引用
引用第1樓ezio2016于2025-03-14 11:05發(fā)表的  :
數組索引只能是數值,用枚舉型去做索引,不就是用字符串肯定不行。估計軟件也不會根據枚舉值去訪問實際的數值,再代入到數組索引中訪問。直接用數值吧


枚舉本質上還是數值,只是為了方便人閱讀。編譯是會替換成數值(這才是正確的,歐姆龍居然認為枚舉是新的類型)問過官方客服了
ezio2016
工控小白
級別: 略有小成
精華主題: 0
發(fā)帖數量: 191 個
工控威望: 317 點
下載積分: 982 分
在線時間: 123(小時)
注冊時間: 2016-08-05
最后登錄: 2025-03-27
查看ezio2016的 主題 / 回貼
5樓  發(fā)表于: 12天前
引用
引用第4樓qq240559043于2025-03-15 11:35發(fā)表的  :


枚舉本質上還是數值,只是為了方便人閱讀。編譯是會替換成數值(這才是正確的,歐姆龍居然認為枚舉是新的類型)問過官方客服了



確實沒錯,我找了歐姆龍產品技術問,歐姆龍的NX/NJ雖然是codesys那一套,但是又定制開發(fā)了,導致很多時候不通用,需要另外修改。
類似比亞迪、寧德時代之前都嘗試想導入codesys到歐姆龍,但還是有些奇怪的問題,需要人工調整。
zjjplc
級別: 略有小成
精華主題: 0
發(fā)帖數量: 14 個
工控威望: 225 點
下載積分: 135 分
在線時間: 58(小時)
注冊時間: 2019-04-25
最后登錄: 2025-03-28
查看zjjplc的 主題 / 回貼
6樓  發(fā)表于: 前天
引用
引用第2樓daniel4587于2025-03-14 11:59發(fā)表的  :
SysHC_GetSystemDate(xEnable := TRUE);
currentHours := UINT_TO_INT(SysHC_GetSystemDate.uiHour);
currentMinutes := UINT_TO_INT(SysHC_GetSystemDate.uiMinute);

CASE Mode OF
.......

用EnumToNum指令
zjjplc
級別: 略有小成
精華主題: 0
發(fā)帖數量: 14 個
工控威望: 225 點
下載積分: 135 分
在線時間: 58(小時)
注冊時間: 2019-04-25
最后登錄: 2025-03-28
查看zjjplc的 主題 / 回貼
7樓  發(fā)表于: 前天
引用
引用第3樓qq240559043于2025-03-15 11:33發(fā)表的  :



codesys肯定可以呀,你這個問題我早就遇到過了。所以(為什么網上說:codesys是安卓,博途是蘋果)除了codesys和博途都是其它。雖然歐姆龍用的是codesys底層

Sysmac安裝后都沒看到Codesys的相關服務運行 為什么說歐姆龍用的是Codesys的底層?