daniel4587
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 44 個(gè)
工控威望: 160 點(diǎn)
下載積分: 809 分
在線時(shí)間: 30(小時(shí))
注冊(cè)時(shí)間: 2017-08-09
最后登錄: 2025-03-28
查看daniel4587的 主題 / 回貼
樓主  發(fā)表于: 17天前
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;
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
請(qǐng)問onlyDay和day是兩個(gè)枚舉的成員,onlyDay做case選項(xiàng)時(shí)可以編譯,但用day去做數(shù)組下標(biāo)索引時(shí),一直報(bào)錯(cuò),提示索引號(hào)不合法,編程環(huán)境是SYSMAC STUDIO  v1.60。以前在西門子TIA里用的很溜的,沒啥問題。
ezio2016
工控小白
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 191 個(gè)
工控威望: 317 點(diǎn)
下載積分: 982 分
在線時(shí)間: 124(小時(shí))
注冊(cè)時(shí)間: 2016-08-05
最后登錄: 2025-03-29
查看ezio2016的 主題 / 回貼
1樓  發(fā)表于: 17天前
數(shù)組索引只能是數(shù)值,用枚舉型去做索引,不就是用字符串肯定不行。估計(jì)軟件也不會(huì)根據(jù)枚舉值去訪問實(shí)際的數(shù)值,再代入到數(shù)組索引中訪問。直接用數(shù)值吧
daniel4587
級(jí)別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 44 個(gè)
工控威望: 160 點(diǎn)
下載積分: 809 分
在線時(shí)間: 30(小時(shí))
注冊(cè)時(shí)間: 2017-08-09
最后登錄: 2025-03-28
查看daniel4587的 主題 / 回貼
2樓  發(fā)表于: 17天前
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
干就完了
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 194 個(gè)
工控威望: 335 點(diǎn)
下載積分: 4120 分
在線時(shí)間: 146(小時(shí))
注冊(cè)時(shí)間: 2012-06-06
最后登錄: 2025-03-15
查看qq240559043的 主題 / 回貼
3樓  發(fā)表于: 16天前
引用
引用第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肯定可以呀,你這個(gè)問題我早就遇到過了。所以(為什么網(wǎng)上說:codesys是安卓,博途是蘋果)除了codesys和博途都是其它。雖然歐姆龍用的是codesys底層
qq240559043
干就完了
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 194 個(gè)
工控威望: 335 點(diǎn)
下載積分: 4120 分
在線時(shí)間: 146(小時(shí))
注冊(cè)時(shí)間: 2012-06-06
最后登錄: 2025-03-15
查看qq240559043的 主題 / 回貼
4樓  發(fā)表于: 16天前
引用
引用第1樓ezio2016于2025-03-14 11:05發(fā)表的  :
數(shù)組索引只能是數(shù)值,用枚舉型去做索引,不就是用字符串肯定不行。估計(jì)軟件也不會(huì)根據(jù)枚舉值去訪問實(shí)際的數(shù)值,再代入到數(shù)組索引中訪問。直接用數(shù)值吧


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


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



確實(shí)沒錯(cuò),我找了歐姆龍產(chǎn)品技術(shù)問,歐姆龍的NX/NJ雖然是codesys那一套,但是又定制開發(fā)了,導(dǎo)致很多時(shí)候不通用,需要另外修改。
類似比亞迪、寧德時(shí)代之前都嘗試想導(dǎo)入codesys到歐姆龍,但還是有些奇怪的問題,需要人工調(diào)整。
zjjplc
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 225 點(diǎn)
下載積分: 135 分
在線時(shí)間: 58(小時(shí))
注冊(cè)時(shí)間: 2019-04-25
最后登錄: 2025-03-29
查看zjjplc的 主題 / 回貼
6樓  發(fā)表于: 4天前
引用
引用第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
級(jí)別: 略有小成
精華主題: 0
發(fā)帖數(shù)量: 14 個(gè)
工控威望: 225 點(diǎn)
下載積分: 135 分
在線時(shí)間: 58(小時(shí))
注冊(cè)時(shí)間: 2019-04-25
最后登錄: 2025-03-29
查看zjjplc的 主題 / 回貼
7樓  發(fā)表于: 4天前
引用
引用第3樓qq240559043于2025-03-15 11:33發(fā)表的  :



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

Sysmac安裝后都沒看到Codesys的相關(guān)服務(wù)運(yùn)行 為什么說歐姆龍用的是Codesys的底層?