From a1a63f728040e3abcb2e87c7ee8bce86a735e33a Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期三, 28 五月 2025 09:30:50 +0800 Subject: [PATCH] #ZH --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 74 ++++++++++++++++++++++++++++++++---- 1 files changed, 65 insertions(+), 9 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 585322f..f9b5f6e 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -293,7 +293,7 @@ staProtocol.setWorkNo(9999); staProtocol.setStaNo(inSta.getBackSta()); devpThread.setPakMk(staProtocol.getSiteId(), false); - devpThread.setErrorDev(staProtocol.getSiteId(), jsonObject.getString("msg")); + devpThread.setErrorDev(staProtocol.getSiteId(), jsonObject.getString("message")); MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); } } else { @@ -858,11 +858,12 @@ crnCommand.setTaskNo(taskWrk.getWrkNo().shortValue()); // 宸ヤ綔鍙� crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 - crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶅垪 - crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅眰 - crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosX(crnStn.getRow().shortValue()); // 婧愬簱浣嶆帓 + crnCommand.setSourcePosY(crnStn.getBay().shortValue()); // 婧愬簱浣嶅垪 + crnCommand.setSourcePosZ(crnStn.getLev().shortValue()); // 婧愬簱浣嶅眰 crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� - crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� + int bay1 = Utils.getBayShort(taskWrk.getTargetPoint()) + 1; + crnCommand.setDestinationPosY((short)bay1); // 鐩爣搴撲綅灞� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� // crnCommand.setCommand((short) 1); if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { @@ -989,12 +990,13 @@ command.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� command.setTaskMode(CrnTaskModeType.PAKIN); // 浠诲姟妯″紡 command.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓 - command.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪 + int bayS = Utils.getBayShort(taskWrk.getStartPoint()) + 1; + command.setSourcePosY((short)bayS); // 婧愬簱浣嶅垪 command.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰 command.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺� command.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒� command.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞� - command.setCommand((short) 1); +// command.setCommand((short) 1); if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command))) { log.error("鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐ワ紝鍫嗗灈鏈哄彿={}锛屽贩閬�={}锛屼换鍔℃暟鎹�={}", slave.getId(), taskWrk.getCrnNo(), JSON.toJSON(command)); devpThread.setErrorDev(staProtocol.getSiteId(), crnProtocol.getLaneNo()+"宸烽亾鍫嗗灈鏈哄懡浠ょ敓鎴愬け璐�"); @@ -1120,10 +1122,12 @@ crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣� crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE); // 浠诲姟妯″紡: 搴撲綅绉昏浆 crnCommand.setSourcePosX(Utils.getRowShort(taskWrk.getStartPoint())); // 婧愬簱浣嶆帓 - crnCommand.setSourcePosY(Utils.getBayShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅垪 + int bayS = Utils.getBayShort(taskWrk.getStartPoint()) + 1; + crnCommand.setSourcePosY((short)bayS); // 婧愬簱浣嶅垪 crnCommand.setSourcePosZ(Utils.getLevShort(taskWrk.getStartPoint())); // 婧愬簱浣嶅眰 crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鎺� - crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅鍒� + int bayE = Utils.getBayShort(taskWrk.getTargetPoint()) + 1; + crnCommand.setDestinationPosY((short)bayE); // 鐩爣搴撲綅鍒� crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 鐩爣搴撲綅灞� // crnCommand.setCommand((short) 1); if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { @@ -1509,7 +1513,51 @@ } return true; } + public boolean rgvOtherIDLEOther2(RgvSlave slave) { + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getOtherId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getOtherId()); + + if (rgvProtocol == null || rgvTaskProtocol == null) { + return false; + } + if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) + || rgvProtocol.getRgvPos().equals(0L) + || rgvTaskProtocol.getAvoid() == -1) { + return false; + } + + if (rgvProtocol.getLoaded()!=0) { + return false; + } + return true; + } public boolean rgvOtherIDLE(RgvSlave slave,Integer staNo) { + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + + if (rgvProtocol == null || rgvTaskProtocol == null) { + return false; + } + if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 + || ((!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + return false; + } + RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); + + if (rgvProtocolOther == null) { + return true; + } + if (rgvProtocolOther.statusEnable) { + BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", staNo)); + if (Math.abs(basDevpPosition.getPlcPosition()-rgvProtocol.getRgvPos()) + >= + Math.abs(basDevpPosition.getPlcPosition()-rgvProtocolOther.getRgvPos())){ + return false; + } + } + return true; + } + public boolean rgvOtherIDLE2(RgvSlave slave,Integer staNo) { RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); @@ -1683,6 +1731,14 @@ } } + if (!sign && staList.size()==1){ + if (rgvOtherIDLEOther2(rgvSlave)){ + if (!rgvOtherIDLE2(rgvSlave,staList.get(0))){ + sign=true; + } + } + } + if (!sign) { for (Integer staNoNow : rangeList) { for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { -- Gitblit v1.9.1