| | |
| | | } |
| | | } |
| | | if (rgvProtocol.getTaskNo1()!=0 && rgvProtocol.getTaskNo1()!=9999){ |
| | | // if (rgvProtocol.getTaskNo1()==32222){ |
| | | // boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); |
| | | // if (!rgvComplete){ |
| | | // log.error("小车复位失败,小车号{}!",rgvProtocol.getRgvNo()); |
| | | // } |
| | | // BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); |
| | | // basRgvMap.setNowRoute(rgvProtocol.getRgvPosI()); |
| | | // rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415"); |
| | | // rgvThread.setPakMk(true); |
| | | // break; |
| | | // } |
| | | WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); |
| | | WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1()); |
| | | if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){ |
| | | log.error("未查到小车执行任务或者执行任务状态不符合!"+wrkMastSta); |
| | | continue; |
| | |
| | | continue; |
| | | } |
| | | } |
| | | // else { |
| | | // log.error("rgv任务完成给输送线下发命令,但未查询到工作档"); |
| | | // // 下发站点信息 |
| | | // Map<Integer,Integer> map = new HashMap<>(); |
| | | // map.put(101,102);map.put(112,111); |
| | | // map.put(100,100); |
| | | // staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue()); |
| | | // staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).shortValue()); |
| | | // devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | //// log.error("rgv任务完成给输送线下发命令:"+wrkMast.getWrkNo()+","+wrkMast.getStaNo()); |
| | | // if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) { |
| | | // continue; |
| | | // } |
| | | // } |
| | | int sourceSta = wrkMast.getSourceStaNo(); |
| | | boolean rgvComplete = false; |
| | | |
| | |
| | | log.error("小车复位失败,小车号{}!",rgvProtocol.getRgvNo()); |
| | | break; |
| | | } |
| | | WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue()); |
| | | WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1()); |
| | | wrkMast1.setPdcType("Y"); |
| | | |
| | | wrkMastService.updateById(wrkMast1); |
| | |
| | | }catch (Exception e){ |
| | | log.error("小车复位线程报错!"+e); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * rgv出入库任务下发 |
| | | */ |
| | | public synchronized void rgvIoExecute(Integer mark) { |
| | | List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>()); |
| | | |
| | | for (BasRgvMap rgvSlave:basRgvMaps) { |
| | | // 获取堆垛机信息 |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo()); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | | continue; |
| | | } |
| | | BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo()); |
| | | if (basRgv == null) { |
| | | log.error("{}号RGV尚未在数据库进行维护!4", rgvSlave.getRgvNo()); |
| | | continue; |
| | | } |
| | | |
| | | // 只有当堆垛机空闲 并且 无任务时才继续执行 |
| | | if (rgvProtocol.getStatusType() == CrnStatusType.IDLE && rgvProtocol.getTaskNo() == 0 && rgvProtocol.getModeType() == CrnModeType.AUTO |
| | | && rgvProtocol.getLoaded() == 0 && rgvProtocol.getForkPos() == 0) { |
| | | News.warnNoLog(""+mark+" - 0"+" - 开始执行堆垛机入出库作业下发"); |
| | | // 如果最近一次是入库模式 |
| | | if (rgvProtocol.getLastIo().equals("I")) { |
| | | if (basCrnp.getInEnable().equals("Y")) { |
| | | //mark - 1 - .... |
| | | this.crnStnToLoc(crn, crnProtocol,mark); // 入库 |
| | | crnProtocol.setLastIo("O"); |
| | | } else if (basCrnp.getOutEnable().equals("Y")) { |
| | | //mark - 2 - .... |
| | | this.locToCrnStn(crn, crnProtocol,mark); // 出库 |
| | | crnProtocol.setLastIo("I"); |
| | | } |
| | | } |
| | | // 如果最近一次是出库模式 |
| | | else if (crnProtocol.getLastIo().equals("O")) { |
| | | if (basCrnp.getOutEnable().equals("Y")) { |
| | | this.locToCrnStn(crn, crnProtocol,mark); // 出库 |
| | | crnProtocol.setLastIo("I"); |
| | | } else if (basCrnp.getInEnable().equals("Y")) { |
| | | this.crnStnToLoc(crn, crnProtocol,mark); // 入库 |
| | | crnProtocol.setLastIo("O"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | } |
| | | // News.infoNoLog(""+mark+" - 0"+" - 堆垛机入出库作业下发执行完成"); |
| | | } |
| | | /** |
| | | * 执行小车搬运任务 |
| | |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route); |
| | | for (WrkMastSta wrkMastSta : wrkMastStaList){ |
| | | List<Integer> staNos = Arrays.asList(1042, 1105, 1038, 1036, 2037);//入库口 |
| | | if (staNos.contains(wrkMastSta.getStaStart())) { |
| | | if (staNos.contains(wrkMastSta.getStaStart())) {//非入库口(出库口)限制 |
| | | continue; |
| | | } |
| | | boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //命令下发 |
| | |
| | | // 根据输送线plc遍历 |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | // 遍历入库口 入库预调度 |
| | | for() |
| | | List<Integer> staNos = Arrays.asList(1042, 1043, 1105, 1104); |
| | | for (Integer staNo : staNos) { |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |