diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java index 8c63804c8..92c0cc354 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/oven_manipulator/OvenGantryManipulatorDeviceDriver.java @@ -273,13 +273,13 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver(); hongXiangConveyorDeviceDriver.writing("to_close_door", "1"); - if(StrUtil.isNotEmpty(taskDto.getOven_time())){ + if (StrUtil.isNotEmpty(taskDto.getOven_time())) { //下发烘箱时间 int time = Integer.parseInt(taskDto.getOven_time()); int hours = (time % (60 * 60 * 24)) / (60 * 60); int minutes = (time % (60 * 60)) / 60; - hongXiangConveyorDeviceDriver.writing("to_time_house",String.valueOf(hours)); - hongXiangConveyorDeviceDriver.writing("to_time_min",String.valueOf(minutes)); + hongXiangConveyorDeviceDriver.writing("to_time_house", String.valueOf(hours)); + hongXiangConveyorDeviceDriver.writing("to_time_min", String.valueOf(minutes)); } } this.writing("to_command", "5"); @@ -298,6 +298,8 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } } catch (Exception var17) { + feedMessage = var17.getMessage(); + logServer.deviceExecuteLog(this.getDevice_code(), "", "", "读取信号值时出现异常:" + var17.getMessage()); return; } @@ -326,6 +328,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i //行架机械手申请任务 if (mode == 2 && move == 0 && task == 0 && !requireSucess) { applyTask(); + notCreateInstMessage = ""; + notCreateTaskMessage = ""; + feedMessage = ""; } else { if (!requireSucess) { String remark = ""; @@ -390,9 +395,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i String start_device_code = instruction.getStart_device_code(); String next_device_code = instruction.getNext_device_code(); //判断关联的同一列烘箱设备是否都关门 都关门返回false,有一个不关门就返回true - boolean isCloseDoor = this.judgeCloseDoor(start_device_code,next_device_code); + boolean isCloseDoor = this.judgeCloseDoor(start_device_code, next_device_code); //未关门结束 - if (isCloseDoor){ + if (isCloseDoor) { return false; } instruction.setInstruction_status("1"); @@ -458,9 +463,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i instdto.setExecute_device_code(start_point_code); //判断关联的同一列烘箱设备是否都关门 都关门返回false,有一个不关门就返回true - boolean isCloseDoor = this.judgeCloseDoor(instdto.getStart_device_code(),instdto.getNext_device_code()); + boolean isCloseDoor = this.judgeCloseDoor(instdto.getStart_device_code(), instdto.getNext_device_code()); //如果未关门结束 - if (isCloseDoor){ + if (isCloseDoor) { return false; } @@ -493,9 +498,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i this.writing("to_task", instdto.getInstruction_code()); this.writing("to_command", "1"); HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver; - if(nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver){ + if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) device.getDeviceDriver(); - hongXiangConveyorDeviceDriver.writing("to_open","1"); + hongXiangConveyorDeviceDriver.writing("to_open", "1"); } this.setNow_steps_type(2); this.setRequireSucess(true); @@ -525,7 +530,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); - itemMap.put(to_param, value); + itemMap.put(to_param, Integer.parseInt(value)); // itemMap.put(to_param, Integer.parseInt(value)); ReadUtil.write(itemMap, server); } @@ -535,48 +540,66 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i } //判断取货位或放货位为烘箱设备时关联的同一列烘箱设备是否有开门 - public boolean judgeCloseDoor(String start_device_code,String next_device_code) { + public boolean judgeCloseDoor(String start_device_code, String next_device_code) { Boolean isClose = false; - Device startDevice = deviceAppService.findDeviceByCode(start_device_code); - Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); - HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver; - if (startDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { - hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startDevice.getDeviceDriver(); - List deviceCodes = hongXiangConveyorDeviceDriver.getExtraDeviceCodes("link_device_code"); - if (ObjectUtil.isNotEmpty(deviceCodes)) { - for (String deviceCode : deviceCodes) { - Device linkDevice = deviceAppService.findDeviceByCode(deviceCode); - if (linkDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { - hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) linkDevice.getDeviceDriver(); - //判断关联设备是否开门 - if (hongXiangConveyorDeviceDriver.getDoor() == 1) { - isClose = true; - notCreateInstMessage = start_device_code + "关联设备->" + deviceCode + "烘箱门未关闭!"; - break; + + try { + Device startDevice = deviceAppService.findDeviceByCode(start_device_code); + Device nextDevice = deviceAppService.findDeviceByCode(next_device_code); + HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver; + if (ObjectUtil.isEmpty(startDevice)) { + throw new BadRequestException("设备号:" + start_device_code + "不存在!"); + } + if (startDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { + hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startDevice.getDeviceDriver(); + List deviceCodes = hongXiangConveyorDeviceDriver.getExtraDeviceCodes("link_device_code"); + if (ObjectUtil.isNotEmpty(deviceCodes)) { + for (String deviceCode : deviceCodes) { + Device linkDevice = deviceAppService.findDeviceByCode(deviceCode); + if (ObjectUtil.isEmpty(linkDevice)) { + throw new BadRequestException("设备:" + start_device_code + "关联设备->" + deviceCode + "为空!"); + } + if (linkDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { + hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) linkDevice.getDeviceDriver(); + //判断关联设备是否开门 + if (hongXiangConveyorDeviceDriver.getDoor() == 1) { + isClose = true; + notCreateInstMessage = start_device_code + "关联设备->" + deviceCode + "烘箱门未关闭!"; + break; + } } } + return isClose; } - return isClose; } - } - if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { - hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver(); - List deviceCodes = hongXiangConveyorDeviceDriver.getExtraDeviceCodes("link_device_code"); - if (ObjectUtil.isNotEmpty(deviceCodes)) { - for (String deviceCode : deviceCodes) { - Device linkDevice = deviceAppService.findDeviceByCode(deviceCode); - if (linkDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { - hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) linkDevice.getDeviceDriver(); - //判断关联设备是否开门 - if (hongXiangConveyorDeviceDriver.getDoor() == 1) { - isClose = true; - notCreateInstMessage = next_device_code + "关联设备->" + deviceCode + "烘箱门未关闭!"; - break; + if (ObjectUtil.isEmpty(nextDevice)) { + throw new BadRequestException("设备号:" + next_device_code + "不存在!"); + } + if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { + hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver(); + List deviceCodes = hongXiangConveyorDeviceDriver.getExtraDeviceCodes("link_device_code"); + if (ObjectUtil.isNotEmpty(deviceCodes)) { + for (String deviceCode : deviceCodes) { + Device linkDevice = deviceAppService.findDeviceByCode(deviceCode); + if (ObjectUtil.isEmpty(linkDevice)) { + throw new BadRequestException("设备:" + next_device_code + "关联设备->" + deviceCode + "为空!"); + } + if (linkDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) { + hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) linkDevice.getDeviceDriver(); + //判断关联设备是否开门 + if (hongXiangConveyorDeviceDriver.getDoor() == 1) { + isClose = true; + notCreateInstMessage = next_device_code + "关联设备->" + deviceCode + "烘箱门未关闭!"; + break; + } } } + return isClose; } - return isClose; } + } catch (Exception e) { + isClose = true; + notCreateInstMessage = "检查烘箱是否关门时出现异常:" + e.getMessage(); } return isClose; } @@ -592,7 +615,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i //将扩展表中的字符串数据转换成集合 public List getExtraDeviceCodes(String extraName) { String extraValue = (String) this.getDevice().getExtraValue().get(extraName); - if (StrUtil.isEmpty(extraValue)){ + if (StrUtil.isEmpty(extraValue)) { return new ArrayList<>(); } String devicesString = extraValue.substring(1, extraValue.length() - 1); diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java index 22d829982..6caae49ac 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java @@ -214,6 +214,8 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme } } catch (Exception var17) { + inst_message = var17.getMessage(); + logServer.deviceExecuteLog(this.getDevice_code(), "", "", "读取信号值时出现异常:" + var17.getMessage()); return; } @@ -526,7 +528,9 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme this.writing("to_target", next_addr); this.writing("to_task", instdto.getInstruction_code()); this.writing("to_command", "1"); - + this.writing("to_task", instdto.getInstruction_code()); + this.writing("to_target", next_addr); + this.writing("to_command", "1"); } return true; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index a5e36819a..dce2d6e7b 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -290,7 +290,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl Device startDevice = deviceAppservice.findDeviceByCode(start_device_code); if (ObjectUtil.isEmpty(startDevice)) { feedMessage = "后工位取货位:" + start_device_code + "为空!"; - return; + logServer.deviceExecuteLog(this.getDeviceCode(), "", "", "后工位取货位:" + start_device_code + "为空!"); + throw new BadRequestException("后工位取货位:" + start_device_code + "为空!"); } SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; if (startDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { @@ -435,7 +436,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); if (ObjectUtil.isEmpty(nextDevice)) { feedMessage = "前工位放货位:" + next_device_code + "为空!"; - return; + throw new BadRequestException("前工位放货位:" + next_device_code + "为空!"); } SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; if (nextDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { @@ -529,6 +530,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl } catch (Exception var17) { + feedMessage = var17.getMessage(); + logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage()); return; } @@ -579,6 +582,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //没有生成异常取放货工位的任务 就生成正常关联取放货工位的任务 instruction_require(); feedMessage = ""; + notCreateInstMessage = ""; + notCreateTaskMessage = ""; logServer.deviceExecuteLog(device_code, "", String.valueOf(task1), "move2:" + move2 + ",action2:" + action2 + ",move1:" + move1 + ",action1:" + action1 + ",requireSucess:" + requireSucess); } else { // if (!requireSucess) { @@ -1023,7 +1028,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl String opcservcerid = this.getDevice().getOpc_server_id(); Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); - itemMap.put(to_param, value); + itemMap.put(to_param, Integer.parseInt(value)); ReadUtil.write(itemMap, server); } diff --git a/acs/nladmin-ui/src/views/acs/device/driver/hongxiang_conveyor.vue b/acs/nladmin-ui/src/views/acs/device/driver/hongxiang_conveyor.vue index ae44d33a9..8f23c7a15 100644 --- a/acs/nladmin-ui/src/views/acs/device/driver/hongxiang_conveyor.vue +++ b/acs/nladmin-ui/src/views/acs/device/driver/hongxiang_conveyor.vue @@ -53,7 +53,7 @@ - + @@ -298,7 +298,8 @@ export default { manual_create_task: true, is_pickup: true, is_release: true, - link_device_code: [] + link_device_code: [], + address: '' }, rules: {} } diff --git a/acs/nladmin-ui/src/views/acs/device/driver/hongxiang_device.vue b/acs/nladmin-ui/src/views/acs/device/driver/hongxiang_device.vue index baf3c9676..2a71c31c7 100644 --- a/acs/nladmin-ui/src/views/acs/device/driver/hongxiang_device.vue +++ b/acs/nladmin-ui/src/views/acs/device/driver/hongxiang_device.vue @@ -52,7 +52,7 @@ - + @@ -297,7 +297,8 @@ export default { manual_create_task: true, is_pickup: true, is_release: true, - link_device_code: [] + link_device_code: [], + address: '' }, rules: {} } diff --git a/acs/nladmin-ui/src/views/acs/device/driver/standard_conveyor_monitor.vue b/acs/nladmin-ui/src/views/acs/device/driver/standard_conveyor_monitor.vue index 5514d0d57..62cd62239 100644 --- a/acs/nladmin-ui/src/views/acs/device/driver/standard_conveyor_monitor.vue +++ b/acs/nladmin-ui/src/views/acs/device/driver/standard_conveyor_monitor.vue @@ -52,7 +52,7 @@ - + @@ -297,7 +297,8 @@ export default { manual_create_task: true, is_pickup: true, is_release: true, - link_device_code: [] + link_device_code: [], + address: '' }, rules: {} } diff --git a/acs/nladmin-ui/src/views/acs/device/driver/standard_inspect_site.vue b/acs/nladmin-ui/src/views/acs/device/driver/standard_inspect_site.vue index baf3c9676..2a71c31c7 100644 --- a/acs/nladmin-ui/src/views/acs/device/driver/standard_inspect_site.vue +++ b/acs/nladmin-ui/src/views/acs/device/driver/standard_inspect_site.vue @@ -52,7 +52,7 @@ - + @@ -297,7 +297,8 @@ export default { manual_create_task: true, is_pickup: true, is_release: true, - link_device_code: [] + link_device_code: [], + address: '' }, rules: {} }