|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 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; | 
|---|
|  |  |  | case 3://满放 | 
|---|
|  |  |  | case 6://满放 | 
|---|
|  |  |  | stnToCrnStnPick5(); | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | default: | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | log.error("2楼212呼叫空板"+e); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 2楼212呼叫空板 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public synchronized void stnToCrnStnPick3() { | 
|---|
|  |  |  | int workNo = 20211; | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastMapper.selectPakInStep3(workNo); | 
|---|
|  |  |  | 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(workNo-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() { | 
|---|
|  |  |  | int workNo = 20211; | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastMapper.selectPakInStep3(workNo); | 
|---|
|  |  |  | 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()==20210) ){ | 
|---|
|  |  |  | boolean result1 = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(3, staProtocol)); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | staProtocol.setWorkNo(workNo-1); | 
|---|
|  |  |  | 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() { | 
|---|
|  |  |  | int workNo = 20211; | 
|---|
|  |  |  | WrkMast wrkMast = wrkMastMapper.selectPakInStep3(workNo); | 
|---|
|  |  |  | 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() && staProtocol.getWorkNo()==workNo ){ | 
|---|
|  |  |  | 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; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 拣料、并板、盘点再入库  拆垛位置 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public synchronized void storeEmptyPlt4() { | 
|---|