From 98618cbf5297aa77b11b66514a5c1b86d5ef8baa Mon Sep 17 00:00:00 2001 From: lishuai <1793460677@qq.com> Date: Wed, 24 Jul 2024 10:01:19 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E8=AF=BB=E7=A9=BA=E6=8C=87=E9=92=88?= =?UTF-8?q?=E5=BC=82=E5=B8=B8=E8=A7=A3=E5=86=B3=E9=98=BB=E5=A1=9E=E9=97=AE?= =?UTF-8?q?=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../standard_stacker/ItemProtocol.java | 4 +- .../StandardStackerDeviceDriver.java | 412 +++++++++--------- 2 files changed, 215 insertions(+), 201 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/ItemProtocol.java index e40088514..f007d5555 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/ItemProtocol.java @@ -273,14 +273,14 @@ public class ItemProtocol { setIsonline(true); return value; } - return 0; + return value; } public String getOpcStringValue(String protocol) { String value = this.driver.getStringValue(protocol); if (value == null) { setIsonline(false); - return "0"; + return value; } else { setIsonline(true); return value; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java index 9ee01a092..9190852d9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/stacker/standard_stacker/StandardStackerDeviceDriver.java @@ -358,211 +358,219 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme } } } + //不同任务限制清零 + if (!Objects.equals(task, last_task)) { + this.isonline=true; + count = 0; + } + + if (mode == 0 || command == 9) { + this.setIsonline(false); + message = "universal_off"; + }else { + this.setIsonline(true); + } + if (error != 0) { + this.setIserror(true); + message = "universal_message3"; + } else { + this.setIserror(false); + } + if (mode != 3 || requireSucess) { + message = "one_message7"; + } else { + if (error != 0) { + erroBlock(); + } + List list = new ArrayList(); + switch (command) { + case 0: + boolean b = applyTask(); + if (b) { + requireSucess = false; + } + break; + case 1: + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content("取货中") + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + message = "universal_delivery"; + + if (updateCommand("1")) break; + break; + case 2: + LuceneLogDto logDto1 = LuceneLogDto.builder() + .device_code(device_code) + .content("取货完成") + .build(); + logDto1.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto1); + message = "universal_completed"; + if (updateCommand("2")) break; + Instruction instruction2 = checkInst(); + if (ObjectUtil.isEmpty(instruction2)) { + message = "universal_message4"; + break; + } + String next_device_code = instruction2.getNext_device_code(); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + if (StrUtil.equals(nextDevice.getDevice_type(), DeviceType.conveyor.name())) { + packageDevicePoint(nextDevice, list); + } + if (StrUtil.equals(nextDevice.getDevice_type(), DeviceType.storage.name())) { + String pattern = "\\d+"; + Pattern compile = Pattern.compile(pattern); + Map map = new HashMap<>(); + map.put("code", "to_y"); + map.put("value", inst.getTo_z() ); + list.add(map); + if (inst.getTo_x().length() > 1 && !compile.matcher(inst.getTo_x()).matches()) { + String substring = inst.getTo_x().substring(1); + Map map1 = new HashMap<>(); + map1.put("code", "to_z"); + map1.put("value", substring); + list.add(map1); + } else { + Map map2 = new HashMap<>(); + map2.put("code", "to_z"); + map2.put("value", inst.getTo_x()); + list.add(map2); + } + Map map3 = new HashMap<>(); + map3.put("code", "to_x"); + map3.put("value", inst.getTo_y()); + list.add(map3); + } + Map map4 = new HashMap<>(); + map4.put("code", "to_command"); + map4.put("value", 2); + list.add(map4); + requireSucess = false; + break; + case 3: + LuceneLogDto logDto2 = LuceneLogDto.builder() + .device_code(device_code) + .content("放货") + .build(); + logDto2.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto2); + message = "universal_releasing"; + if (updateCommand("3")) break; + break; + case 4: + message = "one_message1"; + Instruction instruction1 = checkInst(); + String next_device_code1 = instruction1.getNext_device_code(); + Device nextDevice1 = deviceAppService.findDeviceByCode(next_device_code1); + if (ObjectUtil.isNotNull(instruction1)) { + //指令为执行 + SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; + if (nextDevice1.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { + siemensConveyorDeviceDriver = (SiemensConveyorDeviceDriver) nextDevice1.getDeviceDriver(); + if (siemensConveyorDeviceDriver.getMode() != 2 || siemensConveyorDeviceDriver.getMove() == 1) { + notCreateInstMessage = "未下发电气信号原因->输送线-货架对接位:" + siemensConveyorDeviceDriver.getDevice_code() + + "有货或未联机,无法下发指令!指令号:" + inst.getInstruction_code(); + return; + } + } + Map map = new HashMap<>(); + map.put("code", "to_command"); + map.put("value", 4); + list.add(map); + } + requireSucess = false; + break; + case 5: + LuceneLogDto logDto3 = LuceneLogDto.builder() + .device_code(device_code) + .content("放货完成") + .build(); + logDto3.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto3); + message = "universal_releasing_completed"; + Map map = new HashMap<>(); + List list5 = new ArrayList(); + map.put("code", "to_command"); + map.put("value", 11); + list5.add(map); + this.writing(list5); + Instruction inst = checkInst(); + try { + if ("3".equals(inst.getPriority()) && errorInst != null) { + //存在同排移库做完后直接出库 + String start_device_code = errorInst.getStart_device_code(); + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + List listError = new ArrayList(); + pakageCommand(listError , errorInst.getInstruction_code()); + if (StrUtil.equals(startDevice.getDevice_type(), DeviceType.storage.name()) && !prohibitOutWarehouse) { + pakagePlc(errorInst, listError,"1"); + } + if (ObjectUtil.isNotEmpty(listError)) { + this.writing(listError); + } + finish_instruction(inst); + errorInst = null; + } else { + finish_instruction(inst); + } + } catch (Exception e) { + e.printStackTrace(); + } + + inst = null; + requireSucess = false; + break; + case 6: + message = "one_message2"; + Map map1 = new HashMap<>(); + map1.put("code", "to_command"); + map1.put("value", 6); + list.add(map1); + requireSucess = false; + break; + case 7: + message = "one_message3"; + Map map2 = new HashMap<>(); + map2.put("code", "to_command"); + map2.put("value", 7); + list.add(map2); + requireSucess = false; + break; + case 8: + message = "one_message4"; + Map map3 = new HashMap<>(); + map3.put("code", "to_command"); + map3.put("value", 8); + list.add(map3); + requireSucess = false; + break; + default: + message = "one_message5"; + requireSucess = false; + break; + } + if (list.size() != 0) { + this.writing(list); + } + + } } catch (Exception var17) { + this.iserror = true; + LuceneLogDto logDto = LuceneLogDto.builder() + .device_code(device_code) + .content(this.device_code + "读取信号值时出现异常:" + var17.getMessage() + ",this.itemProtocol is null") + .build(); + logDto.setLog_level(4); + luceneExecuteLogService.deviceExecuteLog(logDto); + message = "读取信号值时出现异常:" + var17.getMessage(); var17.printStackTrace(); - logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage() + ",this.itemProtocol is null:" + ObjectUtil.isEmpty(this.itemProtocol)); } - //不同任务限制清零 - if (!Objects.equals(task, last_task)) { - this.isonline=true; - count = 0; - } - if (mode == 0 || command == 9) { - this.setIsonline(false); - message = "universal_off"; - }else { - this.setIsonline(true); - } - if (error != 0) { - this.setIserror(true); - message = "universal_message3"; - } else { - this.setIserror(false); - } - if (mode != 3 || requireSucess) { - message = "one_message7"; - } else { - if (error != 0) { - erroBlock(); - } - List list = new ArrayList(); - switch (command) { - case 0: - boolean b = applyTask(); - if (b) { - requireSucess = false; - } - break; - case 1: - LuceneLogDto logDto = LuceneLogDto.builder() - .device_code(device_code) - .content("取货中") - .build(); - logDto.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto); - message = "universal_delivery"; - - if (updateCommand("1")) break; - break; - case 2: - LuceneLogDto logDto1 = LuceneLogDto.builder() - .device_code(device_code) - .content("取货完成") - .build(); - logDto1.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto1); - message = "universal_completed"; - if (updateCommand("2")) break; - Instruction instruction2 = checkInst(); - if (ObjectUtil.isEmpty(instruction2)) { - message = "universal_message4"; - break; - } - String next_device_code = instruction2.getNext_device_code(); - Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); - if (StrUtil.equals(nextDevice.getDevice_type(), DeviceType.conveyor.name())) { - packageDevicePoint(nextDevice, list); - } - if (StrUtil.equals(nextDevice.getDevice_type(), DeviceType.storage.name())) { - String pattern = "\\d+"; - Pattern compile = Pattern.compile(pattern); - Map map = new HashMap<>(); - map.put("code", "to_y"); - map.put("value", inst.getTo_z() ); - list.add(map); - if (inst.getTo_x().length() > 1 && !compile.matcher(inst.getTo_x()).matches()) { - String substring = inst.getTo_x().substring(1); - Map map1 = new HashMap<>(); - map1.put("code", "to_z"); - map1.put("value", substring); - list.add(map1); - } else { - Map map2 = new HashMap<>(); - map2.put("code", "to_z"); - map2.put("value", inst.getTo_x()); - list.add(map2); - } - Map map3 = new HashMap<>(); - map3.put("code", "to_x"); - map3.put("value", inst.getTo_y()); - list.add(map3); - } - Map map4 = new HashMap<>(); - map4.put("code", "to_command"); - map4.put("value", 2); - list.add(map4); - requireSucess = false; - break; - case 3: - LuceneLogDto logDto2 = LuceneLogDto.builder() - .device_code(device_code) - .content("放货") - .build(); - logDto2.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto2); - message = "universal_releasing"; - if (updateCommand("3")) break; - break; - case 4: - message = "one_message1"; - Instruction instruction1 = checkInst(); - String next_device_code1 = instruction1.getNext_device_code(); - Device nextDevice1 = deviceAppService.findDeviceByCode(next_device_code1); - if (ObjectUtil.isNotNull(instruction1)) { - //指令为执行 - SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; - if (nextDevice1.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { - siemensConveyorDeviceDriver = (SiemensConveyorDeviceDriver) nextDevice1.getDeviceDriver(); - if (siemensConveyorDeviceDriver.getMode() != 2 || siemensConveyorDeviceDriver.getMove() == 1) { - notCreateInstMessage = "未下发电气信号原因->输送线-货架对接位:" + siemensConveyorDeviceDriver.getDevice_code() + - "有货或未联机,无法下发指令!指令号:" + inst.getInstruction_code(); - return; - } - } - Map map = new HashMap<>(); - map.put("code", "to_command"); - map.put("value", 4); - list.add(map); - } - requireSucess = false; - break; - case 5: - LuceneLogDto logDto3 = LuceneLogDto.builder() - .device_code(device_code) - .content("放货完成") - .build(); - logDto3.setLog_level(4); - luceneExecuteLogService.deviceExecuteLog(logDto3); - message = "universal_releasing_completed"; - Map map = new HashMap<>(); - List list5 = new ArrayList(); - map.put("code", "to_command"); - map.put("value", 11); - list5.add(map); - this.writing(list5); - Instruction inst = checkInst(); - try { - if ("3".equals(inst.getPriority()) && errorInst != null) { - //存在同排移库做完后直接出库 - String start_device_code = errorInst.getStart_device_code(); - Device startDevice = deviceAppService.findDeviceByCode(start_device_code); - List listError = new ArrayList(); - pakageCommand(listError , errorInst.getInstruction_code()); - if (StrUtil.equals(startDevice.getDevice_type(), DeviceType.storage.name()) && !prohibitOutWarehouse) { - pakagePlc(errorInst, listError,"1"); - } - if (ObjectUtil.isNotEmpty(listError)) { - this.writing(listError); - } - finish_instruction(inst); - errorInst = null; - } else { - finish_instruction(inst); - } - } catch (Exception e) { - e.printStackTrace(); - } - - inst = null; - requireSucess = false; - break; - case 6: - message = "one_message2"; - Map map1 = new HashMap<>(); - map1.put("code", "to_command"); - map1.put("value", 6); - list.add(map1); - requireSucess = false; - break; - case 7: - message = "one_message3"; - Map map2 = new HashMap<>(); - map2.put("code", "to_command"); - map2.put("value", 7); - list.add(map2); - requireSucess = false; - break; - case 8: - message = "one_message4"; - Map map3 = new HashMap<>(); - map3.put("code", "to_command"); - map3.put("value", 8); - list.add(map3); - requireSucess = false; - break; - default: - message = "one_message5"; - requireSucess = false; - break; - } - if (list.size() != 0) { - this.writing(list); - } - - } last_heartbeat = heartbeat; last_item_deviceCode = item_deviceCode; @@ -924,6 +932,12 @@ public class StandardStackerDeviceDriver extends AbstractOpcDeviceDriver impleme requireSucess = true; return true; } + //同排移库报警 + if (StrUtil.equals(startDevice.getDevice_type(), DeviceType.storage.name())) { + pakagePLCData(list, nextDevice.getExtraValue().get("x").toString(), nextDevice.getExtraValue().get("z").toString(), nextDevice.getExtraValue().get("y").toString(), "2", instructionErro.getInstruction_code()); + requireSucess = true; + return true; + } }else { message = "one_message20"; }