| | |
| | | private WrkMastStaMapper wrkMastStaMapper; |
| | | @Autowired |
| | | private BasRgvMapMapper basRgvMapMapper; |
| | | @Autowired |
| | | private RgvOneSignMapper rgvOneSignMapper; |
| | | |
| | | @Value("${wms.url}") |
| | | private String wmsUrl; |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 2楼212呼叫空板 |
| | | */ |
| | | public synchronized void stnToCrnStnPick3Auto(Integer sign) { |
| | | try{ |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); |
| | | StaProtocol staProtocol = devpThread.getStation().get(212); |
| | | if (staProtocol == null) { |
| | | return; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.getWorkNo()==0 ){ |
| | | switch (sign){ |
| | | //执行小车货物搬运任务 |
| | | case 1: |
| | | case 4: |
| | | stnToCrnStnPick3(); |
| | | return; |
| | | //执行小车空板搬运任务 |
| | | case 2://放//拆盘 |
| | | case 5://放//拆盘 |
| | | stnToCrnStnPick4(); |
| | | return; |
| | | default: |
| | | return; |
| | | } |
| | | } else if (staProtocol.isAutoing() && staProtocol.isLoading()){ |
| | | switch (sign){ |
| | | case 3://满放 |
| | | case 6://满放 |
| | | stnToCrnStnPick5(); |
| | | return; |
| | | default: |
| | | return; |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("2楼212呼叫空板"+e); |
| | | } |
| | | } |
| | | /** |
| | | * 2楼212呼叫空板 |
| | | */ |
| | | public synchronized void stnToCrnStnPick3() { |
| | | WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212(); |
| | | if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=61){//61、等待空板 |
| | | return; |
| | | } |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | for (DevpSlave.Sta driveSta : devp.getDriveSta()) { |
| | | if (driveSta.getStaNo()!=215){ |
| | | continue; |
| | | } |
| | | // 获取拣料入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo()); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0 |
| | | || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000)) ){ |
| | | boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); |
| | | |
| | | staProtocol.setWorkNo(wrkMast.getWrkNo()-1); |
| | | staProtocol.setStaNo(driveSta.getStaNo()==215? 217:221); |
| | | boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | if (!result2) { |
| | | log.error("发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId()); |
| | | } |
| | | wrkMast.setWrkSts(62L); |
| | | wrkMastMapper.updateById(wrkMast); |
| | | |
| | | boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol)); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 2楼212呼叫空板 |
| | | */ |
| | | public synchronized void stnToCrnStnPick4() { |
| | | WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212(); |
| | | if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=62){//62、等待小车搬运 |
| | | return; |
| | | } |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | for (DevpSlave.Sta driveSta : devp.getInSta()) { |
| | | if (driveSta.getStaNo()!=217){ |
| | | continue; |
| | | } |
| | | // 获取拣料入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | StaProtocol staProtocol = devpThread.getStation().get(driveSta.getStaNo()); |
| | | if (staProtocol == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | StaProtocol staProtocol212 = devpThread.getStation().get(212); |
| | | if (staProtocol212 == null) { |
| | | continue; |
| | | } else { |
| | | staProtocol212 = staProtocol212.clone(); |
| | | } |
| | | if (staProtocol212.isAutoing() && !staProtocol212.isLoading() && staProtocol212.getWorkNo()==0){ |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading() && (staProtocol.getWorkNo()==0 |
| | | || (staProtocol.getWorkNo()>9899 && staProtocol.getWorkNo()<10000) || staProtocol.getWorkNo()==wrkMast.getWrkNo()-1) ){ |
| | | // boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); |
| | | |
| | | staProtocol.setWorkNo(wrkMast.getWrkNo()); |
| | | staProtocol.setStaNo(212); |
| | | boolean result2 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | if (!result2) { |
| | | log.error("发布命令至输送线队列失败!!! [plc编号:{}]", devp.getId()); |
| | | } |
| | | wrkMast.setWrkSts(63L); |
| | | wrkMastMapper.updateById(wrkMast); |
| | | |
| | | // boolean result3 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(4, staProtocol)); |
| | | return; |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 2楼212呼叫空板 |
| | | */ |
| | | public synchronized void stnToCrnStnPick5() { |
| | | WrkMast wrkMast = wrkMastMapper.selectWrkMastUnstackingOne212(); |
| | | if (Cools.isEmpty(wrkMast) || wrkMast.getWrkSts()!=63){//63、等待完成 |
| | | return; |
| | | } |
| | | |
| | | // 获取拣料入库站信息 |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 2); |
| | | StaProtocol staProtocol = devpThread.getStation().get(212); |
| | | if (staProtocol == null) { |
| | | return; |
| | | } else { |
| | | staProtocol = staProtocol.clone(); |
| | | } |
| | | if (staProtocol.isAutoing() && staProtocol.isLoading()){ |
| | | // boolean result1 = MessageQueue.offer(SlaveType.Devp, 2, new Task(3, staProtocol)); |
| | | |
| | | wrkMast.setWrkSts(64L); |
| | | wrkMastMapper.updateById(wrkMast); |
| | | |
| | | // boolean result3 = MessageQueue.offer(SlaveType.Devp, 2, new Task(4, staProtocol)); |
| | | return; |
| | | } |
| | | } |
| | | /** |
| | | * 拣料、并板、盘点再入库 拆垛位置 |
| | | */ |
| | |
| | | if (wrkMast.getIoType() < 100 || wrkMast.getSourceStaNo() == null) { |
| | | log.error("查询工作档数据不符合条件--入出类型/站点, 工作号={},源库位={},入出类型={}", wrkMast.getWrkNo(), wrkMast.getSourceLocNo(), wrkMast.getIoType()); |
| | | continue; |
| | | } |
| | | //退库模式跳过118、119出库任务 |
| | | if (wrkMast.getStaNo()==118 || wrkMast.getStaNo()==119){ |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); |
| | | if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ |
| | | continue; |
| | | } |
| | | } |
| | | // 获取源库位信息 |
| | | LocMast sourceSta = locMastService.selectById(wrkMast.getSourceLocNo()); |
| | |
| | | */ |
| | | public synchronized void storeEmptyPlt3() { |
| | | try{ |
| | | RgvOneSign rgvOneSign = rgvOneSignMapper.selectOneSign(); |
| | | if (Cools.isEmpty(rgvOneSign) || rgvOneSign.getRgvOneSign()==1){ |
| | | return; |
| | | } |
| | | for (RgvSlave rgvSlave:slaveProperties.getRgv()) { |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | |
| | | ledCommand.setTitle("盘点出库"); |
| | | break; |
| | | case 110: |
| | | ledCommand.setTitle("空板出库"); |
| | | ledCommand.setEmptyMk(true); |
| | | break; |
| | | case 212: |
| | | ledCommand.setTitle("空板出库"); |
| | | ledCommand.setEmptyMk(true); |
| | | break; |
| | |
| | | // 无拣料数据 |
| | | continue; |
| | | } |
| | | if (!wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){ |
| | | if (Cools.isEmpty(wrkMast.getSheetNo()) || !wrkMast.getSheetNo().equals("2") || wrkMast.getIoType()<100 || wrkMast.getWrkSts()!=14){ |
| | | continue; |
| | | } |
| | | if (wrkMast.getIoType()==101){ |
| | |
| | | && staProtocol.isLoading() |
| | | && basDevp.getReportSign()==0 |
| | | ) {//&& staProtocol.isPakMk() && !Cools.isEmpty(barcode)) { |
| | | if (true){ |
| | | return; |
| | | } |
| | | // if (true){ |
| | | // return; |
| | | // } |
| | | |
| | | //任务完成 |
| | | boolean result1 = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(3, staProtocol135)); |
| | |
| | | }catch (Exception e){ } |
| | | basDevp135.setReportSign(2); |
| | | basDevpService.updateById(basDevp135); |
| | | staProtocol135.setWorkNo(32222); |
| | | int workNo = commonService.getWorkNo(7); |
| | | staProtocol135.setWorkNo(workNo); |
| | | staProtocol135.setStaNo(144); |
| | | devpThread.setPakMk(staProtocol135.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devpThread.getSlave().getId(), new Task(2, staProtocol135)); |
| | |
| | | /** |
| | | * 入出库 ===>> 小车作业下发 |
| | | */ |
| | | public synchronized void rgvIoExecute(Integer sign) { |
| | | public synchronized boolean rgvIoExecute(Integer sign) { |
| | | boolean rgvIoExecuteSign = false; |
| | | try{ |
| | | for (RgvSlave rgvSlave:slaveProperties.getRgv()) { |
| | | // 获取小车信息 |
| | |
| | | break; |
| | | } |
| | | } |
| | | for (int signCount = 1;!signWork && signCount<8;signCount++){ |
| | | for (int signCount = 1;!signWork && signCount<7;signCount++){ |
| | | switch (signCount){ |
| | | case 1://执行小车货物搬运任务 |
| | | signWork = rgvRunWrkMastFullSta(); |
| | |
| | | // signWork = rgvRunWrkMastEmptyStaPut(); |
| | | break; |
| | | default: |
| | | if (sign>6){ |
| | | rgvRunWrkMastEmptyStaAvoidance();//避让 |
| | | signWork = true; |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | |
| | | if (!rgvIoExecuteSign){ |
| | | rgvIoExecuteSign = signWork; |
| | | } |
| | | } |
| | | if (!rgvIoExecuteSign){ |
| | | if (sign>6){ |
| | | rgvRunWrkMastEmptyStaAvoidance();//避让 |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("RGV小车任务下发报错"+e); |
| | | } |
| | | return rgvIoExecuteSign; |
| | | } |
| | | /** |
| | | * 执行小车搬运任务 |