From 7fb2fa2382a4de194c0e906a8b206f854a3de17f Mon Sep 17 00:00:00 2001 From: 1 <1> Date: 星期二, 07 十月 2025 09:35:59 +0800 Subject: [PATCH] #和得服务器 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 274 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 171 insertions(+), 103 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 51af239..3192f64 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -129,7 +129,6 @@ for (DevpSlave.Sta inSta : devp.getInSta()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); - BarcodeThread barcodeThreadMat = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcodeMat()); LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, inSta.getLed()); SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); StaProtocol staProtocol = devpThread.getStation().get(inSta.getStaNo()); @@ -143,13 +142,9 @@ continue; } - if (barcodeThreadMat == null) { - continue; - } String barcode = barcodeThread.getBarcode(); - String barcodeMat = barcodeThreadMat.getBarcode(); // 灏哄妫�娴嬪紓甯� boolean back = false; String errMsg = ""; @@ -212,7 +207,8 @@ && staProtocol.isInEnable() && !staProtocol.isEmptyMk() && staProtocol.isPakMk()) { - if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode) || "00000000".equals(barcode)) { + if(Cools.isEmpty(barcode) || "NG".endsWith(barcode) || "NoRead".equals(barcode)) { +// News.error(JSON.toJSONString(staProtocol)); News.info("{}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", inSta.getBarcode(), barcode); // led 寮傚父鏄剧ず if (ledThread != null) { @@ -339,6 +335,7 @@ // } // } else { + News.error(JSON.toJSONString(staProtocol)); staProtocol.setWorkNo(wrkNo); wrkNo++; staProtocol.setStaNo(inSta.getBackSta().shortValue()); @@ -1050,61 +1047,61 @@ } else { staProtocol = staProtocol.clone(); } - if (slave.getId() == 3) { - SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); - StaProtocol staProtocol2 = devpThread1.getStation().get(4001); - if (staProtocol2 == null) { - News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2); - break; - } else { - staProtocol2 = staProtocol2.clone(); - } - WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9996); - BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); - if (staDetl == null) { - News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); - break; -// continue; - } - if(wrkMast9999 != null && staProtocol2.isAutoing() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")){ - // 鍫嗗灈鏈烘帶鍒惰繃婊� - if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { -// continue; - break; - } - // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� - if (wrkMastMapper.selectWorking(slave.getId()) != null) { - break; -// return; - } - // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� - CrnCommand crnCommand = new CrnCommand(); - crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� - crnCommand.setTaskNo((short) 9996); // 宸ヤ綔鍙� -// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� - crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX((short) 5); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosZ((short) 4); // 婧愬簱浣嶅眰 - crnCommand.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� -// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷 - if (!MessageQueue.offer(SlaveType.Crn, wrkMast9999.getCrnNo(), new Task(2, crnCommand))) { - News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9999.getCrnNo(), JSON.toJSON(crnCommand)); - } else { - // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� - Date now = new Date(); - wrkMast9999.setWrkSts(3L); - wrkMast9999.setCrnStrTime(now); - wrkMast9999.setModiTime(now); - if (wrkMastMapper.updateById(wrkMast9999) == 0) { - News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9999.getWrkNo()); - } - break; - } - } - } +// if (slave.getId() == 3) { +// SiemensDevpThread devpThread1 = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, crnStn.getDevpPlcId()); +// StaProtocol staProtocol2 = devpThread1.getStation().get(4001); +// if (staProtocol2 == null) { +// News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol2); +// break; +// } else { +// staProtocol2 = staProtocol2.clone(); +// } +// WrkMast wrkMast9999 = wrkMastMapper.selectByWrkNo(9996); +// BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); +// if (staDetl == null) { +// News.error(""+mark+" - 2"+" - 5"+" - 鍑哄簱 ===>> 鍫嗗灈鏈虹珯鐐瑰湪鏁版嵁搴撲笉瀛樺湪, 绔欑偣缂栧彿={}", crnStn.getStaNo()); +// break; +//// continue; +// } +// if(wrkMast9999 != null && staProtocol2.isAutoing() && staDetl.getCanining() != null && staDetl.getCanining().equals("Y")){ +// // 鍫嗗灈鏈烘帶鍒惰繃婊� +// if (!crnProtocol.getStatusType().equals(CrnStatusType.IDLE) || crnProtocol.getTaskNo() != 0) { +//// continue; +// break; +// } +// // 宸茬粡瀛樺湪鍚婅溅鎵ц浠诲姟鏃讹紝鍒欒繃婊� +// if (wrkMastMapper.selectWorking(slave.getId()) != null) { +// break; +//// return; +// } +// // 1.鍫嗗灈鏈哄紑濮嬬Щ鍔� +// CrnCommand crnCommand = new CrnCommand(); +// crnCommand.setCrnNo(slave.getId()); // 鍫嗗灈鏈虹紪鍙� +// crnCommand.setTaskNo((short) 9996); // 宸ヤ綔鍙� +//// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +// crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 +// crnCommand.setSourcePosX((short) 5); // 婧愬簱浣嶆帓 +// crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪 +// crnCommand.setSourcePosZ((short) 4); // 婧愬簱浣嶅眰 +// crnCommand.setDestinationPosX((short) 6); // 鐩爣搴撲綅鎺� +// crnCommand.setDestinationPosY((short) 1); // 鐩爣搴撲綅鍒� +// crnCommand.setDestinationPosZ((short) 1); // 鐩爣搴撲綅灞� +//// crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷 +// if (!MessageQueue.offer(SlaveType.Crn, wrkMast9999.getCrnNo(), new Task(2, crnCommand))) { +// News.error("" + mark + " - 2" + " - 13" + " - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast9999.getCrnNo(), JSON.toJSON(crnCommand)); +// } else { +// // 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� +// Date now = new Date(); +// wrkMast9999.setWrkSts(3L); +// wrkMast9999.setCrnStrTime(now); +// wrkMast9999.setModiTime(now); +// if (wrkMastMapper.updateById(wrkMast9999) == 0) { +// News.error("" + mark + " - 2" + " - 14" + " - 淇敼宸ヤ綔妗g姸鎬� 11.鐢熸垚鍑哄簱ID => 12.鍚婅溅鍑哄簱涓� 澶辫触锛侊紒锛屽伐浣滃彿={}", wrkMast9999.getWrkNo()); +// } +// break; +// } +// } +// } // 鏌ヨ绔欑偣璇︾粏淇℃伅 BasDevp staDetl = basDevpService.selectById(crnStn.getStaNo()); if (staDetl == null) { @@ -1351,7 +1348,7 @@ // continue; } // 鍒ゆ柇鍫嗗灈鏈哄嚭搴撶珯鐘舵�� -// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") +// if (staProtocol.isAutoing() && !staProtocol.isLoading() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") // && staProtocol.getWorkNo() == 0 && staProtocol.isOutEnable()) { if (staProtocol.isAutoing() && staDetl.getCanouting() != null && staDetl.getCanouting().equals("Y") @@ -2564,18 +2561,18 @@ public synchronized void autoEmptyOut() { SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); List<Integer> list = new ArrayList<>(); - list.add(1108);list.add(2031); + list.add(1109);list.add(2031); for (Integer site:list){ Integer emptyCount = wrkMastMapper.countPakOutEmpty(site); StaProtocol staProtocol = null; - if(emptyCount >= 2 && site == 1108){ + if(emptyCount >= 2 && site == 1109){ continue; }else if(emptyCount == 1 && site == 2031){ continue; } //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔� switch (site){ - case 1108:staProtocol = devpThread.getStation().get(site - 2);break; + case 1109:staProtocol = devpThread.getStation().get(site - 2);break; case 2031:staProtocol = devpThread.getStation().get(site);break; } if (staProtocol == null) { @@ -2615,11 +2612,12 @@ } public synchronized void autoEmptyIn() { - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1); List<Integer> list = new ArrayList<>(); list.add(1038); for (Integer site:list){ StaProtocol staProtocol = devpThread.getStation().get(site); + StaProtocol staProtocol1 = devpThread.getStation().get(1040); if (staProtocol == null) { return; } else { @@ -2629,9 +2627,11 @@ && staProtocol.isLoading() //鏈夌墿 && staProtocol.isInEnable() //鍙叆淇″彿 && staProtocol.isPakMk() - && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛� + && staProtocol1.isFull() //鍙犳弧淇″彿 + && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990 ) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛� ) { + System.out.println(staProtocol); try { Short loctype1 = 1; LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1); @@ -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; @@ -3091,16 +3097,21 @@ basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); //鏇存柊灏忚溅褰撳墠浣嶇疆绔欑偣鍙� Integer workNo = rgvProtocol.getTaskNo2() !=0 ? rgvProtocol.getTaskNo2() : rgvProtocol.getTaskNo1(); //鍏ュ簱鏀捐揣浼樺厛宸ヤ綅2鎵ц WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNoPut(workNo); + WrkMast wrkMast = wrkMastMapper.selectByWrkNo(workNo); if( null == wrkMastSta ) { News.infoNoLog( " - 1" + " - 4" + " - 鏌ヨ鏃犲緟鍏ュ簱鏁版嵁--wrk_sts0, 宸ヤ綔鍙�={}", staProtocol.getWorkNo()); continue; } + boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ try{ + rgvThread.setPaking(false); + wrkMast.setSheetNo("2"); wrkMastSta.setWrkSts(2); wrkMastStaMapper.updateById(wrkMastSta); + wrkMastMapper.updateById(wrkMast); log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); }catch (Exception e){ log.error("鏇存柊灏忚溅浠诲姟澶辫触"); @@ -3159,7 +3170,8 @@ boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ try{ - wrkMastSta.setWrkSts(3); + rgvThread.setPaking(false); + wrkMastSta.setWrkSts(2); wrkMastStaMapper.updateById(wrkMastSta); log.error("鏇存柊灏忚溅浠诲姟鎴愬姛"); }catch (Exception e){ @@ -3191,6 +3203,7 @@ List<WrkMastSta> wrkMastStaList = wrkMastStaService.selectList( new EntityWrapper<WrkMastSta>() .eq("wrk_sts" ,2) + .eq("rgv_no", rgvProtocol.getRgvNo()) ); for(WrkMastSta wrkMastSta : wrkMastStaList){ if(!Objects.equals(wrkMastSta.getWrkNo(), taskNo1) && !Objects.equals(wrkMastSta.getWrkNo(), taskNo2)){ @@ -3203,8 +3216,13 @@ } } } - if(rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 && !rgvProtocol.isLoaded1ing() && !rgvProtocol.isLoaded2ing()){ + if(rgvProtocol.getStatusType1() == RgvStatusType.IDLE + && rgvProtocol.getModeType() == RgvModeType.AUTO + && rgvProtocol.getTaskNo1() == 0 && rgvProtocol.getTaskNo2() == 0 + && !rgvProtocol.isLoaded1ing() + && !rgvProtocol.isLoaded2ing()){ rgvThread.setPakRgv(true); + rgvThread.setPakMk(true); rgvThread.setPakIn(true); rgvThread.setPakOut(true); rgvThread.setPakToCrn(true); @@ -3230,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(); @@ -3270,11 +3292,12 @@ // rgvPreScheduling();//鑻ユ殏鏃犱笅鍙戜换鍔¢璋冨害鎻愬墠鍒板彇璐х偣 // } - if (rgvProtocol.getStatusType() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) { - //灏忚溅鎵ц鏀捐揣浠诲姟 - rgvOutExecute(); - } +// if (rgvProtocol.getStatusType1() == RgvStatusType.IDLE && rgvProtocol.getModeType() == RgvModeType.AUTO) { +// //灏忚溅鎵ц鏀捐揣浠诲姟 +// rgvOutExecute(); +// +// } } } public synchronized void rgvRunWrkMastInTest(){ @@ -3326,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) { @@ -3339,7 +3363,9 @@ News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); continue; } + wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo()); } + if (staProtocol == null) { News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍏ュ簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); continue; @@ -3369,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; @@ -3391,9 +3417,17 @@ boolean sign = false; sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ - 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.setPakOut(false);//鍑哄簱涓嶅厑璁� try{ wrkMastSta.setWrkSts(1); @@ -3420,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) { @@ -3433,6 +3469,8 @@ News.error("" + mark + " - 1" + " - 2" + " - 鍏ュ簱 ===>>Rgv绔欑偣鍦ㄦ暟鎹簱涓嶅瓨鍦�, 绔欑偣缂栧彿={}", rgvStn.getStaNo()); continue; } + wrkMastSta3 = wrkMastStaMapper.selectByWrkNo(staProtocol2.getWorkNo()); + } if (staProtocol == null) { News.infoNoLog("" + mark + " - 1" + " - 1" + " - Rgv鍑哄簱绔欎俊鎭�(staProtocol!=null缁х画鎵ц)锛歴taProtocol=" + staProtocol); @@ -3485,6 +3523,20 @@ boolean sign = false; sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂 if (sign){ + 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); @@ -3720,9 +3772,9 @@ // } // return wrkEnable; // } -// /** -// * 灏忚溅棰勮皟搴� -// */ + /** + * 灏忚溅棰勮皟搴� + */ // public synchronized void rgvPreScheduling(){ // try{ // List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); @@ -3759,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); @@ -3767,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; @@ -3824,6 +3875,7 @@ log.error("RGV鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvId, JSON.toJSON(rgvCommand)); return false; } else { + return true; } @@ -3893,23 +3945,29 @@ 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(); + 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; } List<BasArm> basArmList = basArmService.selectList(new EntityWrapper<BasArm>() .eq("arm_no", armSta.getArmNo()) - .eq("sta_no", armSta.getStaNo()) + .eq("sta_no_sou", armSta.getStaNo()) .eq("status", 1)); for (BasArm basArm : basArmList) { if (basArm.getStatus()!=1){ @@ -3970,19 +4028,19 @@ staProtocol = staProtocol.clone(); } - if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { - int workNo = commonService.getWorkNo(6);//寰呭畬鍠� - // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 - staProtocol.setWorkNo(workNo); - staProtocol.setStaNo(armSta.getStaNoEnd().shortValue()); - devpThread.setPakMk(staProtocol.getSiteId(), false); - boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); - log.error("杈撻�佺嚎涓嬪彂5锛�"+workNo+","+armSta.getStaNoEnd()); - if (!result) { - News.error(""+" - 3"+" - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); - } +// if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { +// int workNo = commonService.getWorkNo(6);//寰呭畬鍠� +// // 鏇存柊绔欑偣淇℃伅 涓� 涓嬪彂plc鍛戒护 +// staProtocol.setWorkNo(workNo); +// staProtocol.setStaNo(armSta.getStaNoEnd().shortValue()); +// devpThread.setPakMk(staProtocol.getSiteId(), false); +// boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); +// log.error("杈撻�佺嚎涓嬪彂5锛�"+workNo+","+armSta.getStaNoEnd()); +// if (!result) { +// News.error(""+" - 3"+" - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId()); +// } basArmMastService.updateArmMastStatus(basArmMastList.get(0).getArmNo(),basArmMastList.get(0).getSortingLine(),4,5); - } +// } } } } catch (Exception e){ @@ -4001,6 +4059,16 @@ continue; } try{ + List<BasArmMast> basArmMastListError = basArmMastService.selectList( + new EntityWrapper<BasArmMast>() + .eq("arm_no", basArm.getArmNo()) + .eq("sorting_line", basArm.getSortingLineSou()) + .eq("status", 9) + ); + if (!basArmMastListError.isEmpty()){ + log.error(basArm.getArmNo()+"鍙锋満姊拌噦瀛樺湪寮傚父鏁版嵁闇�瑕佺淮鎶わ紒锛侊紒"); + continue; + } List<BasArmMast> basArmMastListRuning = basArmMastService.selectList( new EntityWrapper<BasArmMast>() .eq("arm_no", basArm.getArmNo()) -- Gitblit v1.9.1