| | |
| | | @Value("${wms.url}") |
| | | private String wmsUrl; |
| | | |
| | | @Value("${wms.rgvOpen}") |
| | | private boolean rgvOpen; |
| | | |
| | | /** |
| | | * 组托 |
| | | * 入库站,根据条码扫描生成入库工作档,工作状态 2 |
| | |
| | | // // 入出库模式判断 |
| | | // if (devpThread.ioMode != IoModeType.PAKIN_MODE) { continue; } |
| | | |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk() && staProtocol.getWorkNo()!=0) { |
| | | // WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode); |
| | | WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7"); |
| | | // WrkMast wrkMast = wrkMastMapper.selectPakInStep5(staProtocol.getSiteId(),"7"); |
| | | WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo()); |
| | | if (wrkMast == null) { |
| | | // 无拣料数据 |
| | | continue; |
| | |
| | | staProtocol.setStaNo(dto.getStaNo()); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | // ledThread.errorReset(); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(5, staProtocol)); |
| | | if (!result) { |
| | | log.error("发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId()); |
| | | } |
| | |
| | | param.setIoType(10); |
| | | param.setSourceStaNo(122); |
| | | param.setLocType1((short)1); |
| | | param.setRgvNo(rgvProtocol.getRgvNo()); |
| | | String response = new HttpHandler.Builder() |
| | | .setUri(wmsUrl) |
| | | .setPath("/rpc/pakin/empty/loc/v1") |
| | |
| | | DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); |
| | | // 命令集合 |
| | | List<LedCommand> commands = new ArrayList<>(); |
| | | // 工作档集合 |
| | | String orderNo = null; |
| | | // 工作档集合 |
| | | List<WrkMast> wrkMasts = new ArrayList<>(); |
| | | for (Integer staNo : led.getStaArr()) { |
| | | // 获取叉车站点 |
| | |
| | | // ledCommand.setSourceStaNo(wrkMast.getSourceStaNo()); |
| | | if (wrkMast.getIoType() != 110 && wrkMast.getIoType() != 10) { |
| | | List<WrkDetl> wrkDetls = wrkDetlService.findByWorkNo(wrkMast.getWrkNo()); |
| | | wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl))); |
| | | if (Cools.isEmpty(wrkDetls)){ |
| | | continue; |
| | | } |
| | | Integer count1 = wrkDetlService.count1(); |
| | | Integer count2 = wrkDetlService.count2(wrkDetls.get(0).getOrderNo()); |
| | | Integer count3 = wrkDetlService.count3(); |
| | | wrkDetls.forEach(wrkDetl -> ledCommand.getMatDtos().add(new MatDto(wrkDetl,count1,count2,count3))); |
| | | } |
| | | commands.add(ledCommand); |
| | | } |
| | |
| | | if (basDevp135.getReportSign()!=0){ |
| | | continue; |
| | | } |
| | | BasDevp basDevp121 = basDevpService.selectById(121); |
| | | if (basDevp121.getReportSign()!=0){ |
| | | continue; |
| | | } |
| | | BasDevp basDevp120 = basDevpService.selectById(120); |
| | | if (basDevp120.getReportSign()!=0){ |
| | | continue; |
| | | } |
| | | WrkMast wrkMast131 = wrkMastMapper.selectWrkMastUnstackingOne202Two(131); |
| | | if (Cools.isEmpty(wrkMast131)){ |
| | | continue; |
| | |
| | | } |
| | | |
| | | if (!staProtocol.isLoading()){ |
| | | continue; |
| | | } |
| | | StaProtocol staProtocol120 = devpThread.getStation().get(120); |
| | | if (staProtocol120 == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol120 = staProtocol120.clone(); |
| | | } |
| | | |
| | | if (staProtocol120.isLoading()){ |
| | | continue; |
| | | } |
| | | StaProtocol staProtocol121 = devpThread.getStation().get(121); |
| | | if (staProtocol121 == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol121 = staProtocol121.clone(); |
| | | } |
| | | |
| | | if (staProtocol121.isLoading()){ |
| | | continue; |
| | | } |
| | | // if (!staProtocol.getWorkNo().equals(wrkMast131.getWrkNo())){ |
| | |
| | | } |
| | | } |
| | | Date date = new Date(); |
| | | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); |
| | | if (staProtocol == null) { |
| | | log.info(date+"取放任务下发:未查询到站点信息:"+wrkMastSta); |
| | | continue; |
| | | } |
| | | if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){ |
| | | continue; |
| | | } |
| | | if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ |
| | | if (staProtocol.isLoadingSuper()){ |
| | | continue; |
| | | } |
| | | } |
| | | if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){ |
| | | if (!staProtocol.isEmptyMk()){ |
| | | continue; |
| | | } |
| | | } |
| | | BasDevp basDevpS = basDevpService.selectById(wrkMastSta.getStaStart()); |
| | | if (!basDevpS.getAutoing().equals("Y") || !basDevpS.getLoading().equals("Y") || basDevpS.getWrkNo()!=wrkMastSta.getWrkNo().intValue()){ |
| | | continue; |
| | | } |
| | | StaProtocol staProtocols = devpThread.getStation().get(basDevpS.getDevNo()); |
| | | if (staProtocols == null) { |
| | | log.info(date+"取放任务下发:未查询到站点信息:"+wrkMastSta); |
| | | continue; |
| | | } |
| | | if (!staProtocols.isAutoing() || !staProtocols.isLoading() || staProtocols.getWorkNo() != wrkMastSta.getWrkNo().intValue()){ |
| | | continue; |
| | | } |
| | | |
| | | |
| | | log.info(date+"取放任务下发:小车工作档:"+wrkMastSta); |
| | | log.info(date+"取放任务下发:目标站状态:"+basDevp); |
| | | boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); |
| | |
| | | } |
| | | } |
| | | Date date = new Date(); |
| | | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); |
| | | if (staProtocol == null) { |
| | | log.info(date+"拆盘任务下发:未查询到站点信息:"+wrkMastSta); |
| | | continue; |
| | | } |
| | | if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){ |
| | | continue; |
| | | } |
| | | if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ |
| | | if (staProtocol.isLoadingSuper()){ |
| | | continue; |
| | | } |
| | | } |
| | | if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){ |
| | | if (!staProtocol.isEmptyMk()){ |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | log.info(date+"拆盘任务下发:小车工作档:"+wrkMastSta); |
| | | log.info(date+"拆盘任务下发:目标站状态:"+basDevp); |
| | | sign = rgvPutEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//拆盘 |
| | |
| | | } |
| | | } |
| | | Date date = new Date(); |
| | | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); |
| | | if (staProtocol == null) { |
| | | log.info(date+"满放任务下发:未查询到站点信息:"+wrkMastSta); |
| | | continue; |
| | | } |
| | | if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo() != 0){ |
| | | continue; |
| | | } |
| | | if (basDevp.getDevNo()>117 && basDevp.getDevNo()<124){ |
| | | if (staProtocol.isLoadingSuper()){ |
| | | continue; |
| | | } |
| | | } |
| | | if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){ |
| | | if (!staProtocol.isEmptyMk()){ |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | log.info(date+"满放任务下发:小车工作档:"+wrkMastSta); |
| | | log.info(date+"满放任务下发:目标站状态:"+basDevp); |
| | | sign = rgvPutEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta); |
| | |
| | | } |
| | | } |
| | | Date date = new Date(); |
| | | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); |
| | | if (staProtocol == null) { |
| | | log.info(date+"叠盘任务下发:未查询到站点信息:"+wrkMastSta); |
| | | continue; |
| | | } |
| | | if (!staProtocol.isAutoing() || !staProtocol.isLoading()){ |
| | | continue; |
| | | } |
| | | if (basDevp.getDevNo()>=118 && basDevp.getDevNo()<=123){ |
| | | if (!staProtocol.isEmptyMk()){ |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | log.info(date+"叠盘任务下发:小车工作档:"+wrkMastSta); |
| | | log.info(date+"叠盘任务下发:目标站状态:"+basDevp); |
| | | sign = rgvTakeEmpty(rgvProtocol.getRgvNo(),wrkMastSta);//叠盘 |
| | |
| | | continue; |
| | | } |
| | | Date date = new Date(); |
| | | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, rgvSlave.getDevpPlcId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(basDevp.getDevNo()); |
| | | if (staProtocol == null) { |
| | | log.info(date+"满取任务下发:未查询到站点信息:"+wrkMastSta); |
| | | continue; |
| | | } |
| | | if (!staProtocol.isAutoing() || staProtocol.isLoading()){ |
| | | continue; |
| | | } |
| | | |
| | | log.info(date+"满取任务下发:小车工作档:"+wrkMastSta); |
| | | log.info(date+"满取任务下发:目标站状态:"+basDevp); |
| | | sign = rgvTakeEmptyFull(rgvProtocol.getRgvNo(),wrkMastSta); |
| | |
| | | && rgvProtocol.getStatusType1() == RgvStatusType.IDLE |
| | | && rgvProtocol.getStatusType2() == RgvStatusType.IDLE |
| | | ) { |
| | | |
| | | BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo()); |
| | | // Integer fallMerge = RouteUtils.RouteIndexFarMas(basRgvMap.getRgvNo(), basRgvMap.getEndRoute()); //获取合并干涉项 |
| | | // List<Integer> route = RouteUtils.getRoute(basRgvMap.getStartRoute(),fallMerge); |
| | | // List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route ,route); |
| | | // if (!wrkMastStaList.isEmpty()){ |
| | | // log.info("小车存在可执行任务,跳过避让!!4214"); |
| | | // return; |
| | | // } |
| | | if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){ |
| | | // if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),RouteUtils.RouteIndexFarMas(rgvProtocol.getRgvNo(),rgvRunSta[rgvProtocol.getRgvNo()-1]),rgvProtocol.getRgvNo())){ |
| | | // if (!RouteUtils.RgvRunStaSign(rgvProtocol.getRgvPosI(),rgvRunSta[rgvProtocol.getRgvNo()-1],rgvProtocol.getRgvNo())){ |
| | |
| | | * 小车地图更新 更新锁 |
| | | * */ |
| | | public synchronized boolean rgvMapUpdate(BasRgvMap basRgvMapCurrent,Integer staStart,Integer staEnd){ |
| | | if (rgvOpen){ |
| | | return true; |
| | | } |
| | | |
| | | // List<Integer> integers = RouteUtils.RouteMapCurrentFar(basRgvMapCurrent.getNowRoute(),staStart,staEnd, basRgvMapCurrent.getLockStartRoute()); |
| | | //更新当前小车锁 |