From aeaf3e43e425ef0de84c1819f318f20e90471f90 Mon Sep 17 00:00:00 2001 From: 1 <1> Date: 星期四, 02 十月 2025 11:49:37 +0800 Subject: [PATCH] #和得服务器 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 109 +++++++++++++++++++++++++++++++++--------------------- 1 files changed, 66 insertions(+), 43 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index ff0b065..1b70a6d 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -3045,7 +3045,7 @@ // 鑾峰彇RGV淇℃伅 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgv.getId()); RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); - if (rgvProtocol == null) { + if (rgvProtocol.getStatusType1() != RgvStatusType.IDLE && rgvProtocol.getModeType() != RgvModeType.AUTO) { continue; } BasRgv basRgv = basRgvService.selectById(rgv.getId()); @@ -3054,10 +3054,16 @@ continue; } //灏忚溅鏃犱换鍔℃椂璺宠繃 - if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0){ + if(rgvProtocol.getTaskNo1() ==0 && rgvProtocol.getTaskNo2() == 0 ){ continue; } - //鍏ュ簱鏀捐揣 + if(!rgvThread.isPaking()){ + continue; + } + List<WrkMastSta> wrkMastStaLock = wrkMastStaService.selectLockWrk(rgv.getId()); + if(wrkMastStaLock.size() == 1){ + continue; + } if(rgvThread.isPakIn()){ for(RgvSlave.RgvStn rgvStn : rgv.getRgvInPStn()){//鍏ュ簱鏀捐揣绔欑偣 boolean flag = false; @@ -3101,6 +3107,7 @@ boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ try{ + rgvThread.setPaking(false); wrkMast.setSheetNo("2"); wrkMastSta.setWrkSts(2); wrkMastStaMapper.updateById(wrkMastSta); @@ -3163,6 +3170,7 @@ boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ try{ + rgvThread.setPaking(false); wrkMastSta.setWrkSts(2); wrkMastStaMapper.updateById(wrkMastSta); log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); @@ -3214,6 +3222,7 @@ && !rgvProtocol.isLoaded1ing() && !rgvProtocol.isLoaded2ing()){ rgvThread.setPakRgv(true); + rgvThread.setPakMk(true); rgvThread.setPakIn(true); rgvThread.setPakOut(true); rgvThread.setPakToCrn(true); @@ -3239,8 +3248,12 @@ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgv.getId()); continue; } + if(rgvProtocol.getStatusType1() == RgvStatusType.WORKING){ +// log.error("瑙i攣"); + rgvThread.setPaking(true); + } // 鍙湁褰揜GV绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛� - if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn()) { + if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO && rgvThread.isPakMk() && rgvThread.isPakToCrn() && rgvThread.isPaking()) { News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛孯GV鍏ュ嚭搴撲綔涓氫笅鍙�"); // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡 // rgvRunWrkMastInTest(); @@ -3279,11 +3292,12 @@ // rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣 // } - if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) { - //灏忚溅鎵ц鏀捐揣浠诲姟 - rgvOutExecute(); - } +// if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) { +// //灏忚溅鎵ц鏀捐揣浠诲姟 +// rgvOutExecute(); +// +// } } } public synchronized void rgvRunWrkMastInTest(){ @@ -3335,6 +3349,7 @@ StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); StaProtocol staProtocol2 = null; //杩炵画鍙栬揣浠诲姟绔欑偣 RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); + WrkMastSta wrkMastSta3 = null;//杩炲彇涓や釜 if(rgvStn.getStaNo2()!= null ){ staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2()); if (staProtocol2 == null) { @@ -3348,18 +3363,9 @@ News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); continue; } - WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo()); - if(wrkMastSta2 != null){ - wrkMastSta2.setMk(1); - try{ - wrkMastStaMapper.updateById(wrkMastSta2); - log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); - }catch (Exception e){ - log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触"); - } - - } + wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo()); } + if (staProtocol == null) { News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); continue; @@ -3389,7 +3395,7 @@ case 2: route = RouteUtils.getRouteTwo();break; } basRgvMap.setNowRoute(rgvProtocol.getRgvPosI2()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� - WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 + WrkMastSta wrkMastSta = wrkMastStaMapper.selectNoInterfere(route, route, Long.valueOf(staProtocol.getWorkNo()));//鏍规嵁绔欑偣宸ヤ綔鍙峰拰灏忚溅宸ヤ綔鑼冨洿妫�绱换鍔℃。 if( null == wrkMastSta ) { News.infoNoLog("" + mark + " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); continue; @@ -3411,7 +3417,17 @@ boolean sign = false; sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ + if(wrkMastSta3 != null){ + wrkMastSta3.setMk(1); + try{ + wrkMastStaMapper.updateById(wrkMastSta3); + log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); + }catch (Exception e){ + log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触"); + } + } + rgvThread.setPaking(false); rgvThread.setPakOut(false);//鍑哄簱涓嶅厑璁� try{ wrkMastSta.setWrkSts(1); @@ -3438,6 +3454,8 @@ StaProtocol staProtocol = devpThread.getStation().get(rgvStn.getStaNo()); RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, (int) rgvProtocol.getRgvNo()); StaProtocol staProtocol2 = null; + WrkMastSta wrkMastSta3 = null; + if(rgvStn.getStaNo2()!= null ){ staProtocol2 = devpThread.getStation().get(rgvStn.getStaNo2()); if (staProtocol2 == null) { @@ -3451,18 +3469,7 @@ News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); continue; } - WrkMastSta wrkMastSta2 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo()); - if(wrkMastSta2 != null){ - wrkMastSta2.setMk(1); - try{ - wrkMastStaMapper.updateById(wrkMastSta2); - log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); - }catch (Exception e){ - log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触"); - } - - } - + wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo()); } if (staProtocol == null) { @@ -3519,6 +3526,17 @@ if(LEFT_POSITION.contains(wrkMastSta.getStaEnd())){ rgvThread.setPakToCrn(false); //閿佸畾灏忚溅鍙兘鎺ユ帴椹充换鍔� } + if(wrkMastSta3 != null){ + wrkMastSta3.setMk(1); + try{ + wrkMastStaMapper.updateById(wrkMastSta3); + log.error("閿佸畾鐩搁殧绔欑偣浠诲姟"); + }catch (Exception e){ + log.error("閿佸畾鐩搁殧绔欑偣浠诲姟澶辫触"); + } + + } + rgvThread.setPaking(false); rgvThread.setPakIn(false);//鍏ュ簱涓嶅厑璁� try{ wrkMastSta.setWrkSts(1); @@ -3754,9 +3772,9 @@ // } // return wrkEnable; // } -// /** -// * 灏忚溅棰勮皟搴� -// */ + /** + * 灏忚溅棰勮皟搴� + */ // public synchronized void rgvPreScheduling(){ // try{ // List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); @@ -3793,7 +3811,7 @@ // // 鏍规嵁杈撻�佺嚎plc閬嶅巻 // for (DevpSlave devp : slaveProperties.getDevp()) { // // 閬嶅巻鍏ュ簱鍙� 鍏ュ簱棰勮皟搴� -// List<Integer> staNos = Arrays.asList( 1043, 1104,1037); +// List<Integer> staNos = Arrays.asList( 1043, 1104, 1029, 1022, 1019, 1008, 1005); // for (Integer staNo : staNos) { // SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); // StaProtocol staProtocol = devpThread.getStation().get(staNo); @@ -3801,9 +3819,8 @@ // RgvCommand rgvCommand = new RgvCommand(); // rgvCommand.setRgvNo((int) rgvProtocol.getRgvNo()); // RGV缂栧彿 // rgvCommand.setAckFinish1(false); // 宸ヤ綅1浠诲姟瀹屾垚纭浣� -// rgvCommand.setTaskNo1(9999); // 宸ヤ綅1宸ヤ綔鍙� +// rgvCommand.setTaskNo(9999); // 宸ヤ綅1宸ヤ綔鍙� // rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 绉诲姩 -// rgvCommand.setEndStaNo1(0); //宸ヤ綅1 鏀捐揣鍚庤鍘荤殑浣嶇疆 // switch (staNo){ // case 1043: rgvCommand.setTargetPosition1(1042);break; //宸ヤ綅1鐩爣绔欑偣 // case 1104: rgvCommand.setTargetPosition1(1105);break; @@ -3858,6 +3875,7 @@ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); return false; } else { + return true; } @@ -3927,18 +3945,23 @@ for (DevpSlave devp : slaveProperties.getDevp()) { // 閬嶅巻鎷f枡鍏ュ簱鍙� for (DevpSlave.Sta armSta : devp.getArmSta()) { - // 鑾峰彇鏉$爜鎵弿浠俊鎭� - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, armSta.getBarcode()); - if (barcodeThread == null) { + + // 鑾峰彇绔欑偣淇℃伅 + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); + StaProtocol staProtocol = devpThread.getStation().get(armSta.getStaNo()); + if (staProtocol == null) { continue; + } else { + staProtocol = staProtocol.clone(); } - String barcode = barcodeThread.getBarcode(); - barcode="999997"; + String barcode = staProtocol.getBarcode(); if(!Cools.isEmpty(barcode)) { if("NG".endsWith(barcode) || "NoRead".equals(barcode)) { + log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細"+JSON.toJSON(barcode)+"===銆嬫墭鐩樻潯鐮佸紓甯�"); continue; } } else { + log.error("鏈烘鑷傛姄鍙栦换鍔″畬鎴愶細===銆嬫墭鐩樻潯鐮佷负绌�"); continue; } -- Gitblit v1.9.1