| | |
| | | // 写数据 ID+目标站 |
| | | case 2: |
| | | write((StaProtocol)task.getData()); |
| | | read(); |
| | | break; |
| | | case 3: |
| | | write2((StaProtocol)task.getData()); |
| | | read(); |
| | | break; |
| | | default: |
| | | break; |
| | | } |
| | |
| | | } |
| | | } |
| | | |
| | | Thread.sleep(200); |
| | | //Thread.sleep(200); |
| | | OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB101.0", (short) (staNoSize*2)); |
| | | if (result1.IsSuccess) { |
| | | for (int i = 0; i < staNoSize; i++) { |
| | |
| | | |
| | | if (slave.getId() == 1){ |
| | | //条码 |
| | | Thread.sleep(200); |
| | | //Thread.sleep(200); |
| | | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)60); |
| | | if (result2.IsSuccess) { |
| | | for (int i = 0; i < 6; i++) { |
| | |
| | | } |
| | | |
| | | // 外形检测 - 102 |
| | | Thread.sleep(100); |
| | | //Thread.sleep(100); |
| | | OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB101.160", (short)1); |
| | | if (result4.IsSuccess) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result4.Content, 0, 1); |
| | |
| | | staProtocol.setBarcodeErr(status[6]); |
| | | } |
| | | // 外形检测 - 107 |
| | | Thread.sleep(50); |
| | | //Thread.sleep(50); |
| | | OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB101.164", (short)1); |
| | | if (result5.IsSuccess) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result5.Content, 0, 1); |
| | |
| | | staProtocol.setBarcodeErr(status[6]); |
| | | } |
| | | // 外形检测 - 111 |
| | | Thread.sleep(50); |
| | | //Thread.sleep(50); |
| | | OperateResultExOne<byte[]> result6 = siemensS7Net.Read("DB101.168", (short)1); |
| | | if (result6.IsSuccess) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result6.Content, 0, 1); |
| | |
| | | staProtocol.setBarcodeErr(status[6]); |
| | | } |
| | | // 外形检测 - 115 |
| | | Thread.sleep(50); |
| | | //Thread.sleep(50); |
| | | OperateResultExOne<byte[]> result7 = siemensS7Net.Read("DB101.172", (short)1); |
| | | if (result7.IsSuccess) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result7.Content, 0, 1); |
| | |
| | | staProtocol.setBarcodeErr(status[6]); |
| | | } |
| | | // 外形检测 - 119 |
| | | Thread.sleep(50); |
| | | //Thread.sleep(50); |
| | | OperateResultExOne<byte[]> result8 = siemensS7Net.Read("DB101.176", (short)1); |
| | | if (result8.IsSuccess) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result8.Content, 0, 1); |
| | |
| | | staProtocol.setBarcodeErr(status[6]); |
| | | } |
| | | // 外形检测 - 123 |
| | | Thread.sleep(50); |
| | | //Thread.sleep(50); |
| | | OperateResultExOne<byte[]> result9 = siemensS7Net.Read("DB101.180", (short)1); |
| | | if (result9.IsSuccess) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result9.Content, 0, 1); |
| | |
| | | staProtocol.setBarcodeErr(status[6]); |
| | | } |
| | | } else if (slave.getId() == 3) { |
| | | |
| | | //条码 |
| | | //Thread.sleep(200); |
| | | OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.18",(short)10); |
| | | if (result2.IsSuccess) { |
| | | |
| | | String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,0,8, "UTF-8"); |
| | | BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, 7); |
| | | if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { |
| | | barcodeThread.setBarcode(barcode); |
| | | } |
| | | |
| | | } |
| | | // 外形检测 - 111 |
| | | Thread.sleep(50); |
| | | //Thread.sleep(50); |
| | | OperateResultExOne<byte[]> result10 = siemensS7Net.Read("DB101.26", (short)1); |
| | | if (result10.IsSuccess) { |
| | | boolean[] status = siemensS7Net.getByteTransform().TransBool(result10.Content, 0, 1); |
| | |
| | | return; |
| | | } 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.toJSON(staProtocol)); |
| | | |
| | | Integer siteId = staProtocol.getSiteId(); |
| | | staProtocol = station.get(siteId); |
| | | if ((siteId == 101 || siteId == 201)&&(staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0)) { |
| | | staProtocol.setPakMk(true); |
| | | } |
| | | |
| | | //更新任务步序 |
| | | TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class); |
| | | TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo().intValue()); |
| | | if (taskWrk != null) { |
| | | taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//更新指令步序 |
| | | taskWrkService.updateById(taskWrk); |
| | | } |
| | | } |
| | | |
| | |
| | | short[] array = new short[2]; |
| | | array[0] = staProtocol.getWorkNo(); |
| | | array[1] = staProtocol.getStaNo(); |
| | | // OperateResult write = siemensS7Net.Write("DB100." + index*4, array); |
| | | |
| | | //更新命令日志 |
| | | // CommandInfoLogService commandInfoLogService = SpringUtils.getBean(CommandInfoLogService.class); |
| | | // CommandInfoService commandInfoService = SpringUtils.getBean(CommandInfoService.class); |
| | | // CommandInfo commandInfo = commandInfoService.selectById(staProtocol.getCommandId()); |
| | | // CommandInfoLog commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class); |
| | | // commandInfoLog.setId(null); |
| | | // CommandInfoLog commandInfoLog = new CommandInfoLog(); |
| | | // if (commandInfo != null) { |
| | | // commandInfoLog = JSON.parseObject(JSON.toJSONString(commandInfo), CommandInfoLog.class); |
| | | // commandInfoLog.setId(null); |
| | | // }else { |
| | | // Date now = new Date(); |
| | | // commandInfoLog.setCommand(JSON.toJSONString(staProtocol)); |
| | | // commandInfoLog.setCommandStatus(3); |
| | | // commandInfoLog.setStartTime(now); |
| | | // commandInfoLog.setExecuteTime(now); |
| | | // commandInfoLog.setCompleteTime(now); |
| | | // commandInfoLog.setDevice(SlaveType.Devp.toString()); |
| | | // commandInfoLog.setWrkNo(9999); |
| | | // commandInfoLog.setTaskNo("9999"); |
| | | // commandInfoLog.setCommandDesc("手动命令"); |
| | | // } |
| | | |
| | | OperateResult writeResult; |
| | | //任务下发次数 |
| | |
| | | log.info("写入输送线命令后返回成功,并且回读成功。输送线plc编号={},{},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | |
| | | Date now = new Date(); |
| | | |
| | | // //更新指令状态 |
| | | // commandInfo.setCommandStatus(CommandStatusType.COMPLETE.id);//输送线直接完成状态 |
| | | // commandInfo.setExecuteTime(now); |
| | | // commandInfo.setCompleteTime(now); |
| | | // commandInfoService.updateById(commandInfo); |
| | | // |
| | | // //更新指令日志 |
| | | // commandInfoLog.setDeviceLog("指令下发成功"); |
| | | // commandInfoLog.setCommandStatus(CommandStatusType.COMPLETE.id);//输送线直接完成状态 |
| | | // commandInfoLog.setExecuteTime(now); |
| | | // commandInfoLog.setCompleteTime(now); |
| | | // commandInfoLogService.insert(commandInfoLog); |
| | | |
| | | //更新任务步序 |
| | | TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class); |
| | | TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo().intValue()); |
| | | if (taskWrk != null) { |
| | | taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//更新指令步序 |
| | | taskWrkService.updateById(taskWrk); |
| | | } |
| | | |
| | | break; |
| | | } else {//返回结果是成功了,但是真实值不相同 |
| | | writeCount++; |
| | | OutputQueue.DEVP.offer(MessageFormat.format("【{0}】写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={1},站点数据={2},写入次数={3}", |
| | | slave.getId(), JSON.toJSON(staProtocol),writeCount)); |
| | | log.error("写入输送线命令后返回成功,但是读取任务值不一致。输送线plc编号={},{},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | // //更新指令日志 |
| | | // commandInfoLog.setDeviceLog("指令下发失败"); |
| | | // commandInfoLogService.insert(commandInfoLog); |
| | | |
| | | } |
| | | } else { |
| | | writeCount++; |
| | |
| | | slave.getId(), JSON.toJSON(staProtocol), writeCount)); |
| | | log.error("写入输送线命令后读取失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | |
| | | // //更新指令日志 |
| | | // commandInfoLog.setDeviceLog("指令下发失败"); |
| | | // commandInfoLogService.insert(commandInfoLog); |
| | | } |
| | | } else { |
| | | writeCount++; |
| | |
| | | slave.getId(), JSON.toJSON(staProtocol),writeCount)); |
| | | log.error("写入输送线命令失败。输送线plc编号={},站点数据={},写入次数={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); |
| | | |
| | | // //更新指令日志 |
| | | // commandInfoLog.setDeviceLog("指令下发失败"); |
| | | // commandInfoLogService.insert(commandInfoLog); |
| | | } |
| | | Thread.sleep(200); |
| | | } |
| | |
| | | log.error("写入输送线命令尝试5次失败。输送线plc编号={},站点数据={}", slave.getId(), JSON.toJSON(staProtocol)); |
| | | |
| | | //重新添加数据到任务队列 |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(2, staProtocol)); |
| | | boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(3, staProtocol)); |
| | | read();//读取1次设备状态 |
| | | return; |
| | | } 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.toJSON(staProtocol)); |
| | | |
| | | Integer siteId = staProtocol.getSiteId(); |
| | | staProtocol = station.get(siteId); |
| | |
| | | staProtocol.setPakMk(true); |
| | | } |
| | | |
| | | //更新任务步序 |
| | | TaskWrkService taskWrkService = SpringUtils.getBean(TaskWrkService.class); |
| | | TaskWrk taskWrk = taskWrkService.selectByWrkNo(staProtocol.getWorkNo().intValue()); |
| | | if (taskWrk != null) { |
| | | taskWrk.setCommandStep(taskWrk.getCommandStep() + 1);//更新指令步序 |
| | | taskWrkService.updateById(taskWrk); |
| | | } |
| | | } |
| | | |
| | | } |