| | |
| | | News.error("MainServiceImpl generateStoreWrkFile"+"203为出库模式,禁止入库,退回入库口。!!!"); |
| | | continue; |
| | | } |
| | | if ( inSta.getStaNo()==113 && devpThread.ioModeOf3F == IoModeType.PAKOUT_MODE) { |
| | | //有出库任务,退库到入库口 |
| | | staProtocol.setWorkNo((short) 9999); |
| | | staProtocol.setStaNo((short)114); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | News.error("MainServiceImpl generateStoreWrkFile"+"103为出库模式,禁止入库,退回入库口。!!!"); |
| | | continue; |
| | | } |
| | | if ( inSta.getStaNo()==213 && devpThread.ioModeOf4F == IoModeType.PAKOUT_MODE) { |
| | | //有出库任务,退库到入库口 |
| | | staProtocol.setWorkNo((short) 9999); |
| | | staProtocol.setStaNo((short)214); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | News.error("MainServiceImpl generateStoreWrkFile"+"203为出库模式,禁止入库,退回入库口。!!!"); |
| | | continue; |
| | | } |
| | | } |
| | | |
| | | // 获取条码扫描仪信息 |
| | |
| | | // 判断堆垛机状态等待确认 |
| | | if (crnProtocol.modeType == CrnModeType.AUTO |
| | | && crnProtocol.statusType == CrnStatusType.IDLE |
| | | && crnProtocol.forkPosType == CrnForkPosType.HOME) { |
| | | && crnProtocol.forkPosType == CrnForkPosType.HOME && crnStn.getBay()!=(short)4) { |
| | | News.info("堆垛机接驳任务执行,工作号:"+staProtocol.getWorkNo()+";执行堆垛机号:"+slave.getId()+";接驳取货位:"+crnStn.getStaNo()+";接驳放货位:"+staProtocol.getSiteId()); |
| | | // 堆垛机接驳任务命令下发区 -------------------------------------------------------------------------- |
| | | CrnCommand crnCommand = new CrnCommand(); |
| | |
| | | // 判断堆垛机状态等待确认 |
| | | if (crnProtocol.modeType == CrnModeType.AUTO |
| | | && crnProtocol.statusType == CrnStatusType.IDLE |
| | | && crnProtocol.forkPosType == CrnForkPosType.HOME) { |
| | | && crnProtocol.forkPosType == CrnForkPosType.HOME && crnStn.getBay()==(short)4) { |
| | | News.info("堆垛机接驳任务执行,工作号:"+staProtocol.getWorkNo()+";执行堆垛机号:"+slave.getId()+";接驳取货位:"+crnStn.getStaNo()+";接驳放货位:"+staProtocol.getSiteId()); |
| | | // 堆垛机接驳任务命令下发区 -------------------------------------------------------------------------- |
| | | CrnCommand crnCommand = new CrnCommand(); |
| | |
| | | } |
| | | if (wrkMast.getStaNo() == 203 && devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { |
| | | News.error("MainServiceImpl locToCrnStn"+"203非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | if (wrkMast.getStaNo() == 113 && devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) { |
| | | News.error("MainServiceImpl locToCrnStn"+"113非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | if (wrkMast.getStaNo() == 213 && devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) { |
| | | News.error("MainServiceImpl locToCrnStn"+"213非出库模式,禁止出库。任务号:{}!!!",wrkMast.getWrkNo()); |
| | | return false; |
| | | } |
| | | |
| | |
| | | SteThread steThread = (SteThread) SlaveConnection.get(SlaveType.Ste, ste.getId()); |
| | | SteProtocol steProtocol = steThread.getSteProtocol(); |
| | | if (steProtocol == null) { continue; } |
| | | if (Cools.isEmpty(steProtocol.loca)) continue; |
| | | if (steProtocol.loca==0) continue; |
| | | if (steProtocol.getWaiting() && steProtocol.getTaskNo() == 0){ |
| | | News.info("ste[id={}] 收到等待WCS确认信号,但是任务号(地址V824)为0", steProtocol.getSteNo()); |
| | |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | News.error("MainServiceImpl storeEmptyPlt"+"203为出库模式,禁止入库,退回入库口。!!!"); |
| | | continue; |
| | | } |
| | | if ( emptyInSta.getStaNo()==113 && devpThread.ioModeOf3F == IoModeType.PAKOUT_MODE) { |
| | | //有出库任务,退库到入库口 |
| | | staProtocol.setWorkNo((short) 9999); |
| | | staProtocol.setStaNo((short)100); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | News.error("MainServiceImpl storeEmptyPlt"+"113为出库模式,禁止入库,退回入库口。!!!"); |
| | | continue; |
| | | } |
| | | if ( emptyInSta.getStaNo()==213 && devpThread.ioModeOf4F == IoModeType.PAKOUT_MODE) { |
| | | //有出库任务,退库到入库口 |
| | | staProtocol.setWorkNo((short) 9999); |
| | | staProtocol.setStaNo((short)200); |
| | | devpThread.setPakMk(staProtocol.getSiteId(), false); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol)); |
| | | News.error("MainServiceImpl storeEmptyPlt"+"213为出库模式,禁止入库,退回入库口。!!!"); |
| | | continue; |
| | | } |
| | | } |
| | |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | |
| | | for (DevpSlave.Sta inSta : devp.getInSta()) { |
| | | Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : 204; |
| | | Integer sourceStaNo = inSta.getStaNo()==103 ? 104 : inSta.getStaNo()==113 ? 104 : 204; |
| | | WrkMast pakout = wrkMastMapper.selectWorkingPakout(sourceStaNo); |
| | | switch (inSta.getStaNo()) { |
| | | case 103://1F |
| | | case 103://1F1 |
| | | if (pakout != null) { |
| | | if (devpThread.ioModeOf1F != IoModeType.PAKOUT_MODE) { |
| | | // 出库切换中 |
| | |
| | | devpThread.ioModeOf1F = IoModeType.PAKIN_MODE; |
| | | } |
| | | break; |
| | | case 203://2F |
| | | case 203://1F2 |
| | | if (pakout != null) { |
| | | if (devpThread.ioModeOf2F != IoModeType.PAKOUT_MODE) { |
| | | // 出库切换中 |
| | |
| | | devpThread.ioModeOf2F = IoModeType.PAKIN_MODE; |
| | | } |
| | | break; |
| | | // case 113://2F1 |
| | | // if (pakout != null) { |
| | | // if (devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) { |
| | | // // 出库切换中 |
| | | //// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; |
| | | //// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); |
| | | //// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() |
| | | //// && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading() |
| | | //// && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) { |
| | | //// // 出库模式 |
| | | // devpThread.ioModeOf3F = IoModeType.PAKOUT_MODE; |
| | | //// } |
| | | // } |
| | | // } else { |
| | | // // 入库模式 |
| | | // devpThread.ioModeOf3F = IoModeType.PAKIN_MODE; |
| | | // } |
| | | // break; |
| | | // case 213://2F2 |
| | | // if (pakout != null) { |
| | | // if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) { |
| | | // // 出库切换中 |
| | | //// devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; |
| | | //// WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); |
| | | //// if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() |
| | | //// && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading() |
| | | //// && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) { |
| | | //// // 出库模式 |
| | | // devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE; |
| | | //// } |
| | | // } |
| | | // } else { |
| | | // // 入库模式 |
| | | // devpThread.ioModeOf4F = IoModeType.PAKIN_MODE; |
| | | // } |
| | | // break; |
| | | } |
| | | } |
| | | |
| | | } |
| | | |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | | } |
| | | } |
| | | public synchronized void ioConvert2F() { |
| | | try { |
| | | // 根据输送线plc遍历 |
| | | for (DevpSlave devp : slaveProperties.getDevp()) { |
| | | if (devp.getId() == 1){ |
| | | continue; |
| | | } |
| | | SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId()); |
| | | |
| | | for (DevpSlave.Sta inSta : devp.getInSta()) { |
| | | Integer staNoEnd = inSta.getStaNo()==113 ? 114 : 214; |
| | | WrkMast pakout = wrkMastMapper.selectWorkingPakoutTwoF(staNoEnd); |
| | | boolean sign = true; |
| | | int[] staNos = new int[3]; |
| | | |
| | | switch (inSta.getStaNo()) { |
| | | case 113://2F1 |
| | | staNos = new int[]{112,113,114}; |
| | | for (int staNo : staNos){ |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (Cools.isEmpty(staProtocol)) continue; |
| | | if (!staProtocol.isAutoing() || staProtocol.isLoading() || staProtocol.getWorkNo()>0){ |
| | | sign = false; |
| | | } |
| | | } |
| | | if (sign){ |
| | | if (pakout != null) { |
| | | if (devpThread.ioModeOf3F != IoModeType.PAKOUT_MODE) { |
| | | |
| | | // 出库切换中 |
| | | // devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; |
| | | // WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); |
| | | // if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() |
| | | // && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading() |
| | | // && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) { |
| | | // // 出库模式 |
| | | devpThread.ioModeOf3F = IoModeType.PAKOUT_MODE; |
| | | // } |
| | | } |
| | | } else { |
| | | // 入库模式 |
| | | devpThread.ioModeOf3F = IoModeType.PAKIN_MODE; |
| | | |
| | | } |
| | | } |
| | | break; |
| | | case 213://2F2 |
| | | staNos = new int[]{212,213,214}; |
| | | for (int staNo : staNos){ |
| | | StaProtocol staProtocol = devpThread.getStation().get(staNo); |
| | | if (Cools.isEmpty(staProtocol)) continue; |
| | | if (!staProtocol.isAutoing() || staProtocol.isLoading()){ |
| | | sign = false; |
| | | } |
| | | } |
| | | if (sign){ |
| | | if (pakout != null) { |
| | | if (devpThread.ioModeOf4F != IoModeType.PAKOUT_MODE) { |
| | | // 出库切换中 |
| | | // devpThread.ioModeOf2F = IoModeType.PAKOUT_BOOTING; |
| | | // WrkMast pakin = wrkMastMapper.selectWorkingPakin(inSta.getStaNo()); |
| | | // if (pakin == null && !devpThread.getStation().get(inSta.getStaNo()).isLoading() |
| | | // && !devpThread.getStation().get(inSta.getStaNo()-1).isLoading() |
| | | // && devpThread.getStation().get(inSta.getStaNo()-1).getWorkNo()==0) { |
| | | // // 出库模式 |
| | | devpThread.ioModeOf4F = IoModeType.PAKOUT_MODE; |
| | | // } |
| | | } |
| | | } else { |
| | | // 入库模式 |
| | | devpThread.ioModeOf4F = IoModeType.PAKIN_MODE; |
| | | } |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | |