From 7cf48f71577796759277ff0b413823d6131c365e Mon Sep 17 00:00:00 2001 From: dubin <dubin> Date: 星期二, 26 八月 2025 17:12:08 +0800 Subject: [PATCH] 联调 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 108 insertions(+), 12 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 3845740..45e7d2c 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; +import com.baomidou.mybatisplus.plugins.Page; import com.core.common.Cools; import com.core.common.DateUtils; import com.core.exception.CoolException; @@ -94,6 +95,8 @@ private WrkMastService wrkMastService; @Autowired private BasRgvMapService basRgvMapService; + @Autowired + private BasCrnOptService crnOptService; @Value("${wms.url}") private String wmsUrl; @@ -150,7 +153,7 @@ errMsg = "鍙宠秴闄�"; back = true; } - if (!back && staProtocol.getWeight() > 1000) { + if (!back && staProtocol.getWeight() > 15000) { errMsg = "瓒呴噸鎴栨湭璇诲彇"; back = true; } @@ -180,7 +183,7 @@ if (!staProtocol.isPakMk()) { continue; } - staProtocol.setWorkNo(wrkNo); + staProtocol.setWorkNo(wrkNo);//閫�鍥� 宸ヤ綔鍙�:10000 News.info("{}PLC鍏ュ簱鍥為��锛歿}锛屼换鍔″彿锛歿}", inSta.getStaNo(), errMsg, wrkNo); wrkNo++; staProtocol.setStaNo(inSta.getBackSta().shortValue()); @@ -334,7 +337,7 @@ } } -// News.infoNoLog(""+mark+" - 0"+" - 缁勬墭 ===銆嬫墽琛屽畬鎴�"); + News.infoNoLog(""+mark+" - 0"+" - 缁勬墭 ===銆嬫墽琛屽畬鎴�"); } @@ -465,7 +468,7 @@ // 閫�鍥� // if (back) { // log.info("errmsg: " + errMsg); -//// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); +// News.warn("鎵爜鍏ュ簱澶辫触锛寋}鍏ュ簱绔欏洜{}寮傚父锛屾墭鐩樺凡琚��鍥�", inSta.getStaNo(), errMsg); // MessageQueue.offer(SlaveType.Led, pickSta.getLed(), new Task(5, errMsg)); // if (!staProtocol.isLoading()) { // continue; @@ -500,7 +503,7 @@ // // // if (!Cools.isEmpty(barcode)) { -//// News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode); +// News.info(""+mark+" - 1"+" - {}鍙锋潯鐮佹壂鎻忓櫒妫�娴嬫潯鐮佷俊鎭細{}", pickSta.getBarcode(), barcode); // if ("NG".endsWith(barcode) || "NoRead".equals(barcode)) { // continue; // } @@ -517,7 +520,7 @@ staProtocol = staProtocol.clone(); } -// // 鍏ュ嚭搴撴ā寮忓垽鏂� + // 鍏ュ嚭搴撴ā寮忓垽鏂� // if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { @@ -1195,14 +1198,18 @@ } else { staProtocol = staProtocol.clone(); } - StaProtocol staProtocol1 = devpThread.getStation().get(crnStn.getStaNo() - 1); + StaProtocol staProtocol1 = staProtocol.getSiteId()==101?devpThread.getStation().get(crnStn.getStaNo() + 1):devpThread.getStation().get(crnStn.getStaNo() - 1); +// StaProtocol staProtocol1 = devpThread.getStation().get(crnStn.getStaNo() - 1); +// StaProtocol staProtocol1 = devpThread.getStation().get(crnStn.getStaNo() + 1); if (staProtocol1 == null) { News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol); break; } else { staProtocol1 = staProtocol1.clone(); } - StaProtocol staProtocol2 = devpThread.getStation().get(crnStn.getStaNo() - 2); + StaProtocol staProtocol2 = staProtocol.getSiteId()==101?devpThread.getStation().get(crnStn.getStaNo() + 2):devpThread.getStation().get(crnStn.getStaNo()); +// StaProtocol staProtocol2 = devpThread.getStation().get(crnStn.getStaNo() - 2); +// StaProtocol staProtocol2 = devpThread.getStation().get(crnStn.getStaNo() + 2); if (staProtocol2 == null) { News.infoNoLog("" + mark + " - 2" + " - 3" + " - 鍫嗗灈鏈哄嚭搴撶珯淇℃伅(staProtocol!=null缁х画鎵ц,鍚﹀垯寰幆缁堟)锛歴taProtocol=" + staProtocol); break; @@ -1210,7 +1217,7 @@ staProtocol2 = staProtocol2.clone(); } //鍑哄叆鍙h緭閫佺嚎鍙厑璁稿瓨鍦ㄤ竴涓墭鐩� - if(staProtocol.isLoading() || staProtocol1.isLoading() || staProtocol2.isLoading() ) { + if(staProtocol.isLoading() || staProtocol1.isLoading() || staProtocol2.isLoading() || staProtocol.getWorkNo() != 0 || staProtocol1.getWorkNo() != 0 || staProtocol2.getWorkNo() != 0) { break; } @@ -1541,7 +1548,10 @@ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 if (crnProtocol.statusType == CrnStatusType.WAITING && crnProtocol.getTaskNo() != 0) { News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔锛屼换鍔″彿:" + crnProtocol.getTaskNo()); - + if (crnProtocol.getTaskNo() == 9999){ + crnThread.setResetFlag(true); + continue; + } // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); if (wrkMast == null) { @@ -1768,7 +1778,7 @@ LedCommand ledCommand = new LedCommand(); ledCommand.setWorkNo(dto.getWorkNo()); ledCommand.setIoType(1); - ledCommand.setTitle("鍏ㄦ澘鍏ュ簱"); + ledCommand.setTitle("绌烘澘鍏ュ簱"); ledCommand.setLocNo(dto.getLocNo()); ledCommand.setStaNo(dto.getStaNo()); commands.add(ledCommand); @@ -1805,7 +1815,7 @@ } } } -// News.infoNoLog(""+mark+" - 0"+" - 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐ф墽琛屽畬鎴�"); + News.infoNoLog(""+mark+" - 0"+" - 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐ф墽琛屽畬鎴�"); } /** @@ -3193,4 +3203,90 @@ } } + public synchronized void crnMove() { + for (CrnSlave crn : slaveProperties.getCrn()) { + // 鑾峰彇鍫嗗灈鏈轰俊鎭� + CrnThread crnThread = (CrnThread) SlaveConnection.get(SlaveType.Crn, crn.getId()); + CrnProtocol crnProtocol = crnThread.getCrnProtocol(); + if (crnProtocol == null) { + continue; + } + BasCrnp basCrnp = basCrnpService.selectById(crn.getId()); + if (basCrnp == null) { + log.error("{}鍙峰爢鍨涙満灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", crn.getId()); + continue; + } + + if (crnProtocol.getStatusType() == CrnStatusType.IDLE && crnProtocol.getTaskNo() == 0 && crnProtocol.getModeType() == CrnModeType.AUTO) { + +// if ((crnProtocol.getCrnNo()==3 || crnProtocol.getCrnNo()==4) && crnProtocol.getBay()==0 && crnProtocol.getLevel() == 1) { +// continue; +// } +// if ((crnProtocol.getCrnNo()==1 || crnProtocol.getCrnNo()==2) && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) { +// continue; +// } + if (crnProtocol.getCrnNo()==1 && crnProtocol.getBay()==1 && crnProtocol.getLevel() == 1) { + continue; + } + Page<BasCrnOpt> basCrnOptPage = crnOptService.selectPage(new Page<>(1, 1), new EntityWrapper<BasCrnOpt>().eq("crn_no", crn.getId()).orderBy("send_time", false)); + if (basCrnOptPage != null && basCrnOptPage.getRecords() != null && basCrnOptPage.getRecords().size() > 0) { + if (System.currentTimeMillis() - basCrnOptPage.getRecords().get(0).getSendTime().getTime() < 1000 * 60 * 3) { + continue; + } + } else { + if (System.currentTimeMillis() - crnProtocol.getLastCommandTime() < 1000 * 60 * 2) { + continue; + } + } + List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>() + .eq("crn_no", crn.getId()) + .notIn("wrk_sts", 5, 14, 15) + ); + if (!wrkMasts.isEmpty()) { + continue; + } + + CrnSlave.CrnStn crnStn = crn.getCrnInStn().get(0); + + News.info("鍫嗗灈鏈烘棤浠诲姟鑷姩鍥炲叆搴撳彛寰呮満==>>" + crnProtocol.getCrnNo() + "鍙峰爢鍨涙満"); + // 鍛戒护涓嬪彂鍖� -------------------------------------------------------------------------- + CrnCommand crnCommand = new CrnCommand(); +// if (crnProtocol.getCrnNo()==3 || crnProtocol.getCrnNo()==4){ +// crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� +// crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙� +// crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +// crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍫嗗灈鏈虹Щ鍔� +// crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 +// crnCommand.setSourcePosY((short) 0); // 婧愬簱浣嶅垪 +// crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰 +// crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� +// crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� +// crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� +// crnCommand.setCommand((short) 1); +// }else { + crnCommand.setCrnNo(crnProtocol.getCrnNo()); // 鍫嗗灈鏈虹紪鍙� + crnCommand.setTaskNo((short) 9999); // 宸ヤ綔鍙� + crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� +// crnCommand.setTaskMode(CrnTaskModeType.GO_ORIGIN); // 浠诲姟妯″紡: 鍫嗗灈鏈虹Щ鍔� + crnCommand.setTaskMode(CrnTaskModeType.X_MOVE);//浣欏閿愰簰鍥炲師鐐逛换鍔℃ā寮�: 绔欎綅杞Щ + crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY((short) 1); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ((short) 1); // 婧愬簱浣嶅眰 + crnCommand.setDestinationPosX((short) 0); // 鐩爣搴撲綅鎺� + crnCommand.setDestinationPosY((short) 0); // 鐩爣搴撲綅鍒� + crnCommand.setDestinationPosZ((short) 0); // 鐩爣搴撲綅灞� + crnCommand.setCommand((short) 1); +// } + if (!MessageQueue.offer(SlaveType.Crn, crnProtocol.getCrnNo(), new Task(2, crnCommand))) { + News.error("鍫嗗灈鏈虹Щ鍔ㄥ懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", crnProtocol.getCrnNo(), JSON.toJSON(crnCommand)); + } + crnThread.setBackHpFlag(true); + try { + Thread.sleep(500); + } catch (Exception e) { + e.printStackTrace(); + } + } + } + } } -- Gitblit v1.9.1