diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java index 7a2b254b6..92cebe15a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java @@ -204,7 +204,7 @@ public class BoxStorageOutConveyorDeviceDriver extends AbstractOpcDeviceDriver i break; case 2: //申请任务 - if (move > 0 && !requireSucess) { + if (move > 0 && task == 0 && !requireSucess) { instruction_require(); } break; @@ -283,7 +283,6 @@ public class BoxStorageOutConveyorDeviceDriver extends AbstractOpcDeviceDriver i } if (StrUtil.equals(inst.getInstruction_status(), "1") || StrUtil.equals(inst.getInstruction_status(), "0")) { if (StrUtil.equals(this.getDeviceCode(), inst.getNext_device_code())) { - vehicle_code = inst.getVehicle_code(); inst.setExecute_device_code(this.device_code); if (mode == 2) { finish_instruction(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/ItemProtocol.java index bb7b6b759..0c3193f9a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/ItemProtocol.java @@ -134,15 +134,7 @@ public class ItemProtocol { } - public String getOpcStringValue(String protocol) { - String value = this.driver.getStringValue(protocol); - if (StrUtil.isEmpty(value)) { - } else { - return value; - } - return "0"; - } public static List getReadableItemDtos() { ArrayList list = new ArrayList(); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java index 265d268d4..a72204ee5 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.one_conveyor.scanner_weight_conveyor; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; @@ -355,6 +356,9 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv String route_plan_code = taskdto.getRoute_plan_code(); List shortPathsList = routeLineService.getShortPathLines(taskdto.getStart_device_code(), taskdto.getNext_device_code(), route_plan_code); + if (CollectionUtil.isEmpty(shortPathsList)){ + return false; + } RouteLineDto routeLineDto = shortPathsList.get(0); String path = routeLineDto.getPath(); String[] str = path.split("->"); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ItemProtocol.java index 19567eef7..397f2d946 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ItemProtocol.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.one_conveyor.scanner_weight_conveyor; +import cn.hutool.core.util.StrUtil; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.device_driver.standard_inspect.ItemDto; @@ -153,13 +154,13 @@ public class ItemProtocol { public String getOpcStringValue(String protocol) { String value = this.driver.getStringValue(protocol); - if (value == null) { + if (StrUtil.isBlank(value)) { //throw new BusinessException("{} : {}", new Object[]{protocol, DeviceErrorProtocol.getMessage(10000)}); } else { return value; } - return null; + return "0"; } public int getOpcIntegerValue(String protocol) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java index 7522f0c6d..0e0f483fd 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_package_manipulator/BoxPackageManipulatorDeviceDriver.java @@ -265,14 +265,17 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } //放货完成 - if (mode == 3 && action == 4 && move == 0) { + if ( action == 4 && move == 0) { if (inst != null) { try { logServer.deviceExecuteLog(this.device_code,"","","放货完成"); finish_instruction(inst); - Map map = new LinkedHashMap<>(); - map.put("to_command", 5); - this.writing(map); + Map map1 = new HashMap<>(); + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 5); + list.add(map1); + this.writing(list); message = "放货完成"; } catch (Exception e) { message = "放货失败"; @@ -351,27 +354,51 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString()); - Map map = new LinkedHashMap<>(); - map.put("to_command", 1); - map.put("to_target", next_addr); - map.put("to_onset", start_addr); - map.put("to_task", instdto.getInstruction_code()); + Map map1 = new HashMap<>(); + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 1); + list.add(map1); + Map map2 = new HashMap<>(); + map2.put("code", "to_target"); + map2.put("value", next_addr); + list.add(map2); + Map map3 = new HashMap<>(); + map3.put("code", "to_onset"); + map3.put("value", start_addr); + list.add(map3); + Map map4 = new HashMap<>(); + map4.put("code", "to_task"); + map4.put("value", instdto.getInstruction_code()); + list.add(map4); if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_seq())) { - map.put("to_seq", interactionJsonDTO.getItem_to_seq()); + Map map5 = new HashMap<>(); + map5.put("code", "to_seq"); + map5.put("value", interactionJsonDTO.getItem_to_seq()); + list.add(map5); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_last_one())) { - map.put("to_last_one", interactionJsonDTO.getItem_to_last_one()); + Map map6 = new HashMap<>(); + map6.put("code", "to_last_one"); + map6.put("value", interactionJsonDTO.getItem_to_last_one()); + list.add(map6); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_direction())) { - map.put("to_direction", interactionJsonDTO.getItem_to_direction()); + Map map7 = new HashMap<>(); + map7.put("code", "to_direction"); + map7.put("value", interactionJsonDTO.getItem_to_direction()); + list.add(map7); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getItem_to_max_no())) { - map.put("to_max_no", interactionJsonDTO.getItem_to_max_no()); + Map map8 = new HashMap<>(); + map8.put("code", "to_max_no"); + map8.put("value", interactionJsonDTO.getItem_to_max_no()); + list.add(map8); } try { - this.writing(map); + this.writing(list); } catch (Exception e) { logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() @@ -394,24 +421,33 @@ public class BoxPackageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i /** * 下发 - * @param map + * */ - public void writing(Map map) { - DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); - Map itemMap = new LinkedHashMap<>(); - map.forEach((key, value) -> { - if (ObjectUtil.isNotEmpty(value)) { - itemMap.put(getToParam() + key, value); + + public void writing(List list) { + + Map itemMap = new HashMap(); + for (int i = 0; i < list.size(); i++) { + Object ob = list.get(i); + JSONObject json = (JSONObject) JSONObject.toJSON(ob); + if (!StrUtil.isEmpty(json.getString("value"))) { + String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + json.getString("code"); + itemMap.put(to_param, json.getString("value")); } - }); - if (ObjectUtil.isNotEmpty(itemMap)) { + } + logServer.deviceExecuteLog(device_code, "", "", "下发电气信号:" + itemMap); + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); try { this.checkcontrol(itemMap); - } catch (Exception e) { - throw new RuntimeException(e); + } catch (Exception e1) { + e1.printStackTrace(); } - logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); } + } /** diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java index cf6364bff..4dba84e9f 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/BoxStorageManipulatorDeviceDriver.java @@ -89,8 +89,8 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i int last_to_task = 0; int to_layer = 0; int last_to_layer = 0; - int to_barcode = 0; - int last_to_barcode = 0; + String to_barcode = null; + String last_to_barcode = null; Boolean isonline = true; int hasGoods = 0; @@ -246,9 +246,12 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i try { logServer.deviceExecuteLog(this.device_code, "", "", "放货完成"); finish_instruction(inst); - Map map = new LinkedHashMap<>(); - map.put("to_command", 5); - this.writing(map); + Map map1 = new HashMap<>(); + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 5); + list.add(map1); + this.writing(list); message = "放货完成"; } catch (Exception e) { message = "放货失败"; @@ -325,9 +328,6 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i try { instructionService.create(instdto); - //创建指令后修改任务状态 - taskDto.setTask_status("1"); - taskserver.update(taskDto); } catch (Exception e) { notCreateInstMessage = e.getMessage(); logServer.deviceExecuteLog(this.getDevice_code(), "", "", "创建指令时出现异常:" + e.getMessage()); @@ -336,32 +336,61 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() + ",指令终点:" + instdto.getNext_device_code() + ",交互参数:" + interactionJsonDTO.toString()); + //创建指令后修改任务状态 + taskDto.setTask_status("1"); + taskserver.update(taskDto); + requireSucess = true; - - Map map = new LinkedHashMap<>(); - map.put("to_command", 1); - map.put("to_target", next_addr); - map.put("to_onset", start_addr); - map.put("to_task", instdto.getInstruction_code()); + Map map1 = new HashMap<>(); + List list = new ArrayList(); + map1.put("code", "to_command"); + map1.put("value", 1); + list.add(map1); + Map map2 = new HashMap<>(); + map2.put("code", "to_target"); + map2.put("value", next_addr); + list.add(map2); + Map map3 = new HashMap<>(); + map3.put("code", "to_onset"); + map3.put("value", start_addr); + list.add(map3); + Map map4 = new HashMap<>(); + map4.put("code", "to_task"); + map4.put("value", instdto.getInstruction_code()); + list.add(map4); if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_weight())) { - map.put("to_wedth", interactionJsonDTO.getTo_weight()); + Map map5 = new HashMap<>(); + map5.put("code", "to_weight"); + map5.put("value", interactionJsonDTO.getTo_weight()); + list.add(map5); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_length())) { - map.put("to_length", interactionJsonDTO.getTo_length()); + Map map6 = new HashMap<>(); + map6.put("code", "to_length"); + map6.put("value", interactionJsonDTO.getTo_length()); + list.add(map6); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_height())) { - map.put("to_height", interactionJsonDTO.getTo_height()); + Map map7 = new HashMap<>(); + map7.put("code", "to_height"); + map7.put("value", interactionJsonDTO.getTo_height()); + list.add(map7); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_barcode())) { - map.put("to_barcode", interactionJsonDTO.getTo_barcode()); + Map map8 = new HashMap<>(); + map8.put("code", "to_barcode"); + map8.put("value", interactionJsonDTO.getTo_barcode()); + list.add(map8); } if (ObjectUtil.isNotEmpty(interactionJsonDTO.getTo_layer())) { - map.put("to_layer", interactionJsonDTO.getTo_layer()); + Map map9 = new HashMap<>(); + map9.put("code", "to_layer"); + map9.put("value", interactionJsonDTO.getTo_layer()); + list.add(map9); } - try { - this.writing(map); + this.writing(list); } catch (Exception e) { logServer.deviceExecuteLog(device_code, "", "", "当前设备:" + device_code + ",下发指令:" + instdto.getInstruction_code() + ",指令起点:" + instdto.getStart_device_code() @@ -378,18 +407,32 @@ public class BoxStorageManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } - public void writing(Map map) { - DeviceExecuteLogService logServer = SpringContextHolder.getBean("deviceExecuteLogServiceImpl"); - Map itemMap = new LinkedHashMap<>(); - map.forEach((key, value) -> { - if (ObjectUtil.isNotEmpty(value)) { - itemMap.put(getToParam() + key, value); + + + public void writing(List list) { + + Map itemMap = new HashMap(); + for (int i = 0; i < list.size(); i++) { + Object ob = list.get(i); + JSONObject json = (JSONObject) JSONObject.toJSON(ob); + if (!StrUtil.isEmpty(json.getString("value"))) { + String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + json.getString("code"); + itemMap.put(to_param, json.getString("value")); } - }); - if (ObjectUtil.isNotEmpty(itemMap)) { - this.control(itemMap); - logServer.deviceExecuteLog(this.getDevice().getDevice_code(), "", "", "下发多个电气信号:" + itemMap); } + logServer.deviceExecuteLog(device_code, "", "", "下发电气信号:" + itemMap); + try { + this.checkcontrol(itemMap); + } catch (Exception e) { + e.printStackTrace(); + try { + this.checkcontrol(itemMap); + } catch (Exception e1) { + e1.printStackTrace(); + } + } + } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java index 36f92ba4c..796dee308 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_manipulator/box_storage_manipulator/ItemProtocol.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.one_manipulator.box_storage_manipulator; +import cn.hutool.core.util.StrUtil; import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.device_driver.standard_inspect.ItemDto; @@ -132,8 +133,8 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_to_layer); } - public int getTo_barcode() { - return this.getOpcIntegerValue(item_to_barcode); + public String getTo_barcode() { + return this.getOpcStringValue(item_to_barcode); } public int getTo_command() { @@ -160,6 +161,16 @@ public class ItemProtocol { return 0; } + public String getOpcStringValue(String protocol) { + String value = this.driver.getStringValue(protocol); + if (StrUtil.isBlank(value)) { +// log.error("读取错误!"); + } else { + return value; + } + return "0"; + } + public static List getReadableItemDtos() { ArrayList list = new ArrayList<>(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); @@ -169,8 +180,6 @@ public class ItemProtocol { list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); list.add(new ItemDto(item_task, "任务号", "DB1.D6")); list.add(new ItemDto(item_walk_y, "行走列", "DB1.B4")); - list.add(new ItemDto(item_to_barcode, "下发木箱条码", "DB1.B7")); - list.add(new ItemDto(item_to_layer, "下发木箱层数", "DB1.B8")); return list; } @@ -183,6 +192,8 @@ public class ItemProtocol { list.add(new ItemDto(item_to_length, "木箱长度", "DB601.W14")); list.add(new ItemDto(item_to_weight, "木箱宽度", "DB601.W16")); list.add(new ItemDto(item_to_height, "木箱高度", "DB601.W18")); + list.add(new ItemDto(item_to_barcode, "下发木箱条码", "DB601.STRING1.50")); + list.add(new ItemDto(item_to_layer, "下发木箱层数", "DB601.W22")); return list; } }