| | |
| | | |
| | | //任务完成 |
| | | public synchronized void rgvCompleteWrkMastSta(int[] autoZ) { |
| | | try { |
| | | for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | try { |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | |
| | | } catch (Exception e){} |
| | | wrkMastService.updateById(wrkMast); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("小车复位线程报错!" + e); |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("小车复位线程报错!" + e); |
| | | } |
| | | } |
| | | public synchronized void rgvCancelWrkMastSta() { |
| | | for (RgvSlave rgvSlave : slaveProperties.getRgv()) { |
| | | try { |
| | | RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); |
| | | RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); |
| | | if (rgvProtocol == null) { |
| | | continue; |
| | | } |
| | | if (rgvProtocol.getStatusType() == RgvStatusType.CANCEL) { |
| | | log.info("{}号小车等待wcs取消,状态{},参数{}", rgvProtocol.getRgvNo(), rgvProtocol.getStatusType(), rgvProtocol); |
| | | } |
| | | // 只有当RGV等待WCS确认、自动 |
| | | if (rgvProtocol.getStatusType() == RgvStatusType.CANCEL |
| | | && rgvProtocol.getModeType() == RgvModeType.AUTO |
| | | && rgvProtocol.getTaskNo1() != 0 |
| | | ) { |
| | | WrkMast wrkMast = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", rgvProtocol.getTaskNo1().longValue())); |
| | | if (Cools.isEmpty(wrkMast) || !wrkMast.getWrkSts().equals(2L)) { |
| | | log.error("未查到小车执行任务或者执行任务状态不符合!" + wrkMast); |
| | | continue; |
| | | } |
| | | |
| | | RgvCommand rgvCommand = new RgvCommand(); |
| | | rgvCommand.setRgvNo(rgvProtocol.getRgvNo()); |
| | | rgvCommand.setAckFinish1((short) 0); // 工位1任务完成确认位 |
| | | rgvCommand.setTaskNo1(wrkMast.getWrkNo().shortValue()); |
| | | rgvCommand.setTaskMode1(RgvTaskModeType.CANCEL); // 工位1任务模式: 取消 |
| | | rgvCommand.setSourceStaNo1((short)-1); //工位1起点 |
| | | rgvCommand.setDestinationStaNo1((short)-1); //工位1目标站点 |
| | | rgvCommand.setCommand((short) 1); //工位1任务确认 |
| | | rgvCommand.setRgvSome((short) 1); |
| | | if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(2, rgvCommand))) { |
| | | // |
| | | log.error("RGV取消命令下发失败,RGV号={},任务数据={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); |
| | | wrkMast.setLogErrTime(new Date()); |
| | | wrkMast.setLogErrMemo("RGV取消命令下发失败,RGV号={"+rgvProtocol.getRgvNo()+"}===>跳过"); |
| | | wrkMastService.updateById(wrkMast); |
| | | continue; |
| | | } |
| | | log.info("RGV取消命令下发成功,RGV号={},任务数据={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand)); |
| | | |
| | | |
| | | Date now = new Date(); |
| | | wrkMast.setWrkSts(1L); |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setLogErrTime(now); |
| | | wrkMast.setRgvNo(null); |
| | | |
| | | wrkMast.setLogErrMemo("RGV申请取消任务,RGV号={"+rgvProtocol.getRgvNo()+"},取消时间:"+now); |
| | | |
| | | wrkMastService.updateById(wrkMast); |
| | | |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("小车取消线程报错!" + e); |
| | | } |
| | | } |
| | | } |
| | | |