|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<BasJarMast> getJarMastByJarIdAndStatusList(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<BasJarMast> getJarMastByJarIdAndStatusListB(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMax(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList); | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMaxB(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMin(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMinB(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer getJarMastByJarIdCount(@Param("jarId") Integer jarId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer selectJarMastOperationByStatusList(@Param("jarId") Integer jarId,@Param("statusList") List<Integer> statusList); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<BasJarMast> getJarMastByJarIdAndStatusList(Integer jarId,List<Integer> statusList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<BasJarMast> getJarMastByJarIdAndStatusListB(Integer jarId,List<Integer> statusList); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | List<BasJarMast> getJarMastByJarIdAndStatusList(Integer jarId,Integer type); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMax(Integer jarId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMax(Integer jarId,Integer statusStart,Integer statusEnd); | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMaxB(Integer jarId,Integer statusStart,Integer statusEnd); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMin(Integer jarId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMin(Integer jarId,Integer statusStart,Integer statusEnd); | 
|---|
|  |  |  | BasJarMast getJarMastByJarIdMinB(Integer jarId,Integer statusStart,Integer statusEnd); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Integer getJarMastByJarIdCount(Integer jarId); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<BasJarMast> getJarMastByJarIdAndStatusListB(Integer jarId,List<Integer> statusList) { | 
|---|
|  |  |  | return this.baseMapper.getJarMastByJarIdAndStatusListB(jarId,statusList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public List<BasJarMast> getJarMastByJarIdAndStatusList(Integer jarId,Integer type) { | 
|---|
|  |  |  | ArrayList<Integer> statusList = new ArrayList<>(); | 
|---|
|  |  |  | switch (type){ | 
|---|
|  |  |  | 
|---|
|  |  |  | if (type!=6){ | 
|---|
|  |  |  | statusList.add(12);//冷却完成 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | statusList.add(13);//冷却完成调小车任务 | 
|---|
|  |  |  | //                statusList.add(13);//冷却完成调小车任务 | 
|---|
|  |  |  | statusList.add(13);//出库中 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | case 3://关进料门任务  //生成初始任务 | 
|---|
|  |  |  | statusList.add(4);//入硫化罐完成 | 
|---|
|  |  |  | 
|---|
|  |  |  | return this.baseMapper.getJarMastByJarIdMax(jarId,statusList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public BasJarMast getJarMastByJarIdMaxB(Integer jarId,Integer statusStart,Integer statusEnd) { | 
|---|
|  |  |  | ArrayList<Integer> statusList = new ArrayList<>(); | 
|---|
|  |  |  | for (Integer i = statusStart;i<=statusEnd;i++){ | 
|---|
|  |  |  | statusList.add(i); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return this.baseMapper.getJarMastByJarIdMaxB(jarId,statusList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | * 获取jarLocDigit最小的BasJarMast | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | 
|---|
|  |  |  | return this.baseMapper.getJarMastByJarIdMin(jarId,statusList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /* | 
|---|
|  |  |  | * 获取jarLocDigit最小的BasJarMast | 
|---|
|  |  |  | * */ | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public BasJarMast getJarMastByJarIdMinB(Integer jarId,Integer statusStart,Integer statusEnd) { | 
|---|
|  |  |  | List<Integer> statusList = new ArrayList<>(); | 
|---|
|  |  |  | for (Integer i = statusStart;i<=statusEnd;i++){ | 
|---|
|  |  |  | statusList.add(i); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return this.baseMapper.getJarMastByJarIdMinB(jarId,statusList); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Integer getJarMastByJarIdCount(Integer jarId) { | 
|---|
|  |  |  | return this.baseMapper.getJarMastByJarIdCount(jarId); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | public static final long COMMAND_TIMEOUT = 5 * 1000; | 
|---|
|  |  |  | //    private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}}; | 
|---|
|  |  |  | private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{9,3},{10,4},{11,4}}; | 
|---|
|  |  |  | private static final int[][] execute = new int[][]{{1,4},{2,4},{3,4},{4,4},{5,6},{6,6},{7,4},{8,4},{9,3},{10,4},{11,4}}; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Autowired | 
|---|
|  |  |  | private CommonService commonService; | 
|---|
|  |  |  | 
|---|
|  |  |  | //门作业  无 | 
|---|
|  |  |  | //自动、空闲、右门关闭、   Other左门关闭 | 
|---|
|  |  |  | if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){ | 
|---|
|  |  |  | switch (sign){ | 
|---|
|  |  |  | case 5: | 
|---|
|  |  |  | if (jarWrkMastExecuteGenerate5(jarSlave,sign)){ | 
|---|
|  |  |  | signExecute[jarSlave.getId()-5] = true; | 
|---|
|  |  |  | break;//出硫化罐 ===》 入冷却槽 | 
|---|
|  |  |  | //出硫化罐 ===》 入冷却槽 | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return signExecute; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } catch (Exception e){ | 
|---|
|  |  |  | log.error("{}号硫化罐JarWrkMastExecute任务创建异常,异常原因={}",jarSlave.getId(),e.getMessage()); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (wrkMastExecuteService.getWrkMastExecuteByJarIdCount(jarSlave.getId())!=0){ | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusList(jarSlave.getId(), new ArrayList<Integer>() {{ | 
|---|
|  |  |  | add(14);//冷却完成 | 
|---|
|  |  |  | List<BasJarMast> basJarMastList = basJarMastService.getJarMastByJarIdAndStatusListB(jarSlave.getId(), new ArrayList<Integer>() {{ | 
|---|
|  |  |  | add(12);//冷却完成 | 
|---|
|  |  |  | }}); | 
|---|
|  |  |  | if (basJarMastList.isEmpty()){ | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),7)!=0){ | 
|---|
|  |  |  | if (basJarMastService.selectJarMastOperation(jarSlave.getJarOtherId(),6)!=0){ | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMin(jarSlave.getId(),14,14); | 
|---|
|  |  |  | BasJarMast jarMastByJarIdMin = basJarMastService.getJarMastByJarIdMinB(jarSlave.getId(),12,12); | 
|---|
|  |  |  | if (Cools.isEmpty(jarMastByJarIdMin)){ | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //判断小车状态 | 
|---|
|  |  |  | if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),2,SteStatusType.IDLE)){ | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //            //判断小车状态 | 
|---|
|  |  |  | //            if (!jarWrkMastExecuteGenerateSteStatus(jarSlave.getJarOutSte().get(0).getSteNo(),3,SteStatusType.IDLE)){ | 
|---|
|  |  |  | //                return false; | 
|---|
|  |  |  | //            } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //判断RGV状态 | 
|---|
|  |  |  | JarSlave.RgvStn rgvStn = jarSlave.getJarOutRgv().get(0); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | //门作业  无 | 
|---|
|  |  |  | if (jarProtocol.isAutoing() && jarProtocol.jarErr==0){ | 
|---|
|  |  |  | //关进料门 | 
|---|
|  |  |  | if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),3,1})){ | 
|---|
|  |  |  | //冷却完成上输送线 | 
|---|
|  |  |  | if (!jarWrkMastExecuteGenerateExecute(basJar,jarMastByJarIdMin,basJar.getBurial(),new int[]{basJar.getOutSteNo(),basJar.getOutRgvNo(),9,1})){ | 
|---|
|  |  |  | log.error("JarWrkMastExecute任务创建===>执行异常===》异常数据:BasJar:"+ JSON.toJSONString(basJar)+";BasJarMast:"+JSON.toJSONString(jarMastByJarIdMin)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (SteAndJarUtil.steAndJarNowRow(staProtocolRGV.getNowRow() , jarProtocolOther.getJarNo())){ | 
|---|
|  |  |  | //判断小车状态 | 
|---|
|  |  |  | if (wrkMastExecute.getIoType()==7){  //7  B=>C | 
|---|
|  |  |  | if (!jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){ | 
|---|
|  |  |  | if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){ | 
|---|
|  |  |  | //调车  == > 移动 | 
|---|
|  |  |  | if (jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT26.id,SteTaskModeType.STE_MOVE_14,false,SteAndJarUtil.getBJarNo(wrkMastExecute.getJarId()))){ | 
|---|
|  |  |  | log.error("穿梭板Ste命令下发失败,ste号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | 
|---|
|  |  |  | log.error("9:出冷却槽Two==>任务下发===>行={}",6468); | 
|---|
|  |  |  | // 下发站点信息 | 
|---|
|  |  |  | staProtocol.setWorkNo(wrkMastExecute.getWrkNo().intValue()); | 
|---|
|  |  |  | staProtocol.setStaNo(staProtocol.getStaNo()); | 
|---|
|  |  |  | staProtocol.setStaNo(wrkMastExecute.getOutStaNo()); | 
|---|
|  |  |  | if (!MessageQueue.offer(SlaveType.Devp, 2, new Task(2, staProtocol))) { | 
|---|
|  |  |  | return false; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | //移走  == > 2 | 
|---|
|  |  |  | if (!jarRgvMoveTake(wrkMastExecute,2)){ | 
|---|
|  |  |  | log.error("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | //调车  == > 移动 | 
|---|
|  |  |  | if (!jarSteTake(wrkMastExecute,SteLocaType.POINT20.id,SteLocaType.POINT23.id,SteTaskModeType.STE_MOVE_14,false,wrkMastExecute.getJarId())){ | 
|---|
|  |  |  | log.error("穿梭板Ste命令下发失败,ste号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrkMastExecute.setWrkType(1); | 
|---|
|  |  |  | wrkMastExecute.setWrkSts(3); | 
|---|
|  |  |  | if (!wrkMastExecuteService.updateById(wrkMastExecute)){ | 
|---|
|  |  |  | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),2,SteStatusType.IDLE)){ | 
|---|
|  |  |  | wrkMastExecute.setWrkType(1); | 
|---|
|  |  |  | wrkMastExecute.setWrkSts(4); | 
|---|
|  |  |  | if (!wrkMastExecuteService.updateById(wrkMastExecute)){ | 
|---|
|  |  |  | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else {//11:B=>A | 
|---|
|  |  |  | 
|---|
|  |  |  | //调车  == > 移动 | 
|---|
|  |  |  | if (!jarSteTake(wrkMastExecute,SteLocaType.POINT23.id,SteLocaType.POINT20.id,SteTaskModeType.STE_MOVE_14,false,wrkMastExecute.getJarId())){ | 
|---|
|  |  |  | log.error("穿梭板Ste命令下发失败,ste号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrkMastExecute.setWrkType(1); | 
|---|
|  |  |  | wrkMastExecute.setWrkSts(3); | 
|---|
|  |  |  | if (!wrkMastExecuteService.updateById(wrkMastExecute)){ | 
|---|
|  |  |  | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else if (jarWrkMastExecuteGenerateSteStatus(basJar.getEnterSteNo(),1,SteStatusType.IDLE)){ | 
|---|
|  |  |  | wrkMastExecute.setWrkType(1); | 
|---|
|  |  |  | wrkMastExecute.setWrkSts(4); | 
|---|
|  |  |  | if (!wrkMastExecuteService.updateById(wrkMastExecute)){ | 
|---|
|  |  |  | log.error("穿梭板Ste命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getSteId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | //调车  == > endRow | 
|---|
|  |  |  | if (!jarRgvMoveTake(wrkMastExecute,SteAndJarUtil.getRgvJarNowRow(wrkMastExecute.getJarId()))){ | 
|---|
|  |  |  | log.error("平衡车RGV命令下发失败,rgv号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | wrkMastExecute.setWrkType(1); | 
|---|
|  |  |  | wrkMastExecute.setWrkSts(2); | 
|---|
|  |  |  | if (!wrkMastExecuteService.updateById(wrkMastExecute)){ | 
|---|
|  |  |  | log.error("硫化罐Jar命令下发失败===>更新wrkMastExecute失败,jar号={},任务数据={},硫化罐数据={},sign={}", | 
|---|
|  |  |  | wrkMastExecute.getJarId(), JSON.toJSON(wrkMastExecute), JSON.toJSON(jarProtocol),sign); | 
|---|
|  |  |  | wrkMastExecute.getJarId(), JSON.toJSONString(wrkMastExecute), JSON.toJSONString(jarProtocol),sign); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | 
|---|
|  |  |  | * RGV位置是否与硫化罐正对 | 
|---|
|  |  |  | */ | 
|---|
|  |  |  | public static boolean steAndJarNowRow(short steNowRow , Integer jarNo){ | 
|---|
|  |  |  | return (steNowRow==(short) 1 && (jarNo == 2 || jarNo == 4)) || (steNowRow==(short)3 && (jarNo == 1 || jarNo == 3)); | 
|---|
|  |  |  | return (steNowRow==(short) 1 && (jarNo == 2 || jarNo == 4 || jarNo == 5 || jarNo == 6)) || (steNowRow==(short)3 && (jarNo == 1 || jarNo == 3)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  | private void readStatus(){ | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if (slave.getId()>4){ | 
|---|
|  |  |  | if (null == jarProtocol) { | 
|---|
|  |  |  | jarProtocol = new JarProtocol(); | 
|---|
|  |  |  | jarProtocol.setJarNo(slave.getId()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | jarProtocol.setMode(2);//模式 | 
|---|
|  |  |  | jarProtocol.setStatus((short)0);//状态 | 
|---|
|  |  |  | jarProtocol.setAutoing(true);//自动 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | jarProtocol.setRightDoor(true);//左门状态  //出料门 | 
|---|
|  |  |  | jarProtocol.setLeftDoor(true);//右门状态  //进料门 | 
|---|
|  |  |  |  | 
|---|
|  |  |  | jarProtocol.setLeftDoorOpen(0);//open the left door  //进料门 | 
|---|
|  |  |  | jarProtocol.setLeftDoorClose(0);//close the left door  //进料门 | 
|---|
|  |  |  | jarProtocol.setRightDoorOpen(0);//open the right door  //出料门 | 
|---|
|  |  |  | jarProtocol.setRightDoorClose(0);//close the right door  //出料门 | 
|---|
|  |  |  | return; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | OperateResultExOne<byte[]> result = siemensS7Net.Read("V300", (short) 26); | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // | 
|---|
|  |  |  | //                jarProtocol.setMode(2);//模式 | 
|---|
|  |  |  | //                jarProtocol.setStatus((short)1);//状态 | 
|---|
|  |  |  | //                jarProtocol.setStatus((short)6);//状态 | 
|---|
|  |  |  | //                jarProtocol.setLeftDoorOpen(0);//open the left door  //进料门 | 
|---|
|  |  |  | //                jarProtocol.setLeftDoorClose(0);//close the left door  //进料门 | 
|---|
|  |  |  | //                jarProtocol.setRightDoorOpen(0);//open the right door  //出料门 | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result1.IsSuccess){ | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (transInt16 == resultS1 || transInt16 == (short) 2 || transInt16 == (short) 3){ | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result2.IsSuccess){ | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV2, resultS2); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (transInt16 == resultS1  || transInt16 == (short) 3){ | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV2, resultS2); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入硫化罐plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV2, resultS2); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (result != null && result.IsSuccess) { | 
|---|
|  |  |  | Thread.sleep(200); | 
|---|
|  |  |  | this.readStatus(); | 
|---|
|  |  |  | log.info("RGV 工位1命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); | 
|---|
|  |  |  | OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 工位1命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); | 
|---|
|  |  |  | log.info("RGV 工位1命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSONString(command)); | 
|---|
|  |  |  | OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 工位1命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(command))); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | OutputQueue.RGV.offer(MessageFormat.format("【{0}】写入RGV plc工位1数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (result != null && result.IsSuccess) { | 
|---|
|  |  |  | Thread.sleep(200); | 
|---|
|  |  |  | this.readStatus(); | 
|---|
|  |  |  | log.info("RGV 工位2命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); | 
|---|
|  |  |  | OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 工位2命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); | 
|---|
|  |  |  | log.info("RGV 工位2命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSONString(command)); | 
|---|
|  |  |  | OutputQueue.RGV.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 工位2命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(command))); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | OutputQueue.RGV.offer(MessageFormat.format("【{0}】写入RGV plc工位2数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result.IsSuccess){ | 
|---|
|  |  |  | log.error("写入堆垛机plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入堆垛机plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result = siemensNet.Write("DB100.0", array); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ()) | 
|---|
|  |  |  | ){ | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | log.error("堆垛机命令地址写入后回读失败==>不一致[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); | 
|---|
|  |  |  | log.error("堆垛机命令地址写入后回读失败==>不一致[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(one)); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | log.error("日志打印失败:===>>参数one报错 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead)); | 
|---|
|  |  |  | log.error("日志打印失败:===>>参数one报错 [id:{}],{}", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(resultRead)); | 
|---|
|  |  |  | }catch (Exception e1){ | 
|---|
|  |  |  | log.error("日志打印失败:===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); | 
|---|
|  |  |  | log.error("日志打印失败:===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | log.error("写入堆垛机plc数据失败,重新下发任务  回读不一致 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入堆垛机plc数据失败,重新下发任务  回读不一致 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result = siemensNet.Write("DB100.0", array); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.info("堆垛机命令地址写入后回读成功[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); | 
|---|
|  |  |  | log.info("堆垛机命令地址写入后回读成功[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(one)); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (result != null && result.IsSuccess) { | 
|---|
|  |  |  | Thread.sleep(200); | 
|---|
|  |  |  | this.readStatus(); | 
|---|
|  |  |  | log.info("堆垛机命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); | 
|---|
|  |  |  | OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); | 
|---|
|  |  |  | log.info("堆垛机命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSONString(command)); | 
|---|
|  |  |  | OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(command))); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | OutputQueue.CRN.offer(MessageFormat.format("【{0}】写入堆垛机plc数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result.IsSuccess){ | 
|---|
|  |  |  | log.error("写入堆垛机plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入堆垛机plc数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result = siemensNet.Write("DB100.20", array); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | || !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ()) | 
|---|
|  |  |  | ){ | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | log.error("堆垛机命令地址写入后回读失败==>不一致[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); | 
|---|
|  |  |  | log.error("堆垛机命令地址写入后回读失败==>不一致[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(one)); | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | log.error("日志打印失败:===>>参数one报错 [id:{}],{}", slave.getId(), JSON.toJSON(command),JSON.toJSON(resultRead)); | 
|---|
|  |  |  | log.error("日志打印失败:===>>参数one报错 [id:{}],{}", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(resultRead)); | 
|---|
|  |  |  | }catch (Exception e1){ | 
|---|
|  |  |  | log.error("日志打印失败:===>> [id:{}],{}", slave.getId(), JSON.toJSON(command)); | 
|---|
|  |  |  | log.error("日志打印失败:===>> [id:{}],{}", slave.getId(), JSON.toJSONString(command)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | 
|---|
|  |  |  | }catch (Exception e){ | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | log.error("写入堆垛机plc数据失败,重新下发任务  回读不一致 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(command),writeCount); | 
|---|
|  |  |  | log.error("写入堆垛机plc数据失败,重新下发任务  回读不一致 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(command),writeCount); | 
|---|
|  |  |  | result = siemensNet.Write("DB100.20", array); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.info("堆垛机命令地址写入后回读成功[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one)); | 
|---|
|  |  |  | log.info("堆垛机命令地址写入后回读成功[id:{}] >>>>> 写入[{}],===>>回读[{}]", slave.getId(), JSON.toJSONString(command),JSON.toJSONString(one)); | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if (result != null && result.IsSuccess) { | 
|---|
|  |  |  | Thread.sleep(200); | 
|---|
|  |  |  | this.readStatus(); | 
|---|
|  |  |  | log.info("堆垛机命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); | 
|---|
|  |  |  | OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); | 
|---|
|  |  |  | log.info("堆垛机命令下发[id:{}] >>>>> {}", slave.getId(), JSON.toJSONString(command)); | 
|---|
|  |  |  | OutputQueue.CRN.offer(MessageFormat.format("【{0}】[id:{1}] >>>>> 命令下发: {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(command))); | 
|---|
|  |  |  | return true; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | OutputQueue.CRN.offer(MessageFormat.format("【{0}】写入堆垛机plc数据失败 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort())); | 
|---|
|  |  |  | 
|---|
|  |  |  | log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol)); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); | 
|---|
|  |  |  | log.info("输送线命令下发完成  给输送复位 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSON(staProtocol)); | 
|---|
|  |  |  | log.info("输送线命令下发完成  给输送复位 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSONString(staProtocol)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result1.IsSuccess){ | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (status == 1){ | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result2.IsSuccess){ | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV1, resultS2); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | 
|---|
|  |  |  | if (status == resultS2){ | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV1, resultS2); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV1, resultS2); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result1.IsSuccess){ | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (statusR1 == resultS1){ | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result2.IsSuccess){ | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV1, resultS2); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (statusR1 == resultS2){ | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV1, resultS2); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV1, resultS2); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result1.IsSuccess){ | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (transInt16 == resultS1){ | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result1 = siemensS7Net.Write(resultV1, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | do { | 
|---|
|  |  |  | try{ | 
|---|
|  |  |  | if(!result2.IsSuccess){ | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV2, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  | if (transInt16 == resultS1){ | 
|---|
|  |  |  | break; | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV2, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | continue; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); | 
|---|
|  |  |  | log.error("写入RGV数据失败,重新下发任务  写入直接失败 ===>> [id:{}],{},[写入次数:{}]", slave.getId(), JSON.toJSONString(staProtocol),writeCount); | 
|---|
|  |  |  | result2 = siemensS7Net.Write(resultV2, resultS1); | 
|---|
|  |  |  | Thread.sleep(100); | 
|---|
|  |  |  | writeCount++; | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | if (!result1.IsSuccess) { | 
|---|
|  |  |  | staProtocol = station.get(staProtocol.getSiteId()); | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSON(staProtocol))); | 
|---|
|  |  |  | log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol)); | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线站点数据失败。输送线plc编号={1},站点数据={2}", slave.getId(), JSON.toJSONString(staProtocol))); | 
|---|
|  |  |  | log.error("写入输送线站点数据失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSONString(staProtocol)); | 
|---|
|  |  |  | } else { | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); | 
|---|
|  |  |  | log.info("输送线命令下发完成  给输送复位 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSON(staProtocol)); | 
|---|
|  |  |  | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】 输送线命令下发 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(staProtocol))); | 
|---|
|  |  |  | log.info("输送线命令下发完成  给输送复位 [id:{}] >>>>> 命令下发: {}",  slave.getId(), JSON.toJSONString(staProtocol)); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | steNo: 2 | 
|---|
|  |  |  | row: 2 | 
|---|
|  |  |  | # JAR4 | 
|---|
|  |  |  | jar[4]: | 
|---|
|  |  |  | id: 5 | 
|---|
|  |  |  | ip: 10.10.10.190 | 
|---|
|  |  |  | port: 120 | 
|---|
|  |  |  | jarOtherId: 2 | 
|---|
|  |  |  | # 硫化罐入库站点 | 
|---|
|  |  |  | jarInSta[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 612 | 
|---|
|  |  |  | rgvNo: 623 | 
|---|
|  |  |  | steNo: 1 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | # 硫化罐出库站点 | 
|---|
|  |  |  | jarOutSta[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 627 | 
|---|
|  |  |  | rgvNo: 625 | 
|---|
|  |  |  | steNo: 1 | 
|---|
|  |  |  | row: 1 | 
|---|
|  |  |  | # 硫化罐入库RGV | 
|---|
|  |  |  | jarInRgv[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | rgvNo: 623 | 
|---|
|  |  |  | row: 1 | 
|---|
|  |  |  | # 硫化罐出库RGV | 
|---|
|  |  |  | jarOutRgv[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | rgvNo: 625 | 
|---|
|  |  |  | row: 1 | 
|---|
|  |  |  | # 硫化罐入库穿梭板 | 
|---|
|  |  |  | jarInSte[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | steNo: 1 | 
|---|
|  |  |  | row: 1 | 
|---|
|  |  |  | # 硫化罐出库穿梭板 | 
|---|
|  |  |  | jarOutSte[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | steNo: 1 | 
|---|
|  |  |  | row: 1 | 
|---|
|  |  |  | # JAR4 | 
|---|
|  |  |  | jar[5]: | 
|---|
|  |  |  | id: 6 | 
|---|
|  |  |  | ip: 10.10.10.193 | 
|---|
|  |  |  | port: 120 | 
|---|
|  |  |  | jarOtherId: 3 | 
|---|
|  |  |  | # 硫化罐入库站点 | 
|---|
|  |  |  | jarInSta[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 619 | 
|---|
|  |  |  | rgvNo: 624 | 
|---|
|  |  |  | steNo: 2 | 
|---|
|  |  |  | row: 3 | 
|---|
|  |  |  | # 硫化罐出库站点 | 
|---|
|  |  |  | jarOutSta[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | staNo: 628 | 
|---|
|  |  |  | rgvNo: 626 | 
|---|
|  |  |  | steNo: 2 | 
|---|
|  |  |  | row: 1 | 
|---|
|  |  |  | # 硫化罐入库RGV | 
|---|
|  |  |  | jarInRgv[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | rgvNo: 624 | 
|---|
|  |  |  | row: 1 | 
|---|
|  |  |  | # 硫化罐出库RGV | 
|---|
|  |  |  | jarOutRgv[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | rgvNo: 626 | 
|---|
|  |  |  | row: 2 | 
|---|
|  |  |  | # 硫化罐入库穿梭板 | 
|---|
|  |  |  | jarInSte[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | steNo: 2 | 
|---|
|  |  |  | row: 2 | 
|---|
|  |  |  | # 硫化罐出库穿梭板 | 
|---|
|  |  |  | jarOutSte[0]: | 
|---|
|  |  |  | devpPlcId: ${wcs-slave.devp[1].id} | 
|---|
|  |  |  | steNo: 2 | 
|---|
|  |  |  | row: 2 | 
|---|
|  |  |  | # ste1 | 
|---|
|  |  |  | ste[0]: | 
|---|
|  |  |  | id: 1 | 
|---|
|  |  |  | 
|---|
|  |  |  | order by jar_loc_digit desc | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getJarMastByJarIdAndStatusListB" resultMap="BaseResultMap"> | 
|---|
|  |  |  | select * from asr_bas_jar_mast | 
|---|
|  |  |  | where 1=1 | 
|---|
|  |  |  | and | 
|---|
|  |  |  | ( | 
|---|
|  |  |  | status in | 
|---|
|  |  |  | <foreach collection="statusList" item="status" index="index" open="(" close=")" separator=","> | 
|---|
|  |  |  | #{status} | 
|---|
|  |  |  | </foreach> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | and burial = #{jarId} | 
|---|
|  |  |  | order by jar_loc_digit desc | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getJarMastByJarIdMax" resultMap="BaseResultMap"> | 
|---|
|  |  |  | select top 1 * from asr_bas_jar_mast | 
|---|
|  |  |  | where 1=1 | 
|---|
|  |  |  | 
|---|
|  |  |  | order by jar_loc_digit desc | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getJarMastByJarIdMaxB" resultMap="BaseResultMap"> | 
|---|
|  |  |  | select top 1 * from asr_bas_jar_mast | 
|---|
|  |  |  | where 1=1 | 
|---|
|  |  |  | and | 
|---|
|  |  |  | ( | 
|---|
|  |  |  | status in | 
|---|
|  |  |  | <foreach collection="statusList" item="status" index="index" open="(" close=")" separator=","> | 
|---|
|  |  |  | #{status} | 
|---|
|  |  |  | </foreach> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | and burial = #{jarId} | 
|---|
|  |  |  | order by jar_loc_digit desc | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getJarMastByJarIdMin" resultMap="BaseResultMap"> | 
|---|
|  |  |  | select top 1 * from asr_bas_jar_mast | 
|---|
|  |  |  | where 1=1 | 
|---|
|  |  |  | 
|---|
|  |  |  | order by jar_loc_digit asc | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getJarMastByJarIdMinB" resultMap="BaseResultMap"> | 
|---|
|  |  |  | select top 1 * from asr_bas_jar_mast | 
|---|
|  |  |  | where 1=1 | 
|---|
|  |  |  | and | 
|---|
|  |  |  | ( | 
|---|
|  |  |  | status in | 
|---|
|  |  |  | <foreach collection="statusList" item="status" index="index" open="(" close=")" separator=","> | 
|---|
|  |  |  | #{status} | 
|---|
|  |  |  | </foreach> | 
|---|
|  |  |  | ) | 
|---|
|  |  |  | and burial = #{jarId} | 
|---|
|  |  |  | order by jar_loc_digit asc | 
|---|
|  |  |  | </select> | 
|---|
|  |  |  |  | 
|---|
|  |  |  | <select id="getJarMastByJarIdCount" resultType="Integer"> | 
|---|
|  |  |  | select count(1) from asr_bas_jar_mast | 
|---|
|  |  |  | where 1=1 | 
|---|