| | |
| | | crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 目标库位列 |
| | | crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 目标库位层 |
| | | crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 目标库位排 |
| | | crnCommand.setCommand((short) 1); |
| | | // crnCommand.setCommand((short) 1); |
| | | if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { |
| | | log.error("堆垛机命令生成失败,堆垛机号={},任务数据={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); |
| | | throw new CoolException("堆垛机命令生成失败"); |
| | |
| | | crnCommand.setDestinationPosX(Utils.getRowShort(taskWrk.getTargetPoint())); // 目标库位排 |
| | | crnCommand.setDestinationPosY(Utils.getBayShort(taskWrk.getTargetPoint())); // 目标库位列 |
| | | crnCommand.setDestinationPosZ(Utils.getLevShort(taskWrk.getTargetPoint())); // 目标库位层 |
| | | crnCommand.setCommand((short) 1); |
| | | // crnCommand.setCommand((short) 1); |
| | | if (!MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, crnCommand))) { |
| | | log.error("堆垛机命令下发失败,堆垛机号={},任务数据={}", taskWrk.getCrnNo(), JSON.toJSON(crnCommand)); |
| | | } else { |
| | |
| | | Long[][] avoidedRange = new TrackRangeUtils().avoidRangeArr(rgvSlave, trackEntireLength, trackBenchmark, avoidDistance); |
| | | List<Integer> belongToRange = RouteUtils.SortNearby(RouteUtils.belongToRange(rangeList, avoidedRange[0], basDevpPositions), rgvProtocol.RgvPos, basDevpPositions); |
| | | |
| | | for (Integer staNoNow : belongToRange) { |
| | | for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | if (taskWrk != null) { |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | if (sign) { |
| | | break; |
| | | } |
| | | } |
| | | if (!sign) { |
| | | // 筛选范围内取货任务 |
| | | for (Integer staNoNow : belongToRange) { |
| | | for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | if (taskWrk != null) { |
| | | Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | if (sign) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | if (!sign && staList.size()==1){ |
| | | if (rgvOtherIDLEOther(rgvSlave)){ |
| | | if (!rgvOtherIDLE(rgvSlave,staList.get(0))){ |
| | |
| | | } |
| | | } |
| | | |
| | | if(!sign){ |
| | | for (Integer staNoNow : belongToRange) { |
| | | for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | if (taskWrk != null) { |
| | | BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()))); |
| | | if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) { |
| | | sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | if (sign) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | if (!sign) { |
| | | // 筛选范围内取货任务 |
| | | for (Integer staNoNow : belongToRange) { |
| | | for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |
| | | if (rgvStn.getStaNo().equals(staNoNow)) { |
| | | TaskWrk taskWrk = deviceDetection(rgvStn); |
| | | if (taskWrk != null) { |
| | | Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint()); |
| | | for (RgvSlave.RgvStn rgvStnOut : rgvSlave.getRgvOutSta()) { |
| | | if (rgvStnOut.getStaNo().equals(outStaNo)) { |
| | | sign = taskGenerate(rgvSlave, rgvStn, 0); |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | if (sign) { |
| | | break; |
| | | } |
| | | } |
| | | } |
| | | |
| | | if (!sign) { |
| | | for (Integer staNoNow : rangeList) { |
| | | for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) { |