| | |
| | | if (rgvComplete){ |
| | | rgvThread.setPakMk(true); |
| | | } |
| | | |
| | | WrkMastSta wrkMastSta = wrkMastStaMapper.selectById(rgvProtocol.getTaskNo1()); |
| | | wrkMastSta.setWrkSts(3); |
| | | wrkMastStaMapper.updateById(wrkMastSta); |
| | | } |
| | | |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 执行小车搬运任务 |
| | | */ |
| | | public synchronized void rgvRunWrkMastFullSta() { |
| | | try{ |
| | | SiemensRgvThread rgvThread = (SiemensRgvThread) SlaveConnection.get(SlaveType.Rgv, 1); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | | log.error("RGV不在线"); |
| | | return; |
| | | } |
| | | // 只有当RGV空闲、自动,工位一无物//rgv可用 |
| | | if (rgvProtocol.getStatusType() == RgvStatusType.IDLE |
| | | && rgvProtocol.getModeType() == RgvModeType.AUTO |
| | | && rgvProtocol.getLoaded1()==0 |
| | | && rgvProtocol.getTaskNo1() == 0 |
| | | && rgvThread.isPakMk() |
| | | ) { |
| | | List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectList(new EntityWrapper<WrkMastSta>()); |
| | | for (WrkMastSta wrkMastSta : wrkMastStaList){ |
| | | if (wrkMastSta.getType()!=0 || wrkMastSta.getWrkType()!=3){//1:满版 3:取放 |
| | | continue; |
| | | } |
| | | boolean sign = rgvTakeFullAll(1, wrkMastSta); //命令下发 |
| | | if (sign){ |
| | | wrkMastSta.setWrkSts(1); |
| | | wrkMastStaMapper.updateById(wrkMastSta); |
| | | } else { |
| | | log.error("工作号{}所属任务下发失败",wrkMastSta.getWrkNo()); |
| | | } |
| | | break; |
| | | } |
| | | } |
| | | }catch (Exception e){ |
| | | log.error("3875行执行小车搬运任务下发失败"); |
| | | log.error("3875行"+e); |
| | | } |
| | | } |
| | | /* |
| | | * 小车取货至工位任务 |
| | | * */ |
| | | public synchronized boolean rgvTakeFullAll(Integer rgvId,WrkMastSta wrkMastSta){ |
| | | try{ |
| | | // 命令下发区 -------------------------------------------------------------------------- |
| | | RgvCommand rgvCommand = new RgvCommand(); |
| | | rgvCommand.setRgvNo(rgvId); // RGV编号 |
| | | rgvCommand.setAckFinish1(false); // 工位1任务完成确认位 |
| | | rgvCommand.setTaskNo1(wrkMastSta.getWrkNo().intValue()); // 工位1工作号 |
| | | rgvCommand.setTaskMode1(RgvTaskModeType.FETCH_PUT); // 工位1任务模式: 取放货 |
| | | rgvCommand.setSourceStaNo1(wrkMastSta.getStaStart().shortValue()); //工位1起点 |
| | | rgvCommand.setDestinationStaNo1(wrkMastSta.getStaEnd().shortValue()); //工位1目标站点 |
| | | rgvCommand.setCommand((short) 1); //工位1任务确认 |
| | | if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) { |
| | | //step=2,工位1、2写任务; step=4,工位1写任务; step=5,工位2写任务 |
| | | log.error("RGV命令下发失败,RGV号={},任务数据={}", rgvId, JSON.toJSON(rgvCommand)); |
| | | return false; |
| | | } else { |
| | | return true; |
| | | } |
| | | }catch (Exception e){ |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | } |