| | |
| | | this.wrkNo1 = taskNo; |
| | | this.rgvNo = rgvNo; |
| | | this.sendTime = now; |
| | | this.mode = command.getTaskModeType1().name(); |
| | | this.mode = command.getTaskModeTypeString(); |
| | | this.sourceRow = rgvPoi;//小车当前位置 |
| | | this.sourceSta = command.getSourceStaNo1().intValue(); |
| | | this.posSta = command.getDestinationStaNo1().intValue(); |
| | |
| | | this.updateBy = 9999L; |
| | | this.memo = "漫游任务触发"; |
| | | } |
| | | public BasRgvOpt(Integer taskNo,int rgvNo,int rgvPoi) { |
| | | Date now = new Date(); |
| | | this.wrkNo1 = taskNo; |
| | | this.rgvNo = rgvNo; |
| | | this.sendTime = now; |
| | | this.mode = "任务取消"; |
| | | this.sourceRow = rgvPoi;//小车当前位置 |
| | | this.sourceSta = rgvPoi; |
| | | this.posSta = 0; |
| | | this.updateTime = now; |
| | | this.updateBy = 9999L; |
| | | this.memo = "任务取消"; |
| | | } |
| | | |
| | | public BasRgvOpt(Integer wrkNo1,Integer wrkNo2,Integer rgvNo,Date sendTime,String mode,Integer sourceRow,Integer sourceBay,Integer sourceLev,Integer sourceSta,Integer posRow,Integer posBay,Integer posLev,Integer posSta,Integer response,Date updateTime,Long updateBy,String memo) { |
| | | this.wrkNo1 = wrkNo1; |
| | |
| | | log.error("{}号RGV尚未在数据库进行维护!", rgvSlave.getId()); |
| | | continue; |
| | | } |
| | | if (rgvProtocol.getStatusType() == RgvStatusType.WAITING || rgvProtocol.getStatusType() == RgvStatusType.WAITING101) { |
| | | if (rgvProtocol.getStatusType() == RgvStatusType.WAITING) { |
| | | log.info("{}号小车等待wcs确认,状态{},参数{}", rgvProtocol.getRgvNo(), rgvProtocol.getStatusType(), rgvProtocol); |
| | | } |
| | | // 只有当RGV等待WCS确认、自动 |
| | |
| | | } |
| | | } catch (Exception e){} |
| | | wrkMastService.updateById(wrkMast); |
| | | } else if (rgvProtocol.getStatusType() == RgvStatusType.WAITING101 |
| | | && rgvProtocol.getModeType() == RgvModeType.AUTO |
| | | && rgvProtocol.getTaskNo1() != 0 |
| | | ){ |
| | | boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo()); |
| | | if (!rgvComplete) { |
| | | log.error("小车复位失败,小车号{}!", rgvProtocol.getRgvNo()); |
| | | break; |
| | | } |
| | | } |
| | | } catch (Exception e) { |
| | | log.error("小车复位线程报错!" + e); |
| | |
| | | ) { |
| | | |
| | | RgvCommand rgvCommand = new RgvCommand(); |
| | | rgvCommand.setRgvNo(rgvProtocol.getRgvNo()); |
| | | rgvCommand.setAckFinish1((short) 0); // 工位1任务完成确认位 |
| | | rgvCommand.setTaskNo1(rgvProtocol.getTaskNo1()); |
| | | 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(4, rgvCommand))) { |
| | | if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(6, 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.setRgvNo(null); |
| | | wrkMast.setRgvNo(0); |
| | | wrkMast.setAppeTime(now); |
| | | wrkMast.setLogErrTime(now); |
| | | wrkMast.setRgvNo(null); |
| | | |
| | | wrkMast.setLogErrMemo("RGV申请取消任务,RGV号={"+rgvProtocol.getRgvNo()+"},取消时间:"+now); |
| | | |
| | |
| | | Outbound_operation_in_progress(7, "出站运行中","#21618C"), |
| | | Outbound_completed(8, "出站完成","#85C1E9"), |
| | | ROAM(11, "漫游","#95A5A6"), |
| | | CANCEL(12, "等待取消","#95A5A6"), |
| | | CANCEL(101, "等待取消","#95A5A6"), |
| | | WALK(20, "走行","#F1C40F"), |
| | | WAITING(100, "任务执行完成等待确认","#AED6F1"), |
| | | WAITING101(101, "任务执行完成等待确认","#AED6F1"), |
| | | // WAITING101(101, "任务执行完成等待确认","#AED6F1"), |
| | | SOS110(110, "报警","#E74C3C"), |
| | | SOS(999, "未知","#FF0000") |
| | | ; |
| | |
| | | this.taskMode2 = RgvTaskModeType.get(type2).id.shortValue(); |
| | | } |
| | | |
| | | public String getTaskModeTypeString() { |
| | | switch (taskModeType1){ |
| | | case PUT: |
| | | return "放货"; |
| | | case NONE: |
| | | return "完成"; |
| | | case FETCH: |
| | | return "取货"; |
| | | case FETCH_PUT: |
| | | return "取放货"; |
| | | case X_MOVE: |
| | | return "站位移转"; |
| | | case FETCH_5: |
| | | return "满取"; |
| | | case PUT_6: |
| | | return "满放"; |
| | | case CANCEL: |
| | | return "清错"; |
| | | default: |
| | | return "未知"; |
| | | } |
| | | } |
| | | |
| | | public static void main(String[] args) { |
| | | Date date = new Date(); |
| | | Calendar cal = Calendar.getInstance(); |
| | |
| | | Long aLong = (Long) task.getData(); |
| | | rgvOpt(aLong); |
| | | write5(aLong); |
| | | //工位1写入取消数据 |
| | | case 6: |
| | | rgvOpt(); |
| | | write6(); |
| | | break; |
| | | default: |
| | | break; |
| | |
| | | log.error("RGV写入命令保存失败!!"); |
| | | } |
| | | } |
| | | private void rgvOpt() { |
| | | try{ |
| | | BasRgvOptService basRgvOptService = SpringUtils.getBean(BasRgvOptService.class); |
| | | BasRgvOpt basRgvOpt = new BasRgvOpt(rgvProtocol.getTaskNo1().intValue(), rgvProtocol.getRgvNo(), rgvProtocol.getRgvPosI()); |
| | | basRgvOptService.insert(basRgvOpt); |
| | | }catch (Exception e){ |
| | | log.error("RGV写入命令保存失败!!"); |
| | | } |
| | | } |
| | | private boolean write(RgvCommand command) throws InterruptedException { |
| | | if (null == command) { |
| | | log.error("RGV写入命令为空"); |
| | |
| | | } |
| | | } |
| | | |
| | | private void write6(){ |
| | | try { |
| | | siemensNet.Write("DB24.11.1", true); |
| | | |
| | | } catch (Exception ignore) { |
| | | log.error("写入RGV plc工位1漫游数据失败 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); |
| | | } |
| | | } |
| | | |
| | | private boolean write3(RgvCommand command) throws InterruptedException { |
| | | if (null == command) { |
| | | log.error("RGV写入命令为空"); |