From 6cd78775efce5f6a663513b4566f19754d978df0 Mon Sep 17 00:00:00 2001 From: tuqiang <437016993@qq.com> Date: Mon, 22 Jan 2024 09:54:11 +0800 Subject: [PATCH] =?UTF-8?q?rev=EF=BC=9A=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/acs/device/enums/DeviceType.java | 1 + .../SiemensConveyorDeviceDriver.java | 12 + .../BlankManipulatorDefination.java | 2 +- .../BlankManipulatorDeviceDriver.java | 40 +- .../BlankingButtonDefination.java | 6 +- .../blanking_button/ItemProtocol.java | 12 +- .../GreenFoilMachineButtonDefination.java | 6 +- .../GreenFoilMachineButtonDriver.java | 20 +- .../ItemProtocol.java | 12 +- .../HongXiangStationDefination.java | 2 +- .../HongXiangConveyorDefination.java | 2 +- .../ItemProtocol.java | 16 +- .../OvenGantryManipulatorDefination.java | 2 +- .../plug_pull_device_site/ItemProtocol.java | 38 +- .../PlugPullDeviceSiteDefination.java | 2 +- .../PlugPullDeviceSiteDeviceDriver.java | 81 +- .../pull_head_manipulator/ItemProtocol.java | 40 +- .../PullHeadManipulatorDefination.java | 2 +- .../pull_tail_manipulator/ItemProtocol.java | 28 +- .../PullTailManipulatorDefination.java | 2 +- .../slit_two_manipulator/ItemProtocol.java | 127 ++- .../SlitTwoManipulatorDefination.java | 2 +- .../SlitTwoManipulatorDeviceDriver.java | 884 +++++------------- .../ItemProtocol.java | 14 +- .../SubvolumeWeighingStationDefination.java | 2 +- .../ItemProtocol.java | 16 +- .../WasteFoilWeighingStationDefination.java | 2 +- .../data/ApplyManipulatorActionRequest.java | 32 +- .../data/ApplyManipulatorActionResponse.java | 11 + .../wms/data/ApplyPlugPullSitResponse.java | 11 + .../wms/data/ApplyPlugPullSiteRequest.java | 30 + .../acs/ext/wms/service/AcsToWmsService.java | 21 +- .../wms/service/impl/AcsToWmsServiceImpl.java | 74 +- .../wms/service/impl/WmsToAcsServiceImpl.java | 50 +- .../org/nl/acs/task/service/dto/TaskDto.java | 5 + .../src/views/acs/device/config.vue | 16 +- .../acs/device/driver/blanking_button.vue | 2 +- .../driver/green_foil_machine_button.vue | 2 +- .../driver/inflatable_shaft_library.vue | 667 +++++++++++++ .../device/driver/pull_head_manipulator.vue | 546 +++++++++++ .../device/driver/pull_tail_manipulator.vue | 546 +++++++++++ .../device/driver/slit_two_manipulator.vue | 132 +-- .../driver/subvolume_weighing_station.vue | 2 +- .../driver/waste_foil_weighing_station.vue | 667 +++++++++++++ 44 files changed, 3176 insertions(+), 1011 deletions(-) create mode 100644 acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionResponse.java create mode 100644 acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSitResponse.java create mode 100644 acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSiteRequest.java create mode 100644 acs2/nladmin-ui/src/views/acs/device/driver/inflatable_shaft_library.vue create mode 100644 acs2/nladmin-ui/src/views/acs/device/driver/pull_head_manipulator.vue create mode 100644 acs2/nladmin-ui/src/views/acs/device/driver/pull_tail_manipulator.vue create mode 100644 acs2/nladmin-ui/src/views/acs/device/driver/waste_foil_weighing_station.vue diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/enums/DeviceType.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/enums/DeviceType.java index 6061a8079..dff18ec45 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/enums/DeviceType.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device/enums/DeviceType.java @@ -18,6 +18,7 @@ public enum DeviceType { group("设备组", 12), plcDb("plcDb块", 13), shadow("影子设备", 15), + button("按钮",14), other("其他设备", 16); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/siemens_conveyor/SiemensConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/siemens_conveyor/SiemensConveyorDeviceDriver.java index f818d37f7..7bf1ddc47 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/siemens_conveyor/SiemensConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/siemens_conveyor/SiemensConveyorDeviceDriver.java @@ -535,6 +535,18 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme } + public void writing(String param, String value) { + + String to_param = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + param; + + Map itemMap = new HashMap(); + + itemMap.put(to_param, Integer.parseInt(value)); + this.control(itemMap); + logServer.deviceExecuteLog(device_code, "", "", "下发电气信号设备号:" + device_code + ",下发电气:" + to_param + ",下发电气值:" + value); + } + /** * 请求指令 diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDefination.java index d9e8e193a..1b8123a8e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDefination.java @@ -41,7 +41,7 @@ public class BlankManipulatorDefination implements OpcDeviceDriverDefination { @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.station); + types.add(DeviceType.robot); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java index 5e43e0b13..abfb2f655 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blank_manipulator/BlankManipulatorDeviceDriver.java @@ -4,6 +4,9 @@ import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; +import cn.hutool.http.HttpResponse; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -17,6 +20,9 @@ import org.nl.acs.device_driver.FeedLmsRealFailed; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.ext.wms.data.ApplyManipulatorActionRequest; +import org.nl.acs.ext.wms.data.ApplyManipulatorActionResponse; +import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.history.ErrorUtil; import org.nl.acs.history.service.DeviceErrorLogService; import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl; @@ -61,7 +67,8 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem DeviceExtraService deviceExtraService = SpringContextHolder.getBean(DeviceExtraServiceImpl.class); @Autowired DeviceErrorLogService errorLogServer = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); - + @Autowired + AcsToWmsService acsToWmsService = SpringContextHolder.getBean("acsToWmsServiceImpl"); //工作模式 int mode = 0; int last_mode = 0; @@ -233,12 +240,31 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem if (mode == 3 && action == 5 && move == 1 && task > 0) { Instruction inst2 = instructionService.findByCodeFromCache(String.valueOf(task)); if (ObjectUtil.isNotEmpty(inst2)) { - Map map = new LinkedHashMap<>(); - //todo:反馈重量、条码 - map.put("to_command", "5"); - this.writing(map); + String task_code = inst2.getTask_code(); + TaskDto dto = taskserver.findByCode(task_code); + JSONObject jo = new JSONObject(); + jo.put("task_id", dto.getTask_id()); + jo.put("task_code", dto.getTask_code()); + jo.put("task_status", dto.getTask_status()); + jo.put("productin_qty", String.valueOf(this.weight)); + jo.put("scroll_code", String.valueOf(this.barcode)); + JSONArray ja = new JSONArray(); + ja.add(jo); + HttpResponse body = acsToWmsService.feedbackTaskStatusToWms(ja); + if (body.getStatus() == 200) { + message = "反馈重量以及收卷轴LMS成功..."; + requireSucess = true; + logServer.deviceExecuteLog(this.device_code, "", "", "反馈尺寸成请求成功,响应参数:" + JSON.toJSONString(body)); + Map map = new LinkedHashMap<>(); + map.put("to_command", "5"); + this.writing(map); + } else { + message = "反馈重量以及收卷轴LMS失败..."; + requireSucess = false; + message = "反馈LMS尺寸失败"; + } } else { - logServer.deviceExecuteLog(this.device_code, "", "", "未反馈电气信号原因:当前步骤不为允许取货(now_steps_type!=3)"); + logServer.deviceExecuteLog(this.device_code, "", "", "当前指令号为空"); } } else { feedMessage = "行架机械手:"; @@ -262,6 +288,8 @@ public class BlankManipulatorDeviceDriver extends AbstractOpcDeviceDriver implem if (inst2 != null) { if (StrUtil.equals(inst2.getInstruction_status(), InstructionStatusEnum.BUSY.getIndex())) { try { + requireSucess = true; + message = "任务完成..."; finish_instruction(inst2); Map map = new LinkedHashMap<>(); map.put("to_command", "6"); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDefination.java index 71c613085..89fdf4219 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/BlankingButtonDefination.java @@ -17,12 +17,12 @@ import java.util.List; public class BlankingButtonDefination implements OpcDeviceDriverDefination { @Override public String getDriverCode() { - return "green_foil_machine_button"; + return "blanking_button"; } @Override public String getDriverName() { - return "下料按钮"; + return "表处下料按钮"; } @Override @@ -43,7 +43,7 @@ public class BlankingButtonDefination implements OpcDeviceDriverDefination { @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.conveyor); + types.add(DeviceType.button); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/ItemProtocol.java index 2bb83e2e6..5b8840b4b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/blanking_button/ItemProtocol.java @@ -71,17 +71,17 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "251")); - list.add(new ItemDto(item_mode, "工作模式", "7990")); - list.add(new ItemDto(item_move, "光电信号", "550")); - list.add(new ItemDto(item_action, "取放信号", "450")); - list.add(new ItemDto(item_error, "故障", "8055")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB3.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB3.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB3.B2")); + list.add(new ItemDto(item_action, "取放信号", "DB3.B3")); + list.add(new ItemDto(item_error, "故障", "DB3.B4")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "下发命令", "40226")); + list.add(new ItemDto(item_to_command, "下发命令", "DB4.W0")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDefination.java index 6503a8da0..fc02f5c8c 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDefination.java @@ -22,12 +22,12 @@ public class GreenFoilMachineButtonDefination implements OpcDeviceDriverDefinati @Override public String getDriverName() { - return "生箔机按钮协议"; + return "生箔机按钮"; } @Override public String getDriverDescription() { - return "生箔机按钮协议"; + return "生箔机按钮"; } @Override @@ -43,7 +43,7 @@ public class GreenFoilMachineButtonDefination implements OpcDeviceDriverDefinati @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.conveyor); + types.add(DeviceType.button); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDriver.java index fed8362f9..946995173 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/GreenFoilMachineButtonDriver.java @@ -161,7 +161,7 @@ public class GreenFoilMachineButtonDriver extends AbstractOpcDeviceDriver implem break; case 4: // 申请AGV取空取满放空放满任务 - if (move > 0 && !requireSucess) { + if (!requireSucess) { applyAgvTask(mode); } break; @@ -169,31 +169,19 @@ public class GreenFoilMachineButtonDriver extends AbstractOpcDeviceDriver implem /** * 申请AGV取空放空的任务 */ - if (move > 0 && !requireSucess) { + if (!requireSucess) { applyAgvTask(mode); } break; case 6: // 申请取满放满任务 - if (move > 0 && !requireSucess) { - applyAgvTask(mode); - } - break; - case 7: - // 允许AGV进入 - if (move == 0 && !requireSucess) { - applyAgvTask(mode); - } - break; - case 8: - // 允许AGV离开 - if (move == 0 && !requireSucess) { + if (!requireSucess) { applyAgvTask(mode); } break; case 9: // 取消任务 - if (move == 0 && !requireSucess) { + if (!requireSucess) { applyAgvTask(mode); } break; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/ItemProtocol.java index 4dfd566b4..ffb4cde15 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/green_foil_machine_button/ItemProtocol.java @@ -71,17 +71,17 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "251")); - list.add(new ItemDto(item_mode, "工作模式", "7990")); - list.add(new ItemDto(item_move, "光电信号", "550")); - list.add(new ItemDto(item_action, "取放信号", "450")); - list.add(new ItemDto(item_error, "故障", "8055")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB5.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB5.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB5.B2")); + list.add(new ItemDto(item_action, "取放信号", "DB5.B3")); + list.add(new ItemDto(item_error, "故障", "DB5.B4")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "下发命令", "40226")); + list.add(new ItemDto(item_to_command, "下发命令", "DB6.W0")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/HongXiangStationDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/HongXiangStationDefination.java index 96587d5cc..e1328e807 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/HongXiangStationDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_conveyor/HongXiangStationDefination.java @@ -43,7 +43,7 @@ public class HongXiangStationDefination implements OpcDeviceDriverDefination { @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.conveyor); + types.add(DeviceType.station); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/HongXiangConveyorDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/HongXiangConveyorDefination.java index 0615adcd8..eece99cad 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/HongXiangConveyorDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/hongxiang_device/HongXiangConveyorDefination.java @@ -43,7 +43,7 @@ public class HongXiangConveyorDefination implements OpcDeviceDriverDefination { @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.conveyor); + types.add(DeviceType.station); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/inflatable_shaft_library/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/inflatable_shaft_library/ItemProtocol.java index 30d6e1975..216ec59ab 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/inflatable_shaft_library/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/inflatable_shaft_library/ItemProtocol.java @@ -78,19 +78,19 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); - list.add(new ItemDto(item_mode, "工作模式", "DB1.B1")); - list.add(new ItemDto(item_move, "光电信号", "DB1.B2")); - list.add(new ItemDto(item_action, "动作信号", "DB1.B3")); - list.add(new ItemDto(item_qty, "数量", "DB1.B4")); - list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); - list.add(new ItemDto(item_type, "类型", "DB1.B6")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB7.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB7.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB7.B2")); + list.add(new ItemDto(item_action, "动作信号", "DB7.B3")); + list.add(new ItemDto(item_qty, "数量", "DB7.B4")); + list.add(new ItemDto(item_error, "报警信号", "DB7.B5")); + list.add(new ItemDto(item_type, "类型", "DB7.B6")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList<>(); - list.add(new ItemDto(item_to_command, "下发命令", "DB2.W0")); + list.add(new ItemDto(item_to_command, "下发命令", "DB8.W0")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDefination.java index 51c5d15ee..241c7b961 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/oven_manipulator/OvenGantryManipulatorDefination.java @@ -45,7 +45,7 @@ public class OvenGantryManipulatorDefination implements OpcDeviceDriverDefinatio @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.station); + types.add(DeviceType.robot); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/ItemProtocol.java index 09015c4b6..87e2188a2 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/ItemProtocol.java @@ -151,30 +151,30 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); - list.add(new ItemDto(item_mode, "工作模式", "DB1.B1")); - list.add(new ItemDto(item_move, "光电信号", "DB1.B2")); - list.add(new ItemDto(item_action, "动作信号", "DB1.B3")); - list.add(new ItemDto(item_barcode, "气胀轴条码", "DB1.B4")); - list.add(new ItemDto(item_weight1, "纸管1重量", "DB1.B4")); - list.add(new ItemDto(item_material1, "纸管1规格", "DB1.B4")); - list.add(new ItemDto(item_weight2, "纸管2重量", "DB1.B4")); - list.add(new ItemDto(item_material2, "纸管2规格", "DB1.B4")); - list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); - list.add(new ItemDto(item_task, "任务号", "DB1.D6")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB9.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB9.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB9.B2")); + list.add(new ItemDto(item_action, "动作信号", "DB9.B3")); + list.add(new ItemDto(item_barcode, "气胀轴条码", "DB9.B4")); + list.add(new ItemDto(item_weight1, "纸管1重量", "DB9.B5")); + list.add(new ItemDto(item_material1, "纸管1规格", "DB9.B6")); + list.add(new ItemDto(item_weight2, "纸管2重量", "DB9.B7")); + list.add(new ItemDto(item_material2, "纸管2规格", "DB9.B8")); + list.add(new ItemDto(item_error, "报警信号", "DB9.B9")); + list.add(new ItemDto(item_task, "任务号", "DB9.D10")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "下发命令", "DB2.W0")); - list.add(new ItemDto(item_to_material1, "纸管1规格", "DB2.W2")); - list.add(new ItemDto(item_to_material2, "纸管2规格", "DB2.W4")); - list.add(new ItemDto(item_to_qty, "纸管数量", "DB2.W6")); - list.add(new ItemDto(item_to_qzz_type, "气胀轴类型", "DB2.W8")); - list.add(new ItemDto(item_to_is_changeShaft, "是否换轴", "DB2.W")); - list.add(new ItemDto(item_to_location, "存储位置", "DB2.W10")); - list.add(new ItemDto(item_to_size, "尺寸", "DB2.W12")); + list.add(new ItemDto(item_to_command, "下发命令", "DB10.W0")); + list.add(new ItemDto(item_to_material1, "纸管1规格", "DB10.W2")); + list.add(new ItemDto(item_to_material2, "纸管2规格", "DB10.W4")); + list.add(new ItemDto(item_to_qty, "纸管数量", "DB10.W6")); + list.add(new ItemDto(item_to_qzz_type, "气胀轴类型", "DB10.W8")); + list.add(new ItemDto(item_to_is_changeShaft, "是否换轴", "DB10.W10")); + list.add(new ItemDto(item_to_location, "存储位置", "DB10.W12")); + list.add(new ItemDto(item_to_size, "尺寸", "DB10.W14")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDefination.java index d04b51944..7f9d77409 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDefination.java @@ -43,7 +43,7 @@ public class PlugPullDeviceSiteDefination implements OpcDeviceDriverDefination { @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.conveyor); + types.add(DeviceType.station); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java index 04ccab4b7..36b906812 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/plug_pull_device_site/PlugPullDeviceSiteDeviceDriver.java @@ -13,6 +13,10 @@ import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.RouteableDeviceDriver; import org.nl.acs.device_driver.driver.AbstractOpcDeviceDriver; import org.nl.acs.device_driver.driver.ExecutableDeviceDriver; +import org.nl.acs.ext.wms.data.ApplyManipulatorActionRequest; +import org.nl.acs.ext.wms.data.ApplyManipulatorActionResponse; +import org.nl.acs.ext.wms.data.ApplyPlugPullSitResponse; +import org.nl.acs.ext.wms.data.ApplyPlugPullSiteRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.ext.wms.service.impl.AcsToWmsServiceImpl; import org.nl.acs.instruction.domain.Instruction; @@ -324,29 +328,88 @@ public class PlugPullDeviceSiteDeviceDriver extends AbstractOpcDeviceDriver impl * 申请套管 */ private synchronized void apply_casing(int mode) { - this.writeSignal(mode); - logServer.deviceExecuteLog(this.device_code, "", "", "申请套管,返回参数:" + "applyResponse"); - message = "申请套管成功"; + ApplyPlugPullSiteRequest applyPlugPullSiteRequest = new ApplyPlugPullSiteRequest(); + ApplyPlugPullSitResponse applyPlugPullSitResponse; + Instruction inst1 = instructionService.findByCode(String.valueOf(task)); + String task_code1 = inst1.getTask_code(); + applyPlugPullSiteRequest.setDevice_code(device_code); + applyPlugPullSiteRequest.setTask_code(task_code1); + applyPlugPullSiteRequest.setType("1"); + applyPlugPullSitResponse = acsToWmsService.applyPlugPullSiteRequest(applyPlugPullSiteRequest); + if (applyPlugPullSitResponse.getCode() == 200) { + this.writeSignal(mode); + logServer.deviceExecuteLog(this.device_code, "", "", "申请套管,返回参数:" + applyPlugPullSitResponse); + message = "申请套管成功"; + } else { + message = applyPlugPullSitResponse.getMessage(); + Map map = new LinkedHashMap<>(); + map.put("to_command", 99); + this.writing(map); + requireSucess = true; + message = "申请套管失败"; + logServer.deviceExecuteLog(this.device_code, "", "", "申请套管反馈失败,返回参数:" + applyPlugPullSitResponse); + } } /** * 套管完成 */ private synchronized void bushingSucess(int mode) { - this.writeSignal(mode); - logServer.deviceExecuteLog(this.device_code, "", "", "反馈套管完成,返回参数:" + "applyResponse"); - message = "套管完成成功"; + ApplyPlugPullSiteRequest applyPlugPullSiteRequest = new ApplyPlugPullSiteRequest(); + ApplyPlugPullSitResponse applyPlugPullSitResponse; + Instruction inst1 = instructionService.findByCode(String.valueOf(task)); + String task_code1 = inst1.getTask_code(); + applyPlugPullSiteRequest.setDevice_code(device_code); + applyPlugPullSiteRequest.setTask_code(task_code1); + applyPlugPullSiteRequest.setType("2"); + applyPlugPullSitResponse = acsToWmsService.applyPlugPullSiteRequest(applyPlugPullSiteRequest); + if (applyPlugPullSitResponse.getCode() == 200) { + this.writeSignal(mode); + logServer.deviceExecuteLog(this.device_code, "", "", "反馈套管完成,返回参数:" + applyPlugPullSitResponse); + message = "套管完成成功"; + } else { + message = applyPlugPullSitResponse.getMessage(); + Map map = new LinkedHashMap<>(); + map.put("to_command", 99); + this.writing(map); + requireSucess = true; + message = "申请套管失败"; + logServer.deviceExecuteLog(this.device_code, "", "", "申请套管反馈失败,返回参数:" + applyPlugPullSitResponse); + } + } /** * 拔轴完成 */ private synchronized void pullShaftSucess(int mode) { - this.writeSignal(mode); - logServer.deviceExecuteLog(this.device_code, "", "", "申请拔轴,返回参数:" + "applyResponse"); - message = "拔轴完成成功"; + ApplyPlugPullSiteRequest applyPlugPullSiteRequest = new ApplyPlugPullSiteRequest(); + ApplyPlugPullSitResponse applyPlugPullSitResponse; + Instruction inst1 = instructionService.findByCode(String.valueOf(task)); + String task_code1 = inst1.getTask_code(); + applyPlugPullSiteRequest.setDevice_code(device_code); + applyPlugPullSiteRequest.setTask_code(task_code1); + applyPlugPullSiteRequest.setType("3"); + applyPlugPullSitResponse = acsToWmsService.applyPlugPullSiteRequest(applyPlugPullSiteRequest); + if (applyPlugPullSitResponse.getCode() == 200) { + this.writeSignal(mode); + logServer.deviceExecuteLog(this.device_code, "", "", "申请拔轴,返回参数:" + applyPlugPullSitResponse); + message = "拔轴完成成功"; + } else { + message = applyPlugPullSitResponse.getMessage(); + Map map = new LinkedHashMap<>(); + map.put("to_command", 99); + this.writing(map); + requireSucess = true; + message = "申请拔轴失败"; + logServer.deviceExecuteLog(this.device_code, "", "", "申请拔轴反馈失败,返回参数:" + applyPlugPullSitResponse); + } } + /** + * 下发电气信号 + * @param mode + */ public void writeSignal(int mode){ Map map = new LinkedHashMap<>(); map.put("to_command", mode); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/ItemProtocol.java index 207c653cd..9c800791e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/ItemProtocol.java @@ -180,31 +180,31 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList<>(); - list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); - list.add(new ItemDto(item_mode, "工作模式", "DB1.B1")); - list.add(new ItemDto(item_move, "光电信号", "DB1.B2")); - list.add(new ItemDto(item_action, "动作信号", "DB1.B3")); - list.add(new ItemDto(item_walk_y, "行走列", "DB1.B4")); - list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); - list.add(new ItemDto(item_task, "任务号", "DB1.D6")); - list.add(new ItemDto(item_x_position, "x坐标", "DB1.REAL10")); - list.add(new ItemDto(item_y_position, "y坐标", "DB1.REAL14")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB11.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB11.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB11.B2")); + list.add(new ItemDto(item_action, "动作信号", "DB11.B3")); + list.add(new ItemDto(item_walk_y, "行走列", "DB11.B4")); + list.add(new ItemDto(item_error, "报警信号", "DB11.B5")); + list.add(new ItemDto(item_task, "任务号", "DB11.D6")); + list.add(new ItemDto(item_x_position, "x坐标", "DB11.REAL10")); + list.add(new ItemDto(item_y_position, "y坐标", "DB11.REAL14")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList<>(); - list.add(new ItemDto(item_to_command, "下发命令", "DB2.W0")); - list.add(new ItemDto(item_to_onset, "下发起始站", "DB2.W2")); - list.add(new ItemDto(item_to_target, "下发目标站", "DB2.W4")); - list.add(new ItemDto(item_to_task, "下发任务号", "DB2.D6")); - list.add(new ItemDto(item_to_pull, "是否拔轴", "DB2.W8")); - list.add(new ItemDto(item_to_sleeve, "是否套轴", "DB2.W10")); - list.add(new ItemDto(item_to_size, "尺寸", "DB2.W12")); - list.add(new ItemDto(item_to_version, "代数", "DB2.W14")); - list.add(new ItemDto(item_to_qty, "子卷数量", "DB2.W16")); - list.add(new ItemDto(item_to_length1, "子卷1长度", "DB2.W18")); - list.add(new ItemDto(item_to_length2, "子卷2长度", "DB2.W20")); + list.add(new ItemDto(item_to_command, "下发命令", "DB12.W0")); + list.add(new ItemDto(item_to_onset, "下发起始站", "DB12.W2")); + list.add(new ItemDto(item_to_target, "下发目标站", "DB12.W4")); + list.add(new ItemDto(item_to_task, "下发任务号", "DB12.D6")); + list.add(new ItemDto(item_to_pull, "是否拔轴", "DB12.W8")); + list.add(new ItemDto(item_to_sleeve, "是否套轴", "DB12.W10")); + list.add(new ItemDto(item_to_size, "尺寸", "DB12.W12")); + list.add(new ItemDto(item_to_version, "代数", "DB12.W14")); + list.add(new ItemDto(item_to_qty, "子卷数量", "DB12.W16")); + list.add(new ItemDto(item_to_length1, "子卷1长度", "DB12.W18")); + list.add(new ItemDto(item_to_length2, "子卷2长度", "DB12.W20")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDefination.java index aad3c1d08..fd8fd33c4 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_head_manipulator/PullHeadManipulatorDefination.java @@ -41,7 +41,7 @@ public class PullHeadManipulatorDefination implements OpcDeviceDriverDefination @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.station); + types.add(DeviceType.robot); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/ItemProtocol.java index fcd35a5cd..b900f3ac5 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/ItemProtocol.java @@ -143,25 +143,25 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList<>(); - list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); - list.add(new ItemDto(item_mode, "工作模式", "DB1.B1")); - list.add(new ItemDto(item_move, "光电信号", "DB1.B2")); - list.add(new ItemDto(item_action, "动作信号", "DB1.B3")); - list.add(new ItemDto(item_walk_y, "行走列", "DB1.B4")); - list.add(new ItemDto(item_error, "报警信号", "DB1.B5")); - list.add(new ItemDto(item_task, "任务号", "DB1.D6")); - list.add(new ItemDto(item_x_position, "x坐标", "DB1.REAL10")); - list.add(new ItemDto(item_y_position, "y坐标", "DB1.REAL14")); - list.add(new ItemDto(item_weight, "重量", "DB1.REAL16")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB13.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB13.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB13.B2")); + list.add(new ItemDto(item_action, "动作信号", "DB13.B3")); + list.add(new ItemDto(item_walk_y, "行走列", "DB13.B4")); + list.add(new ItemDto(item_error, "报警信号", "DB13.B5")); + list.add(new ItemDto(item_task, "任务号", "DB13.D6")); + list.add(new ItemDto(item_x_position, "x坐标", "DB13.REAL10")); + list.add(new ItemDto(item_y_position, "y坐标", "DB13.REAL14")); + list.add(new ItemDto(item_weight, "重量", "DB13.REAL16")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList<>(); - list.add(new ItemDto(item_to_command, "下发命令", "DB2.W0")); - list.add(new ItemDto(item_to_onset, "下发起始站", "DB2.W2")); - list.add(new ItemDto(item_to_target, "下发目标站", "DB2.W4")); - list.add(new ItemDto(item_to_task, "下发任务号", "DB2.D6")); + list.add(new ItemDto(item_to_command, "下发命令", "DB14.W0")); + list.add(new ItemDto(item_to_onset, "下发起始站", "DB14.W2")); + list.add(new ItemDto(item_to_target, "下发目标站", "DB14.W4")); + list.add(new ItemDto(item_to_task, "下发任务号", "DB14.D6")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDefination.java index 936d8a5f7..32acdd093 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/pull_tail_manipulator/PullTailManipulatorDefination.java @@ -41,7 +41,7 @@ public class PullTailManipulatorDefination implements OpcDeviceDriverDefination @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.station); + types.add(DeviceType.robot); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/ItemProtocol.java index 44a78f0f1..c2bed26ee 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/ItemProtocol.java @@ -12,57 +12,52 @@ import java.util.List; @Data public class ItemProtocol { - /** + /** * 心跳 */ public static String item_heartbeat = "heartbeat"; - /** + /** * 工作模式 */ public static String item_mode = "mode"; - //设备状态 - public static String item_status = "status"; //前工位光电信号 public static String item_move1 = "move1"; //后工位光电信号 public static String item_move2 = "move2"; - //前工位动作信号 - public static String item_action1 = "action1"; - //后工位动作信号 - public static String item_action2 = "action2"; + //动作信号 + public static String item_action = "action"; /** * 行走列 */ public static String item_walk_y = "walk_y"; - /** + //x坐标 + public static String item_x_position = "x_position"; + //动作信号 + public static String item_y_position = "y_position"; + /** * 报警 */ public static String item_error = "error"; - //任务类型 - public static String item_type = "type"; - //前工位任务号 - public static String item_task1 = "task1"; - //后工位任务号 - public static String item_task2 = "task2"; + //任务号 + public static String item_task = "task"; - //前工位下发命令 - public static String item_to_command1 = "to_command1"; - //前工位下发起始站 + + //下发命令 + public static String item_to_command = "to_command"; + //下发起始站 public static String item_to_onset1 = "to_onset1"; - //前工位下发目标站 + //下发目标站 public static String item_to_target1 = "to_target1"; - //前工位下发任务号 - public static String item_to_task1 = "to_task1"; - //后工位下发命令 - public static String item_to_command2 = "to_command2"; - //后工位下发起始站 + //下发任务号 + public static String item_to_task = "to_task"; + //下发起始站2 public static String item_to_onset2 = "to_onset2"; - //后工位下发目标站 + //下发目标站2 public static String item_to_target2 = "to_target2"; - //后工位下发任务号 - public static String item_to_task2 = "to_task2"; - //任务类型 1前工位 2后工位 3双工位 + //下发空轴位 + public static String item_to_empty_shaft_site = "to_empty_shaft_site"; + //下发任务类型 public static String item_to_type = "to_type"; @@ -80,10 +75,6 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_mode); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } - public int getError() { return this.getOpcIntegerValue(item_error); } @@ -96,28 +87,24 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_move2); } - public int getAction1() { - return this.getOpcIntegerValue(item_action1); - } - - public int getAction2() { - return this.getOpcIntegerValue(item_action2); + public int getAction() { + return this.getOpcIntegerValue(item_action); } public int getWalk_y() { return this.getOpcIntegerValue(item_walk_y); } - public int getType() { - return this.getOpcIntegerValue(item_type); + public float getX_position() { + return this.getOpcFloatValue(item_x_position); } - public int getTask1() { - return this.getOpcIntegerValue(item_task1); + public float getY_position() { + return this.getOpcFloatValue(item_y_position); } - public int getTask2() { - return this.getOpcIntegerValue(item_task2); + public int getTask() { + return this.getOpcIntegerValue(item_task); } @@ -143,6 +130,19 @@ public class ItemProtocol { } + public float getOpcFloatValue(String protocol) { + Float value = this.driver.getDoubleValue(protocol); + if (value == null) { + // log.error(this.getDriver().getDeviceCode() + ":protocol " + protocol + " 信号同步异常!"); + setIsonline(false); + } else { + setIsonline(true); + return value; + } + return 0; + + } + public String getOpcStringValue(String protocol) { String value = this.driver.getStringValue(protocol); if (StrUtil.isEmpty(value)) { @@ -155,32 +155,29 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "DB1.B0")); - list.add(new ItemDto(item_mode, "工作模式", "DB1.B1")); - list.add(new ItemDto(item_status, "设备状态", "DB1.B2")); - list.add(new ItemDto(item_move1, "前工位光电信号", "DB1.B3")); - list.add(new ItemDto(item_move2, "后工位光电信号", "DB1.B4")); - list.add(new ItemDto(item_action1, "前工位动作信号", "DB1.B5")); - list.add(new ItemDto(item_action2, "后工位动作信号", "DB2.B6")); - list.add(new ItemDto(item_walk_y, "行走列", "DB1.B7")); - list.add(new ItemDto(item_error, "报警信号", "DB1.B8")); - list.add(new ItemDto(item_type, "任务类型", "DB1.B9")); - list.add(new ItemDto(item_task1, "前工位任务号", "DB1.D10")); - list.add(new ItemDto(item_task2, "后工位任务号", "DB1.D14")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB15.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB15.B1")); + list.add(new ItemDto(item_move1, "前工位光电信号", "DB15.B2")); + list.add(new ItemDto(item_move2, "后工位光电信号", "DB15.B3")); + list.add(new ItemDto(item_action, "动作信号", "DB15.B4")); + list.add(new ItemDto(item_walk_y, "行走列", "DB15.B5")); + list.add(new ItemDto(item_error, "报警信号", "DB15.B6")); + list.add(new ItemDto(item_x_position, "x坐标", "DB15.REAL10")); + list.add(new ItemDto(item_y_position, "y坐标", "DB15.REAL14")); + list.add(new ItemDto(item_y_position, "y坐标", "DB15.B7")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command1, "前工位下发命令", "DB2.W0")); - list.add(new ItemDto(item_to_onset1, "前工位下发起始站", "DB2.W2")); - list.add(new ItemDto(item_to_target1, "前工位下发目标站", "DB2.W4")); - list.add(new ItemDto(item_to_task1, "前工位下发任务号", "DB2.D6")); - list.add(new ItemDto(item_to_command2, "后工位下发命令", "DB2.W10")); - list.add(new ItemDto(item_to_onset2, "后工位下发起始站", "DB2.W12")); - list.add(new ItemDto(item_to_target2, "后工位下发目标站", "DB2.W14")); - list.add(new ItemDto(item_to_task2, "后工位下发任务号", "DB2.D16")); - list.add(new ItemDto(item_to_type, "下发任务类型", "DB2.W20")); + list.add(new ItemDto(item_to_command, "下发命令", "DB16.W0")); + list.add(new ItemDto(item_to_onset1, "下发起始站1", "DB16.W2")); + list.add(new ItemDto(item_to_target1, "下发目标站1", "DB16.W4")); + list.add(new ItemDto(item_to_task, "下发任务号", "DB16.D6")); + list.add(new ItemDto(item_to_onset2, "下发起始站2", "DB16.W12")); + list.add(new ItemDto(item_to_target2, "下发目标站2", "DB16.W14")); + list.add(new ItemDto(item_to_empty_shaft_site, "下发空轴位", "DB16.W16")); + list.add(new ItemDto(item_to_type, "下发任务类型", "DB16.W20")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDefination.java index e61a92d09..4256c8608 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDefination.java @@ -44,7 +44,7 @@ public class SlitTwoManipulatorDefination implements OpcDeviceDriverDefination { @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.station); + types.add(DeviceType.robot); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index acc05e971..00f37490d 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -24,7 +24,6 @@ import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.DeviceAppService; import org.nl.acs.opc.DeviceAppServiceImpl; import org.nl.acs.route.service.RouteLineService; -import org.nl.acs.task.enums.TaskStatusEnum; import org.nl.acs.task.service.TaskService; import org.nl.acs.task.service.dto.TaskDto; import org.nl.common.exception.BadRequestException; @@ -60,24 +59,31 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //分切行架机械手是否禁用 0否 1是 private int is_disable = 0; + int heartbeat = 0; + int last_heartbeat = 0; + /** * 工作模式 */ int mode = 0; int last_mode = 0; - //设备状态 - int status = 0; - int last_status = 0; + //任务号 + int task = 0; + int last_task = 0; //前后工位光电信号 int move1 = 0; int last_move1 = 0; int move2 = 0; int last_move2 = 0; - //前后工位动作信号 - int action1 = 0; - int last_action1 = 0; - int action2 = 0; - int last_action2 = 0; + //动作信号 + int action = 0; + int last_action = 0; + //x坐标 + float x_position = 0; + float last_x_position = 0; + //y坐标 + float y_position = 0; + float last_y_position = 0; /** * 报警 */ @@ -88,14 +94,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl */ int walk_y = 0; int last_walk_y = 0; - //任务类型 - int type = 0; - int last_type = 0; - //前后工位任务号 - int task1 = 0; - int last_task1 = 0; - int task2 = 0; - int last_task2 = 0; Boolean isonline = true; @@ -112,16 +110,9 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //暂定 0就绪 1请求取货 2取货完成 3请求放货 4放货完成 5取货完成离开 6放货完成离开 7请求进入区域 8请求离开区域 int flag; + //1普通任务按点执行 2.下2满轴上2空轴 3.下1满轴上2空轴 4.下2满轴上1空轴 + String truss_type; - //前工位任务执行当前步骤 - //0未执行 1更改指令状态 2下发电气任务信息 3前工位允许取货 4前工位取货完成 5前工位允许放货 6放货完成 - int now_steps_type1 = 0; - //后工位当前执行步骤 - //0未执行 1更改指令状态 2下发电气任务信息 3后工位允许取货4后工位取货完成 5后工位允许放货 6放货完成 - int now_steps_type2 = 0; - //双工位任务当前执行步骤 - //0未执行 1更改指令状态 2下发电气任务信息 3后工位允许取货 4后工位取货完成 5前工位允许取货 6前工位取货完成 7后工位允许放货 8后工位放货完成 9前工位允许放货 10前工位放货完成 - int now_steps_type3 = 0; String device_code; @@ -139,6 +130,13 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl String notCreateInstMessage = ""; String feedMessage = ""; + //当前指令 + Instruction inst = null; + + List getDeviceCodeList = null; + + List putDeviceCodeList = null; + @Override public Device getDevice() { @@ -152,69 +150,17 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl try { device_code = this.getDeviceCode(); mode = this.itemProtocol.getMode(); - status = this.itemProtocol.getStatus(); move1 = this.itemProtocol.getMove1(); move2 = this.itemProtocol.getMove2(); - action1 = this.itemProtocol.getAction1(); - action2 = this.itemProtocol.getAction2(); + action = this.itemProtocol.getAction(); walk_y = this.itemProtocol.getWalk_y(); error = this.itemProtocol.getError(); - type = this.itemProtocol.getType(); - task1 = this.itemProtocol.getTask1(); - task2 = this.itemProtocol.getTask2(); + task = this.itemProtocol.getTask(); + x_position = this.itemProtocol.getX_position(); + y_position = this.itemProtocol.getY_position(); - if (mode != last_mode) { - if (mode == 2) { - logServer.deviceExecuteLog(device_code, "", "", "开始请求标记复位`此时请求标记值为:" + requireSucess); - requireSucess = false; - logServer.deviceExecuteLog(device_code, "", "", "请求标记复位成功`此时请求标记值为:" + requireSucess); - } - logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); - } - if (type != last_type) { - logServer.deviceItemValue(this.device_code, "type", String.valueOf(type)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号type:" + last_type + "->" + type); - } - if (error != last_error) { - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); - } - if (status != last_status) { - logServer.deviceItemValue(this.device_code, "status", String.valueOf(status)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); - } - if (move1 != last_move1) { - logServer.deviceItemValue(this.device_code, "move1", String.valueOf(move1)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move1:" + last_move1 + "->" + move1); - } - if (move2 != last_move2) { - logServer.deviceItemValue(this.device_code, "move2", String.valueOf(move2)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号move2:" + last_move2 + "->" + move2); - } - if (action1 != last_action1) { - logServer.deviceItemValue(this.device_code, "action1", String.valueOf(action1)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号action1:" + last_action1 + "->" + action1); - } - if (action2 != last_action2) { - logServer.deviceItemValue(this.device_code, "action2", String.valueOf(action2)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号action2:" + last_action2 + "->" + action2); - } - if (walk_y != last_walk_y) { - logServer.deviceItemValue(this.device_code, "walk_y", String.valueOf(walk_y)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号walk_y:" + last_walk_y + "->" + walk_y); - } - if (task1 != last_task1) { - logServer.deviceItemValue(this.device_code, "task1", String.valueOf(task1)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号task1:" + last_task1 + "->" + task1); - } - if (task2 != last_task2) { - logServer.deviceItemValue(this.device_code, "task2", String.valueOf(task2)); - logServer.deviceExecuteLog(this.device_code, "", "", "信号task2:" + last_task2 + "->" + task2); - } - - if (task1 > 0 && task2 > 0 && !requireSucess) { - update_instruction_status1(); + if (task > 0 && !requireSucess) { + update_instruction_status(); } @@ -247,34 +193,14 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl return; case 2: //申请任务 - if (move1 == 0 && move2 == 0 && action1 == 0 && action2 == 0 && task1 == 0 && task2 == 0 && !requireSucess) { - //获取关联设备驱动信息 判断关联设备是否禁用 - String link_device_code = String.valueOf(this.getDevice().getExtraValue().get("link_device_code")); - Device device = deviceAppservice.findDeviceByCode(link_device_code); - SlitTwoManipulatorDeviceDriver slitTwoManipulatorDeviceDriver; - if (device.getDeviceDriver() instanceof SlitTwoManipulatorDeviceDriver) { - slitTwoManipulatorDeviceDriver = (SlitTwoManipulatorDeviceDriver) device.getDeviceDriver(); - //如果禁用 - if (slitTwoManipulatorDeviceDriver.getIs_disable() == 1) { - boolean flag = false; - try { - //就去走关联设备异常取放货工位的任务 任务生成成功返回true 就不会走下面正常生成任务的逻辑 - flag = instruction_require2(); - } catch (Exception e) { - flag = false; - } - if (flag) { - break; - } - } - } - //没有生成异常取放货工位的任务 就生成正常关联取放货工位的任务 + if (move1 == 0 && move2 == 0 && task == 0 && !requireSucess) { + //生成正常关联取放货工位的任务 boolean res = applyTask(); if (res) { feedMessage = ""; notCreateInstMessage = ""; notCreateTaskMessage = ""; - logServer.deviceExecuteLog(device_code, "", String.valueOf(task1), "move2:" + move2 + ",action2:" + action2 + ",move1:" + move1 + ",action1:" + action1 + ",requireSucess:" + requireSucess); + logServer.deviceExecuteLog(device_code, "", String.valueOf(task), "move2:" + move2 + ",action:" + action + ",move1:" + move1 + ",requireSucess:" + requireSucess); } } else { // if (!requireSucess) { @@ -291,17 +217,11 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl if (move2 != 0) { remark = remark + "后工位有货(move2 != 0),"; } - if (action1 != 0) { - remark = remark + "前工位动作信号不为0(action1 != 0),"; + if (action != 0) { + remark = remark + "动作信号不为0(action != 0),"; } - if (action2 != 0) { - remark = remark + "后工位动作信号不为0(action2 != 0),"; - } - if (task1 != 0) { - remark = remark + "前工位存在任务(task1 != 0),"; - } - if (task2 != 0) { - remark = remark + "后工位存在任务(task2 != 0),"; + if (task != 0) { + remark = remark + "存在任务(task != 0),"; } this.setNotCreateTaskMessage(remark); } @@ -316,119 +236,72 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl } last_mode = mode; last_error = error; - last_status = status; last_move1 = move1; last_move2 = move2; - last_action1 = action1; - last_action2 = action2; + last_action = action; last_walk_y = walk_y; - last_type = type; - last_task1 = task1; - last_task2 = task2; + last_task = task; + last_x_position = x_position; + last_y_position = y_position; } /** - * 更新分切机下双卷指令状态 + * 更新指令状态 */ - public synchronized void update_instruction_status1() throws Exception { + public synchronized void update_instruction_status() throws Exception { Date date = new Date(); if (date.getTime() - this.instruction_update_time.getTime() < (long) this.instruction_update_time_out) { log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_update_time_out); } else { this.instruction_update_time = date; - //单任务 前工位任务更新指令状态 - if (task1 > 0 && type == 1) { - Instruction inst1 = instructionService.findByCodeFromCache(String.valueOf(task1)); + //更改任务状态 + if (task > 0) { + //inst_message + Instruction inst1 = checkInst(); if (inst1 != null) { if (StrUtil.equals(inst1.getInstruction_status(), "0")) { - //当前执行步骤为更新任务状态 inst1.setInstruction_status("1"); - inst1.setExecute_device_code(this.getDevice_code()); + inst1.setExecute_device_code(this.device_code); instructionService.update(inst1); } } } -// if (mode = 3 && move1 = 0 && move2 = 0 && action1 = 5 && action2 = 5) { -// -// } + //任务完成 + if (mode == 3 && move1 == 0 && move2 == 0 && action == 9) { + try { + finish_instruction(inst); + Map map = new LinkedHashMap<>(); + map.put("to_command", 9); + this.writing(map); + this.setRequireSucess(true); + } catch (Exception e) { + e.printStackTrace(); + } + feedMessage = "任务完成"; + } else { + feedMessage = "任务完成后未反馈原因-->"; + if (mode != 3) { + feedMessage += "行架工作模式不为运行中(mode != 3),"; + } + if (action != 9) { + feedMessage += "动作信号不是任务完成(action != 9),"; + } + if (move1 != 0) { + feedMessage += "前工位光电信号不应该为有货状态(move2 != 0),"; + } + if (move2 != 0) { + feedMessage += "后工位光电信号不应该为有货状态(move2 != 0),"; + } + if (task == 0) { + feedMessage += "没有任务号(task == 0),"; + } + } } } - //关联设备异常申请任务 - public synchronized boolean instruction_require2() { - Boolean flag = false; - Date date = new Date(); - if (date.getTime() - this.instruction_head_time.getTime() < (long) this.instruction_require_time_out) { - log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_head_time); - return false; - } else { - this.instruction_head_time = date; - //前工位取货关联设备 - List getDeviceCodeList = this.getExtraDeviceCodes("error_head_get_device_code"); - //后工位取货关联设备 - List backGetDeviceCodeList = this.getExtraDeviceCodes("error_back_get_device_code"); - TaskDto taskDto = null; - //遍历前工位取货点设备 - for (String getDeviceCode : getDeviceCodeList) { - //去任务表中查询是否有前工位关联设备的重新创建指令的任务 - List taskDtos = taskserver.queryTaskByStartAndIntStatus(getDeviceCode); - //如果有 - if (ObjectUtil.isNotEmpty(taskDtos)) { - //按照优先级排序 优先级相等按照创建时间排序 - taskDtos = this.sortTask(taskDtos); - taskDto = taskDtos.get(0); - flag = this.executeBusiness(taskDto, getDeviceCodeList, backGetDeviceCodeList); - return flag; - } else { - //去任务表中查询是否有前工位关联设备的就绪状态下的任务 - taskDtos = taskserver.queryTaskByStartDeviceCode(getDeviceCode); - if (ObjectUtil.isNotEmpty(taskDtos)) { - //按照优先级排序 优先级相等按照创建时间排序 - taskDtos = this.sortTask(taskDtos); - taskDto = taskDtos.get(0); - break; - } - } - } - //如果任务表中起点1或起点2中 无前工位取货点关联设备 - //就去查询任务表中查找起点1或起点2为后工位取货点关联设备的任务 - if (ObjectUtil.isEmpty(taskDto)) { - for (String backGetDeviceCode : backGetDeviceCodeList) { - //去任务表中查询是否有前工位关联设备的重新创建指令的任务 - List taskDtos = taskserver.queryTaskByNextAndIntStatus(backGetDeviceCode); - if (ObjectUtil.isNotEmpty(taskDtos)) { - //按照优先级排序 优先级相等按照创建时间排序 - taskDtos = this.sortTask(taskDtos); - taskDto = taskDtos.get(0); - flag = this.executeBusiness(taskDto, getDeviceCodeList, backGetDeviceCodeList); - return flag; - } else { - //去任务表中查询是否有后工位关联设备的就绪状态下的任务 - taskDtos = taskserver.queryTaskByBackDeviceCode(backGetDeviceCode); - if (ObjectUtil.isNotEmpty(taskDtos)) { - //按照优先级排序 优先级相等按照创建时间排序 - taskDtos = this.sortTask(taskDtos); - taskDto = taskDtos.get(0); - break; - } - } - } - } - if (!ObjectUtil.isEmpty(taskDto)) { - flag = this.executeReadyBusiness(taskDto, getDeviceCodeList, backGetDeviceCodeList); - if (flag) { - notCreateInstMessage = ""; - } - } else { - notCreateTaskMessage = ""; - notCreateInstMessage = "未找到关联设备禁用的任务!"; - } - } - return flag; - } //正常申请任务 public synchronized boolean applyTask() { @@ -439,87 +312,56 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl return false; } else { this.instruction_head_time = date; - //前工位取货关联设备 - List getDeviceCodeList = this.getExtraDeviceCodes("head_get_device_code"); - //后工位取货关联设备 - List backGetDeviceCodeList = this.getExtraDeviceCodes("back_get_device_code"); - TaskDto taskDto = null; - //遍历前工位取货点设备 - for (String getDeviceCode : getDeviceCodeList) { - //去任务表中查询是否有前工位关联设备的重新创建指令的任务 - List taskDtos = taskserver.queryTaskByStartAndIntStatus(getDeviceCode); - //如果有 + //抓取工位 + if (ObjectUtil.isEmpty(getDeviceCodeList)) { + getDeviceCodeList = this.getExtraDeviceCodes("get_device_code"); + } + //放货工位 + if (ObjectUtil.isEmpty(putDeviceCodeList)) { + putDeviceCodeList = this.getExtraDeviceCodes("put_device_code"); + } + TaskDto task = null; + for (int i = 0; i < getDeviceCodeList.size(); i++) { + String startDeviceCode = getDeviceCodeList.get(i); + List taskDtos = taskserver.queryTaskByDeviceCodeAndStatus(startDeviceCode); if (ObjectUtil.isNotEmpty(taskDtos)) { //按照优先级排序 优先级相等按照创建时间排序 taskDtos = this.sortTask(taskDtos); - taskDto = taskDtos.get(0); - //分切机出双卷任务 - if (StrUtil.equals(taskDto.getTruss_type(), "1")) { - inst_require1(taskDto, getDeviceCodeList, backGetDeviceCodeList); + TaskDto taskDto = taskDtos.get(0); + truss_type = taskDto.getTruss_type(); + // 9 行架任务 + if (!StrUtil.equals(taskDto.getTask_type(), "9")) { + taskDto = null; + continue; } - //分切机出上卷-行架取单轴 - else if (StrUtil.equals(taskDto.getTruss_type(), "2")) { -// inst_require2(taskDto, getDeviceCodeList, backGetDeviceCodeList); - } - //分切机出下卷-行架取单轴 - else if (StrUtil.equals(taskDto.getTruss_type(), "3")) { -// inst_require3(taskDto, getDeviceCodeList, backGetDeviceCodeList); - } - flag = this.executeBusiness(taskDto, getDeviceCodeList, backGetDeviceCodeList); - return flag; + flag = this.executeReadyInst(taskDto); } else { - //去任务表中查询是否有前工位关联设备的就绪状态下的任务 - taskDtos = taskserver.queryTaskByStartDeviceCode(getDeviceCode); - if (ObjectUtil.isNotEmpty(taskDtos)) { + List taskDtoList = taskserver.queryTaskByDeviceCode(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDtoList)) { //按照优先级排序 优先级相等按照创建时间排序 - taskDtos = this.sortTask(taskDtos); - taskDto = taskDtos.get(0); - break; - } - } - } - //如果任务表中起点1或起点2中 无前工位取货点关联设备 - //就去查询任务表中查找起点1或起点2为后工位取货点关联设备的任务 - if (ObjectUtil.isEmpty(taskDto)) { - for (String backGetDeviceCode : backGetDeviceCodeList) { - //去任务表中查询是否有前工位关联设备的重新创建指令的任务 - List taskDtos = taskserver.queryTaskByNextAndIntStatus(backGetDeviceCode); - if (ObjectUtil.isNotEmpty(taskDtos)) { - //按照优先级排序 优先级相等按照创建时间排序 - taskDtos = this.sortTask(taskDtos); - taskDto = taskDtos.get(0); - flag = this.executeBusiness(taskDto, getDeviceCodeList, backGetDeviceCodeList); - return flag; - } else { - //去任务表中查询是否有后工位关联设备的就绪状态下的任务 - taskDtos = taskserver.queryTaskByBackDeviceCode(backGetDeviceCode); - if (ObjectUtil.isNotEmpty(taskDtos)) { - //按照优先级排序 优先级相等按照创建时间排序 - taskDtos = this.sortTask(taskDtos); - taskDto = taskDtos.get(0); - break; + taskDtoList = this.sortTask(taskDtoList); + for (int j = 0; j < taskDtoList.size(); j++) { + task = taskDtoList.get(j); + + // 9 行架任务 + if (ObjectUtil.isNotEmpty(task) && !StrUtil.equals(task.getTask_type(), "9")) { + task = null; + continue; + } + if (ObjectUtil.isNotEmpty(task)) break; } } } } - - if (!ObjectUtil.isEmpty(taskDto)) { - flag = this.executeReadyBusiness(taskDto, getDeviceCodeList, backGetDeviceCodeList); - if (flag) { - notCreateInstMessage = ""; - notCreateTaskMessage = ""; - } - } else { - notCreateTaskMessage = ""; - notCreateInstMessage = "未找到正常关联设备的任务!"; + if (!ObjectUtil.isEmpty(task)) { + flag = this.executeReadyTask(task); } } return flag; } - //执行重新生成分切机出双卷的任务 - public synchronized boolean inst_require1(TaskDto taskDto, List getDeviceCodeList, List backGetDeviceCodeList) { - boolean flag = false; + //执行已有就绪指令 + public synchronized boolean executeReadyInst(TaskDto taskDto) { //获取指令信息 Instruction instructionDto = instructionService.findByTaskcodeAndStatus(taskDto.getTask_code()); //获取指令表中的取货点1 @@ -530,136 +372,46 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl String next_device_code = instructionDto.getNext_device_code(); //获取指令表中的放货点2 String next_device_code2 = instructionDto.getNext_device_code2(); - //判断任务点位是否配置电气信号 + //判断位是否设置电气值 Device startDevice = deviceAppservice.findDeviceByCode(start_device_code); - Device startDevice2 = deviceAppservice.findDeviceByCode(start_device_code2); Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); - Device nextDevice2 = deviceAppservice.findDeviceByCode(next_device_code2); this.isSetAddress(startDevice); this.isSetAddress(nextDevice); - this.isSetAddress(startDevice2); - this.isSetAddress(nextDevice2); - - //修改指令状态 - instructionDto.setInstruction_status(InstructionStatusEnum.BUSY.getIndex()); - instructionDto.setUpdate_time(DateUtil.now()); - instructionService.update(instructionDto); - flag = true; - //下发电气信号 - this.sendSignal(instructionDto, taskDto); - //请求任务成功 - requireSucess = true; - return flag; - } - - //下发电气信号 - public synchronized void sendSignal(Instruction dto, TaskDto taskDto) { - logServer.deviceExecuteLog(this.getDeviceCode(), "", "", "开始下发电气信号,即下发电气指令信息为:" - + dto.toString()); - String start_device_code = dto.getStart_device_code(); - String next_device_code = dto.getNext_device_code(); - Device startDevice = deviceAppservice.findDeviceByCode(start_device_code); - Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); String start_addr = startDevice.getExtraValue().get("address").toString(); String next_addr = nextDevice.getExtraValue().get("address").toString(); - - String start_device_code2 = dto.getStart_device_code2(); - String next_device_code2 = dto.getNext_device_code2(); - Device startDevice2 = deviceAppservice.findDeviceByCode(start_device_code2); - Device nextDevice2 = deviceAppservice.findDeviceByCode(next_device_code2); - String start_addr2 = startDevice2.getExtraValue().get("address").toString(); - String next_addr2 = nextDevice2.getExtraValue().get("address").toString(); - + //下发电气信号 Map map = new LinkedHashMap<>(); - map.put("to_onset1", start_addr2); - map.put("to_target1", next_addr2); - map.put("to_task1", dto.getInstruction_code()); - map.put("to_onset2", start_addr); - map.put("to_target2", next_addr); - map.put("to_task2", dto.getInstruction_code()); + map.put("to_onset1", start_addr); + map.put("to_target1", next_addr); + map.put("to_task", instructionDto.getInstruction_code()); map.put("to_type", taskDto.getTruss_type()); - map.put("to_command1", CommonFinalParam.ONE); - map.put("to_command2", CommonFinalParam.ONE); - this.writing(map); - logServer.deviceExecuteLog(device_code, "", "", dto.getInstruction_code() + "下发分切机出双卷任务"); - this.setNow_steps_type3(2); - } + map.put("to_empty_shaft_site", taskDto.getEmpty_shaft_site()); - - //执行重新生成指令的任务 - public synchronized boolean executeBusiness(TaskDto taskDto, List getDeviceCodeList, List backGetDeviceCodeList) { - boolean flag = false; - //任务类型 1.前工位任务 2.后工位任务 3.双工位任务 - String type = ""; - //获取指令信息 - Instruction instructionDto = instructionService.findByTaskcodeAndStatus(taskDto.getTask_code()); - //获取指令表中的取货点1 - String start_device_code = instructionDto.getStart_device_code(); - //获取指令表中的取货点2 - String start_device_code2 = instructionDto.getStart_device_code2(); - //获取指令表中的放货点1 - String next_device_code = instructionDto.getNext_device_code(); - //获取指令表中的放货点2 - String next_device_code2 = instructionDto.getNext_device_code2(); - //判断任务点位是否配置电气信号 - Device startDevice = deviceAppservice.findDeviceByCode(start_device_code); - Device startDevice2 = deviceAppservice.findDeviceByCode(start_device_code2); - Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); - Device nextDevice2 = deviceAppservice.findDeviceByCode(next_device_code2); - //如果指令表中的取货点1和取货点2 都不为空 则说明时下双工位任务 - if (StrUtil.isNotEmpty(start_device_code2) && StrUtil.isNotEmpty(start_device_code)) { - this.isSetAddress(startDevice); - this.isSetAddress(nextDevice); + if (StrUtil.isNotEmpty(start_device_code2)) { + Device startDevice2 = deviceAppservice.findDeviceByCode(start_device_code2); + Device nextDevice2 = deviceAppservice.findDeviceByCode(next_device_code2); this.isSetAddress(startDevice2); this.isSetAddress(nextDevice2); - type = "3"; - } else { - //判断指令表中的起点1 是否是前工位/后工位取货点的关联设备 - int headGetIndex = getDeviceCodeList.indexOf(start_device_code); - int backGetIndex = backGetDeviceCodeList.indexOf(start_device_code); - if (headGetIndex != -1) { - //前工位 - type = CommonFinalParam.ONE; - } else if (backGetIndex != -1) { - //后工位 - type = "2"; - } - this.isSetAddress(startDevice); - this.isSetAddress(nextDevice); + String start_addr2 = startDevice2.getExtraValue().get("address").toString(); + String next_addr2 = nextDevice2.getExtraValue().get("address").toString(); + map.put("to_onset2", start_addr2); + map.put("to_target2", next_addr2); } - - //修改指令状态 - instructionDto.setInstruction_status(InstructionStatusEnum.BUSY.getIndex()); - instructionDto.setUpdate_time(DateUtil.now()); + map.put("to_command", CommonFinalParam.ONE); try { - instructionService.update(instructionDto); - if (StrUtil.equals(type, CommonFinalParam.ONE)) { - this.setNow_steps_type1(1); - } - if (StrUtil.equals(type, "2")) { - this.setNow_steps_type2(1); - } - if (StrUtil.equals(type, "3")) { - this.setNow_steps_type3(1); - } - flag = true; + this.writing(map); } catch (Exception e) { - logServer.deviceExecuteLog(device_code, "", instructionDto.getInstruction_code(), "执行重新生成指令的任务失败,原因->" + e.getMessage()); + logServer.deviceExecuteLog(device_code, "", "", "下发指令:" + instructionDto.getInstruction_code() + ",指令取货点1:" + instructionDto.getStart_device_code() + + ",指令放货点1:" + instructionDto.getNext_device_code() + ",指令取货点2:" + instructionDto.getNext_device_code2() + ",指令放货点2:" + instructionDto.getNext_device_code2() + ",指令执行失败:" + e.getMessage()); } - - //下发电气信号 - this.sendSignalType(instructionDto, type); - //请求任务成功 - requireSucess = true; - return flag; + this.setRequireSucess(true); + return true; } + //执行就绪状态下的任务 - public synchronized boolean executeReadyBusiness(TaskDto taskDto, List getDeviceCodeList, List backGetDeviceCodeList) { - boolean flag = false; - //任务类型 1.前工位任务 2.后工位任务 3.双工位任务 - String type = ""; + public synchronized boolean executeReadyTask(TaskDto taskDto) { //获取任务表中的取货点1 String start_device_code = taskDto.getStart_device_code(); //获取任务表中的取货点2 @@ -671,54 +423,29 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl //判断任务点位是否配置电气信号 Device startDevice = deviceAppservice.findDeviceByCode(start_device_code); Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); - Device startDevice2 = deviceAppservice.findDeviceByCode(start_device_code2); - Device nextDevice2 = deviceAppservice.findDeviceByCode(next_device_code2); - logServer.deviceExecuteLog(this.getDeviceCode(), "", "", "" + - "执行就绪状态下的任务生成指令时:起点1为:" + start_device_code + "起点2为:" + start_device_code2 + ",任务信息为:" + taskDto.toString()); - //如果指令表中的取货点1和取货点2 都不为空 则说明时下双工位任务 - if (StrUtil.isNotEmpty(start_device_code2) && StrUtil.isNotEmpty(start_device_code)) { - type = "3"; - logServer.deviceExecuteLog(this.getDeviceCode(), "", "", "" + - "执行就绪状态下的任务生成指令时:起点1为:" + start_device_code + "起点2为:" + start_device_code2 + - "type值为:" + type + ",任务信息为:" + taskDto.toString()); - //判断四个点位是否都设置电气值 - this.isSetAddress(startDevice); - this.isSetAddress(nextDevice); - this.isSetAddress(startDevice2); - this.isSetAddress(nextDevice2); - } else { - //判断指令表中的起点1 是否是前工位/后工位取货点的关联设备 - int headGetIndex = getDeviceCodeList.indexOf(start_device_code); - int backGetIndex = backGetDeviceCodeList.indexOf(start_device_code); - if (headGetIndex != -1) { - //前工位 - type = CommonFinalParam.ONE; - } else if (backGetIndex != -1) { - //后工位 - type = "2"; - } - logServer.deviceExecuteLog(this.getDeviceCode(), "", "", "" + - "执行就绪状态下的任务生成指令时:起点1为:" + start_device_code + "起点2为:" + start_device_code2 - + "type值为:" + type + ",任务信息为:" + taskDto.toString()); - //判断单任务下的两个点位是否都设置电气值 - this.isSetAddress(startDevice); - this.isSetAddress(nextDevice); - } - + this.isSetAddress(startDevice); + this.isSetAddress(nextDevice); + String start_addr = startDevice.getExtraValue().get("address").toString(); + String next_addr = nextDevice.getExtraValue().get("address").toString(); + //下发电气信号 + Map map = new LinkedHashMap<>(); + map.put("to_onset1", start_addr); + map.put("to_target1", next_addr); + map.put("to_type", taskDto.getTruss_type()); + map.put("to_empty_shaft_site", taskDto.getEmpty_shaft_site()); + //创建指令 + Instruction instdto = new Instruction(); String taskid = taskDto.getTask_id(); String taskcode = taskDto.getTask_code(); String vehiclecode = taskDto.getVehicle_code(); String priority = taskDto.getPriority(); String start_point_code = taskDto.getStart_point_code(); String next_point_code = taskDto.getNext_point_code(); - String start_point_code2 = taskDto.getStart_point_code2(); - String next_point_code2 = taskDto.getNext_point_code2(); String route_plan_code = taskDto.getRoute_plan_code(); String remark = taskDto.getRemark(); String material = taskDto.getMaterial(); String quantity = taskDto.getQuantity(); - Instruction instdto = new Instruction(); instdto.setInstruction_id(IdUtil.simpleUUID()); instdto.setRoute_plan_code(route_plan_code); instdto.setRemark(remark); @@ -735,190 +462,52 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl instdto.setStart_point_code(start_point_code); instdto.setNext_point_code(next_point_code); instdto.setPriority(priority); - instdto.setInstruction_status(InstructionStatusEnum.READY.getIndex()); + instdto.setInstruction_status("0"); instdto.setExecute_device_code(start_point_code); - instdto.setStart_device_code2(start_device_code2); - instdto.setStart_point_code2(start_point_code2); - instdto.setNext_device_code2(next_device_code2); - instdto.setNext_point_code2(next_point_code2); - + if (StrUtil.isNotEmpty(start_device_code2)) { + String start_point_code2 = taskDto.getStart_point_code2(); + String next_point_code2 = taskDto.getNext_point_code2(); + //判断任务点位是否配置电气信号 + Device startDevice2 = deviceAppservice.findDeviceByCode(start_device_code2); + Device nextDevice2 = deviceAppservice.findDeviceByCode(next_device_code2); + this.isSetAddress(startDevice2); + this.isSetAddress(nextDevice2); + String start_addr2 = startDevice2.getExtraValue().get("address").toString(); + String next_addr2 = nextDevice2.getExtraValue().get("address").toString(); + instdto.setStart_device_code2(start_device_code2); + instdto.setStart_point_code2(start_point_code2); + instdto.setNext_device_code2(next_device_code2); + instdto.setNext_point_code2(next_point_code2); + map.put("to_onset2", start_addr2); + map.put("to_target2", next_addr2); + } try { - logServer.deviceExecuteLog(this.getDeviceCode(), "", "", "" + - "执行就绪状态下的任务生成指令时:起点1为:" + start_device_code + "起点2为:" + start_device_code2 - + "type值为:" + type + ",创建指令信息为:" + instdto.toString()); instructionService.create(instdto); - flag = true; } catch (Exception e) { notCreateInstMessage = e.getMessage(); logServer.deviceExecuteLog(device_code, "", instdto.getInstruction_code(), "指令创建失败,原因->" + e.getMessage()); } - //创建指令后修改任务状态 - taskDto.setTask_status(TaskStatusEnum.BUSY.getIndex()); + taskDto.setTask_status("1"); taskDto.setUpdate_time(DateUtil.now()); taskserver.update(taskDto); - - //下发电气信号 - this.sendSignalType(instdto, type); - + try { + map.put("to_task", instdto.getInstruction_code()); + map.put("to_command", CommonFinalParam.ONE); + this.writing(map); + } catch (Exception e) { + logServer.deviceExecuteLog(device_code, "", "", "下发指令:" + instdto.getInstruction_code() + ",指令取货点1:" + instdto.getStart_device_code() + + ",指令放货点1:" + instdto.getNext_device_code() + ",指令取货点2:" + instdto.getNext_device_code2() + ",指令放货点2:" + instdto.getNext_device_code2() + ",指令执行失败:" + e.getMessage()); + } //请求任务成功 - requireSucess = true; - return flag; - } - - //下发电气信号 - public synchronized void sendSignalType(Instruction dto, String type) { - logServer.deviceExecuteLog(this.getDeviceCode(), "", "", "开始下发电气信号,即下发电气指令信息为:" - + dto.toString() + ",type = " + type); - String start_device_code = dto.getStart_device_code(); - String next_device_code = dto.getNext_device_code(); - Device startDevice = deviceAppservice.findDeviceByCode(start_device_code); - Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); - String start_addr = startDevice.getExtraValue().get("address").toString(); - String next_addr = nextDevice.getExtraValue().get("address").toString(); - List list = new ArrayList(); - if (StrUtil.equals(type, CommonFinalParam.ONE)) { - Map map1 = new HashMap(); - map1.put("code", "to_onset1"); - map1.put("value", start_addr); - list.add(map1); - Map map2 = new HashMap(); - map2.put("code", "to_target1"); - map2.put("value", next_addr); - list.add(map2); - Map map3 = new HashMap(); - map3.put("code", "to_task1"); - map3.put("value", dto.getInstruction_code()); - list.add(map3); - Map map4 = new HashMap(); - map4.put("code", "to_type"); - map4.put("value", CommonFinalParam.ONE); - list.add(map4); - Map map5 = new HashMap(); - map5.put("code", "to_command1"); - map5.put("value", CommonFinalParam.ONE); - list.add(map5); - HashMap map6 = new HashMap() {{ - put("code", "to_command2"); - put("value", "0"); - }}; - list.add(map6); - this.writing(list); - logServer.deviceExecuteLog(device_code, "", "", dto.getInstruction_code() + "下发前工位任务"); - -// this.writing("to_onset1", start_addr); -// this.writing("to_target1", next_addr); -// this.writing("to_task1", dto.getInstruction_code()); -// this.writing("to_command1", CommonFinalParam.ONE); -// this.writing("to_type", CommonFinalParam.ONE); - this.setNow_steps_type1(2); - } else if (StrUtil.equals(type, "2")) { - Map map1 = new HashMap(); - map1.put("code", "to_onset2"); - map1.put("value", start_addr); - list.add(map1); - Map map2 = new HashMap(); - map2.put("code", "to_target2"); - map2.put("value", next_addr); - list.add(map2); - Map map3 = new HashMap(); - map3.put("code", "to_task2"); - map3.put("value", dto.getInstruction_code()); - list.add(map3); - Map map4 = new HashMap(); - map4.put("code", "to_type"); - map4.put("value", "2"); - list.add(map4); - Map map5 = new HashMap(); - map5.put("code", "to_command2"); - map5.put("value", CommonFinalParam.ONE); - list.add(map5); - HashMap map6 = new HashMap() {{ - put("code", "to_command1"); - put("value", "0"); - }}; - list.add(map6); - this.writing(list); - logServer.deviceExecuteLog(device_code, "", "", dto.getInstruction_code() + "下发后工位任务"); - -// this.writing("to_onset2", start_addr); -// this.writing("to_target2", next_addr); -// this.writing("to_task2", dto.getInstruction_code()); -// this.writing("to_command2", CommonFinalParam.ONE); -// this.writing("to_type", "2"); - this.setNow_steps_type2(2); - } else if (StrUtil.equals(type, "3")) { - String start_device_code2 = dto.getStart_device_code2(); - String next_device_code2 = dto.getNext_device_code2(); - Device startDevice2 = deviceAppservice.findDeviceByCode(start_device_code2); - Device nextDevice2 = deviceAppservice.findDeviceByCode(next_device_code2); - String start_addr2 = startDevice2.getExtraValue().get("address").toString(); - String next_addr2 = nextDevice2.getExtraValue().get("address").toString(); - - - Map map1 = new HashMap(); - map1.put("code", "to_onset1"); - map1.put("value", start_addr2); - list.add(map1); - Map map2 = new HashMap(); - map2.put("code", "to_target1"); - map2.put("value", next_addr2); - list.add(map2); - Map map3 = new HashMap(); - map3.put("code", "to_task1"); - map3.put("value", dto.getInstruction_code()); - list.add(map3); - Map map4 = new HashMap(); - map4.put("code", "to_onset2"); - map4.put("value", start_addr); - list.add(map4); - Map map5 = new HashMap(); - map5.put("code", "to_target2"); - map5.put("value", next_addr); - list.add(map5); - Map map6 = new HashMap(); - map6.put("code", "to_task2"); - map6.put("value", dto.getInstruction_code()); - list.add(map6); - Map map7 = new HashMap(); - map7.put("code", "to_type"); - map7.put("value", "3"); - list.add(map7); - Map map8 = new HashMap(); - map8.put("code", "to_command1"); - map8.put("value", CommonFinalParam.ONE); - list.add(map8); - Map map9 = new HashMap(); - map9.put("code", "to_command2"); - map9.put("value", CommonFinalParam.ONE); - list.add(map9); - this.writing(list); - logServer.deviceExecuteLog(device_code, "", "", dto.getInstruction_code() + "下发双工位任务"); - - -// this.writing("to_onset1", start_addr2); -// this.writing("to_target1", next_addr2); -// this.writing("to_task1", dto.getInstruction_code()); -// this.writing("to_command1", CommonFinalParam.ONE); -// this.writing("to_onset2", start_addr); -// this.writing("to_target2", next_addr); -// this.writing("to_task2", dto.getInstruction_code()); -// this.writing("to_command2", CommonFinalParam.ONE); -// this.writing("to_type", "3"); - this.setNow_steps_type3(2); - } - - if (task1 != Integer.parseInt(dto.getInstruction_code()) || task2 != Integer.parseInt(dto.getInstruction_code())) { - this.writing(list); - logServer.deviceExecuteLog(device_code, "", "", dto.getInstruction_code() + "再次下发电气信号"); - } - + this.setRequireSucess(true); + return true; } //判断点位是否设置电气值 public void isSetAddress(Device device) { if (ObjectUtil.isEmpty(device.getExtraValue().get("address"))) { - logServer.deviceExecuteLog(device_code, "", "task1:" + task1 + ",task2:" + task2, "设备:" + device.getDevice_code() + "未设置电气调度号!"); + logServer.deviceExecuteLog(device_code, "", "task:" + task, "设备:" + device.getDevice_code() + "未设置电气调度号!"); notCreateInstMessage = "设备:" + device.getDevice_code() + "未设置电气调度号!"; throw new BadRequestException("设备:" + device.getDevice_code() + "未设置电气调度号!"); } @@ -974,25 +563,13 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl } public void writing1(int command) { - String to_command1 = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_command1; + String to_command = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() + + "." + ItemProtocol.item_to_command; //String opcservcerid = this.getDevice().getOpc_server_id(); //Server server = ReadUtil.getServer(opcservcerid); Map itemMap = new HashMap(); - itemMap.put(to_command1, command); - this.control(itemMap); - - } - - public void writing2(int command) { - String to_command2 = this.getDevice().getOpc_server_code() + "." + this.getDevice().getOpc_plc_code() + "." + this.getDevice().getDevice_code() - + "." + ItemProtocol.item_to_command2; - - //String opcservcerid = this.getDevice().getOpc_server_id(); -//Server server = ReadUtil.getServer(opcservcerid); - Map itemMap = new HashMap(); - itemMap.put(to_command2, command); + itemMap.put(to_command, command); this.control(itemMap); } @@ -1062,8 +639,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl JSONObject jo = new JSONObject(); String move_1 = ""; String move_2 = ""; - String action1 = ""; - String action2 = ""; + String action = ""; String walk_y = ""; String mode = ""; String status = ""; @@ -1080,15 +656,6 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl mode = "运行中"; } - if (this.getStatus() == 0) { - status = "0"; - } else if (this.getStatus() == 1) { - status = "待机"; - } else if (this.getStatus() == 2) { - status = "生产中"; - } else if (this.getStatus() == 3) { - status = "故障"; - } if (this.getMove1() == 0) { move_1 = "无货"; @@ -1102,24 +669,22 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl move_2 = "有货"; } - if (this.getAction1() == 1) { - action1 = "取货中"; - } else if (this.getAction1() == 2) { - action1 = "取货完成"; - } else if (this.getAction1() == 3) { - action1 = "放货中"; - } else if (this.getAction1() == 4) { - action1 = "放货完成"; - } - - if (this.getAction2() == 1) { - action2 = "取货中"; - } else if (this.getAction2() == 2) { - action2 = "取货完成"; - } else if (this.getAction2() == 3) { - action2 = "放货中"; - } else if (this.getAction2() == 4) { - action2 = "放货完成"; + if (this.getAction() == 1) { + action = "前工位取货中"; + } else if (this.getAction() == 2) { + action = "前工位取货完成"; + } else if (this.getAction() == 3) { + action = "前工位放货中"; + } else if (this.getAction() == 4) { + action = "前工位放货完成"; + } else if (this.getAction() == 5) { + action = "后工位取货中"; + } else if (this.getAction() == 6) { + action = "后工位取货完成"; + } else if (this.getAction() == 7) { + action = "后工位取货中"; + } else if (this.getAction() == 8) { + action = "后工位放货完成"; } if (this.getWalk_y() == 0) { @@ -1142,20 +707,16 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl jo.put("device_name", this.getDevice().getDevice_name()); jo.put("mode", mode); - jo.put("status", status); jo.put("move_1", move_1); jo.put("move_2", move_2); - jo.put("action_1", action1); - jo.put("action_2", action2); + jo.put("action", action); jo.put("walk_y", walk_y); jo.put("error", this.getError()); - jo.put("task1", this.getTask1()); - jo.put("task2", this.getTask2()); + jo.put("task", this.getTask()); jo.put("isOnline", this.getIsonline()); jo.put("isError", this.getIserror()); jo.put("is_disable1", this.getIs_disable()); jo.put("is_disable", is_disable); - jo.put("message", this.messageInfo(type)); jo.put("is_click", true); jo.put("driver_type", "slit_two_manipulator"); jo.put("notCreateTaskMessage", notCreateTaskMessage); @@ -1164,44 +725,21 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl return jo; } - public String messageInfo(int type) { - String set_type = ""; - JSONObject map = new JSONObject(); - if (type == 1) { - set_type = String.valueOf(now_steps_type1); - map.put("0", "前工位单任务未执行"); - map.put(CommonFinalParam.ONE, "前工位单任务改变指令状态"); - map.put("2", "前工位单任务下发电气任务信息"); - map.put("3", "单任务前工位允许取货"); - map.put("4", "单任务前工位取货完成"); - map.put("5", "单任务前工位允许放货"); - map.put("6", "单任务前工位放货完成"); - } else if (type == 2) { - set_type = String.valueOf(now_steps_type2); - map.put("0", "后工位单任务未执行"); - map.put(CommonFinalParam.ONE, "后工位单任务改变指令状态"); - map.put("2", "后工位单任务下发电气任务信息"); - map.put("3", "单任务后工位允许取货"); - map.put("4", "单任务后工位取货完成"); - map.put("5", "单任务后工位允许放货"); - map.put("6", "单任务后工位放货完成"); - } else if (type == 3) { - set_type = String.valueOf(now_steps_type3); - map.put("0", "双任务未执行"); - map.put(CommonFinalParam.ONE, "双任务改变指令状态"); - map.put("2", "双任务下发电气任务信息"); - map.put("3", "双任务后工位允许取货"); - map.put("4", "双任务后工位取货完成"); - map.put("5", "双任务前工位允许取货"); - map.put("6", "双任务前工位取货完成"); - map.put("7", "双任务后工位允许放货"); - map.put("8", "双任务后工位放货完成"); - map.put("9", "双任务前工位允许放货"); - map.put("10", "双任务前工位放货完成"); + public Instruction checkInst() { + if (ObjectUtil.isNotEmpty(this.inst)) { + if (this.task > 0) { + if (this.inst.getInstruction_code().equals(String.valueOf(this.task))) { + return this.inst; + } else { + inst = instructionService.findByCodeFromCache(String.valueOf(task)); + return inst; + } + } } else { - return "未执行任务"; + inst = instructionService.findByCodeFromCache(String.valueOf(task)); + return inst; } - return map.getString(set_type); + return null; } @Override diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/ItemProtocol.java index b276ae9dc..6ef3cec36 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/ItemProtocol.java @@ -75,18 +75,18 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "251")); - list.add(new ItemDto(item_mode, "工作模式", "7990")); - list.add(new ItemDto(item_move, "光电信号", "550")); - list.add(new ItemDto(item_action, "取放信号", "450")); - list.add(new ItemDto(item_error, "故障", "8055")); - list.add(new ItemDto(item_weight, "重量", "8055")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB17.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB17.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB17.B2")); + list.add(new ItemDto(item_action, "取放信号", "DB17.B3")); + list.add(new ItemDto(item_error, "故障", "DB17.B4")); + list.add(new ItemDto(item_weight, "重量", "DB17.B5")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "下发命令", "40226")); + list.add(new ItemDto(item_to_command, "下发命令", "DB18.W0")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/SubvolumeWeighingStationDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/SubvolumeWeighingStationDefination.java index 4eb38d200..df49bdc29 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/SubvolumeWeighingStationDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/subvolume_weighing_station/SubvolumeWeighingStationDefination.java @@ -43,7 +43,7 @@ public class SubvolumeWeighingStationDefination implements OpcDeviceDriverDefina @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.station); + types.add(DeviceType.conveyor); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/ItemProtocol.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/ItemProtocol.java index 3a3d254cf..cb678f0f9 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/ItemProtocol.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/ItemProtocol.java @@ -79,19 +79,19 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_heartbeat, "心跳", "251")); - list.add(new ItemDto(item_mode, "工作模式", "7990")); - list.add(new ItemDto(item_move, "光电信号", "550")); - list.add(new ItemDto(item_action, "取放信号", "450")); - list.add(new ItemDto(item_error, "故障", "8055")); - list.add(new ItemDto(item_weight, "重量", "8055")); - list.add(new ItemDto(item_old_weight, "上次重量", "8055")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB19.B0")); + list.add(new ItemDto(item_mode, "工作模式", "DB19.B1")); + list.add(new ItemDto(item_move, "光电信号", "DB19.B2")); + list.add(new ItemDto(item_action, "取放信号", "DB19.B3")); + list.add(new ItemDto(item_error, "故障", "DB19.B4")); + list.add(new ItemDto(item_weight, "重量", "DB19.B5")); + list.add(new ItemDto(item_old_weight, "上次重量", "DB19.B6")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_command, "下发命令", "40226")); + list.add(new ItemDto(item_to_command, "下发命令", "DB20.W0")); return list; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/WasteFoilWeighingStationDefination.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/WasteFoilWeighingStationDefination.java index 7a15d6c3b..b72ace924 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/WasteFoilWeighingStationDefination.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/waste_foil_weighing_station/WasteFoilWeighingStationDefination.java @@ -43,7 +43,7 @@ public class WasteFoilWeighingStationDefination implements OpcDeviceDriverDefina @Override public List getFitDeviceTypes() { List types = new LinkedList(); - types.add(DeviceType.station); + types.add(DeviceType.conveyor); return types; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionRequest.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionRequest.java index 840404ff1..7aa96e4bb 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionRequest.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionRequest.java @@ -1,4 +1,34 @@ package org.nl.acs.ext.wms.data; -public class ApplyManipulatorActionRequest { +import lombok.Data; + +@Data +public class ApplyManipulatorActionRequest extends BaseRequest { + private String vehicle_code; + private String device_code; + /** + * 1- + * 2-反馈新放货点 + * 3-反馈新取货点 + * 4-反馈二次放货点 + * 6-套轴申请 + * 7-套轴完成 + * 8-拔轴完成 + */ + private String type; + + /** + * 行架任务号 + */ + private String task_code; + + /** + * 重量 + */ + private String weight; + + /** + * 条码 + */ + private String barcode; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionResponse.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionResponse.java new file mode 100644 index 000000000..59ed81914 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyManipulatorActionResponse.java @@ -0,0 +1,11 @@ +package org.nl.acs.ext.wms.data; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +@Data +public class ApplyManipulatorActionResponse extends BaseResponse{ + private Map data = new HashMap(); +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSitResponse.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSitResponse.java new file mode 100644 index 000000000..eeae4520d --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSitResponse.java @@ -0,0 +1,11 @@ +package org.nl.acs.ext.wms.data; + +import lombok.Data; + +import java.util.HashMap; +import java.util.Map; + +@Data +public class ApplyPlugPullSitResponse extends BaseResponse { + private Map data = new HashMap(); +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSiteRequest.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSiteRequest.java new file mode 100644 index 000000000..0df1f9734 --- /dev/null +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/data/ApplyPlugPullSiteRequest.java @@ -0,0 +1,30 @@ +package org.nl.acs.ext.wms.data; + +import lombok.Data; + +@Data +public class ApplyPlugPullSiteRequest extends BaseRequest { + private String vehicle_code; + private String device_code; + /** + * 1-申请套管 + * 2-套管完成 + * 3-拔轴完成 + */ + private String type; + + /** + * 行架任务号 + */ + private String task_code; + + /** + * 重量 + */ + private String weight; + + /** + * 条码 + */ + private String barcode; +} diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java index 9ef7e3099..6e929bb6b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/AcsToWmsService.java @@ -3,11 +3,11 @@ package org.nl.acs.ext.wms.service; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; -import org.nl.acs.ext.wms.data.ApplyGreenFoilButtonRequest; -import org.nl.acs.ext.wms.data.ApplyGreenFoilButtonResponse; -import org.nl.acs.ext.wms.data.BlankingButtonRequest; -import org.nl.acs.ext.wms.data.BlankingButtonResponse; +import org.nl.acs.ext.wms.data.*; import org.nl.acs.ext.wms.data.one.*; +import org.nl.acs.ext.wms.data.one.ApplyLabelingAndBindingRequest; +import org.nl.acs.ext.wms.data.one.ApplyLabelingAndBindingResponse; +import org.nl.acs.ext.wms.data.one.BaseRequest; public interface AcsToWmsService { @@ -129,4 +129,17 @@ public interface AcsToWmsService { */ BlankingButtonResponse applyBlankButtonTask(BlankingButtonRequest param); + /** + * 向lms申请反馈 + * @param param + * @return + */ + ApplyManipulatorActionResponse applyManipulatorActionRequest(ApplyManipulatorActionRequest param); + + /** + * 向lms申请套管工位请求 + * @param param + * @return + */ + ApplyPlugPullSitResponse applyPlugPullSiteRequest(ApplyPlugPullSiteRequest param); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java index 109a6feae..d90c769f6 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/AcsToWmsServiceImpl.java @@ -16,13 +16,13 @@ import org.nl.acs.address.service.AddressService; import org.nl.acs.address.service.dto.AddressDto; import org.nl.acs.device.service.DeviceService; import org.nl.acs.ext.wms.LmsUtil; +import org.nl.acs.ext.wms.data.*; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskRequest; import org.nl.acs.ext.wms.data.AcsToWmsData.applyTask.ApplyTaskResponse; -import org.nl.acs.ext.wms.data.ApplyGreenFoilButtonRequest; -import org.nl.acs.ext.wms.data.ApplyGreenFoilButtonResponse; -import org.nl.acs.ext.wms.data.BlankingButtonRequest; -import org.nl.acs.ext.wms.data.BlankingButtonResponse; import org.nl.acs.ext.wms.data.one.*; +import org.nl.acs.ext.wms.data.one.ApplyLabelingAndBindingRequest; +import org.nl.acs.ext.wms.data.one.ApplyLabelingAndBindingResponse; +import org.nl.acs.ext.wms.data.one.BaseRequest; import org.nl.acs.ext.wms.service.AcsToWmsService; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.task.service.TaskService; @@ -190,4 +190,70 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { MDC.remove(log_file_type); } } + + @Override + public ApplyPlugPullSitResponse applyPlugPullSiteRequest(ApplyPlugPullSiteRequest param) { + log.info("向LMS申请反馈,请求参数{}",param); + try { + MDC.put(log_file_type, log_type); + ApplyPlugPullSitResponse applyPlugPullSitResponse = new ApplyPlugPullSitResponse(); + if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) { + String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue(); + AddressDto addressDto = addressService.findByCode("applyPlugPullSiteRequest"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + log.info("ApplyPlugPullSiteRequest----请求参数:{}", JSONObject.toJSONString(param)); + try { +// String result = ""; + String result = HttpRequest.post(url) + .body(JSON.toJSONString(param)) + .execute().body(); + JSONObject jsonObject = JSONObject.parseObject(result); + log.info("ApplyPlugPullSitResponse----返回参数{}", result); + applyPlugPullSitResponse = JSONObject.toJavaObject(jsonObject, ApplyPlugPullSitResponse.class); + } catch (Exception e) { + JSONObject map = new JSONObject(); + map.put("status", 400); + map.put("message", e.getMessage()); + return JSONObject.toJavaObject(map, ApplyPlugPullSitResponse.class); + } + } + return applyPlugPullSitResponse; + } finally { + MDC.remove(log_file_type); + } + } + + @Override + public ApplyManipulatorActionResponse applyManipulatorActionRequest(ApplyManipulatorActionRequest param) { + log.info("向LMS申请反馈,请求参数{}",param); + try { + MDC.put(log_file_type, log_type); + ApplyManipulatorActionResponse applyManipulatorActionResponse = new ApplyManipulatorActionResponse(); + if (StrUtil.equals(paramService.findByCode(AcsConfig.HASWMS).getValue(), "1")) { + String wmsUrl = paramService.findByCode(AcsConfig.WMSURL).getValue(); + AddressDto addressDto = addressService.findByCode("applyManipulatorAction"); + String methods_url = addressDto.getMethods_url(); + String url = wmsUrl + methods_url; + log.info("ApplyManipulatorActionRequest----请求参数:{}", JSONObject.toJSONString(param)); + try { +// String result = ""; + String result = HttpRequest.post(url) + .body(JSON.toJSONString(param)) + .execute().body(); + JSONObject jsonObject = JSONObject.parseObject(result); + log.info("ApplyManipulatorActionResponse----返回参数{}", result); + applyManipulatorActionResponse = JSONObject.toJavaObject(jsonObject, ApplyManipulatorActionResponse.class); + } catch (Exception e) { + JSONObject map = new JSONObject(); + map.put("status", 400); + map.put("message", e.getMessage()); + return JSONObject.toJavaObject(map, ApplyManipulatorActionResponse.class); + } + } + return applyManipulatorActionResponse; + } finally { + MDC.remove(log_file_type); + } + } } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 67aa1c66a..242dc8197 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -9,10 +9,14 @@ import com.baomidou.mybatisplus.core.toolkit.StringUtils; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.acs.device.domain.Device; +import org.nl.acs.device_driver.conveyor.siemens_conveyor.SiemensConveyorDeviceDriver; import org.nl.acs.device_driver.one_manipulator.box_package_manipulator.BoxPackageManipulatorDeviceDriver; import org.nl.acs.device_driver.conveyor.box_palletizing_manipulator.BoxPalletizingManipulatorDeviceDriver; import org.nl.acs.device_driver.paper_tube_device2.PaperTubeConveyor2DeviceDriver; import org.nl.acs.device_driver.two_conveyor.blank_manipulator.BlankManipulatorDeviceDriver; +import org.nl.acs.device_driver.two_conveyor.hongxiang_conveyor.HongXiangStationDeviceDriver; +import org.nl.acs.device_driver.two_conveyor.inflatable_shaft_library.InflatableShaftLibraryDeviceDriver; +import org.nl.acs.device_driver.two_conveyor.lamp_three_color.LampThreecolorDeviceDriver; import org.nl.acs.device_driver.two_conveyor.oven_manipulator.OvenGantryManipulatorDeviceDriver; import org.nl.acs.device_driver.two_conveyor.plug_pull_device_site.PlugPullDeviceSiteDeviceDriver; import org.nl.acs.device_driver.two_conveyor.subvolume_weighing_station.SubvolumeWeighingStationDriver; @@ -74,7 +78,51 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { @Override public PutActionResponse putAction(String jsonObject) throws Exception { - return null; + try { + MDC.put(log_file_type, log_type); + log.info("putAction--------------:输入参数" + jsonObject); + JSONArray datas = JSONArray.parseArray(jsonObject); + PutActionResponse response = new PutActionResponse(); + JSONArray errArr = new JSONArray(); + for (int i = 0; i < datas.size(); i++) { + String data = datas.get(i).toString(); + PutActionRequest request = JsonUtl.format(data, PutActionRequest.class); + String device_code = request.getDevice_code(); + String code = request.getCode(); + String value = request.getValue(); + Device device = deviceAppService.findDeviceByCode(device_code); + if (ObjectUtil.isEmpty(device)) { + throw new Exception("未找到对应设备:" + device_code); + } + InflatableShaftLibraryDeviceDriver inflatableShaftLibraryDeviceDriver; + HongXiangStationDeviceDriver hongXiangStationDeviceDriver; + LampThreecolorDeviceDriver lampThreecolorDeviceDriver; + SiemensConveyorDeviceDriver siemensConveyorDeviceDriver; + if (device.getDeviceDriver() instanceof HongXiangStationDeviceDriver) { + hongXiangStationDeviceDriver = (HongXiangStationDeviceDriver) device.getDeviceDriver(); + hongXiangStationDeviceDriver.writing(code, value); + } + if (device.getDeviceDriver() instanceof LampThreecolorDeviceDriver) { + lampThreecolorDeviceDriver = (LampThreecolorDeviceDriver) device.getDeviceDriver(); + lampThreecolorDeviceDriver.writing(code, value); + } + if (device.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) { + siemensConveyorDeviceDriver = (SiemensConveyorDeviceDriver) device.getDeviceDriver(); + siemensConveyorDeviceDriver.writing(code, value); + } + if (device.getDeviceDriver() instanceof InflatableShaftLibraryDeviceDriver) { + inflatableShaftLibraryDeviceDriver = (InflatableShaftLibraryDeviceDriver) device.getDeviceDriver(); + inflatableShaftLibraryDeviceDriver.writing(code, value); + } + + } + response.setCode(200); + response.setMessage("success"); + log.info("putAction--------------:输出参数:" + response); + return response; + } finally { + MDC.remove(log_file_type); + } } @Override diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java index 373559694..823677906 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/task/service/dto/TaskDto.java @@ -313,4 +313,9 @@ public class TaskDto implements Serializable { * 行架任务类型 */ private String truss_type; + + /** + * 空轴位 + */ + private String empty_shaft_site; } diff --git a/acs2/nladmin-ui/src/views/acs/device/config.vue b/acs2/nladmin-ui/src/views/acs/device/config.vue index 50eea6264..e642622a0 100644 --- a/acs2/nladmin-ui/src/views/acs/device/config.vue +++ b/acs2/nladmin-ui/src/views/acs/device/config.vue @@ -109,6 +109,13 @@ import conveyor_with_scanner_weight from '@/views/acs/device/driver/conveyor_wit import box_manipulator_site from '@/views/acs/device/driver/box_manipulator_site.vue' import rgv from '@/views/acs/device/driver/rgv.vue' import dry_manipulator from '@/views/acs/device/driver/dry_manipulator.vue' +import blanking_button from '@/views/acs/device/driver/blanking_button.vue' +import pull_head_manipulator from '@/views/acs/device/driver/pull_head_manipulator.vue' +import pull_tail_manipulator from '@/views/acs/device/driver/pull_tail_manipulator.vue' +import green_foil_machine_button from '@/views/acs/device/driver/green_foil_machine_button.vue' +import inflatable_shaft_library from '@/views/acs/device/driver/inflatable_shaft_library.vue' +import subvolume_weighing_station from '@/views/acs/device/driver/subvolume_weighing_station.vue' +import waste_foil_weighing_station from '@/views/acs/device/driver/waste_foil_weighing_station.vue' import blank_manipulator from '@/views/acs/device/driver/blank_manipulator.vue' import trapped_manipulator from '@/views/acs/device/driver/one_manipulator/trapped_manipulator.vue' import box_package_manipulator from '@/views/acs/device/driver/one_manipulator/box_package_manipulator.vue' @@ -169,7 +176,14 @@ export default { fold_disc_site, box_storage_out_conveyor, box_subvolumes_conveyor, - finished_product_out_with_bind_lable_conveyor + finished_product_out_with_bind_lable_conveyor, + blanking_button, + waste_foil_weighing_station, + subvolume_weighing_station, + pull_head_manipulator, + pull_tail_manipulator, + inflatable_shaft_library, + green_foil_machine_button, }, dicts: ['device_type'], mixins: [crud], diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/blanking_button.vue b/acs2/nladmin-ui/src/views/acs/device/driver/blanking_button.vue index 5676ca44c..893de4515 100644 --- a/acs2/nladmin-ui/src/views/acs/device/driver/blanking_button.vue +++ b/acs2/nladmin-ui/src/views/acs/device/driver/blanking_button.vue @@ -229,7 +229,7 @@ import crud from '@/mixins/crud' import deviceCrud from '@/api/acs/device/device' export default { - name: 'WithStationDeviceDriver', + name: 'BlankingButton', mixins: [crud], props: { parentForm: { diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/green_foil_machine_button.vue b/acs2/nladmin-ui/src/views/acs/device/driver/green_foil_machine_button.vue index 5676ca44c..0240c985e 100644 --- a/acs2/nladmin-ui/src/views/acs/device/driver/green_foil_machine_button.vue +++ b/acs2/nladmin-ui/src/views/acs/device/driver/green_foil_machine_button.vue @@ -229,7 +229,7 @@ import crud from '@/mixins/crud' import deviceCrud from '@/api/acs/device/device' export default { - name: 'WithStationDeviceDriver', + name: 'GreenFoilMachineButton', mixins: [crud], props: { parentForm: { diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/inflatable_shaft_library.vue b/acs2/nladmin-ui/src/views/acs/device/driver/inflatable_shaft_library.vue new file mode 100644 index 000000000..883086f09 --- /dev/null +++ b/acs2/nladmin-ui/src/views/acs/device/driver/inflatable_shaft_library.vue @@ -0,0 +1,667 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/pull_head_manipulator.vue b/acs2/nladmin-ui/src/views/acs/device/driver/pull_head_manipulator.vue new file mode 100644 index 000000000..b11589321 --- /dev/null +++ b/acs2/nladmin-ui/src/views/acs/device/driver/pull_head_manipulator.vue @@ -0,0 +1,546 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/pull_tail_manipulator.vue b/acs2/nladmin-ui/src/views/acs/device/driver/pull_tail_manipulator.vue new file mode 100644 index 000000000..2281bea74 --- /dev/null +++ b/acs2/nladmin-ui/src/views/acs/device/driver/pull_tail_manipulator.vue @@ -0,0 +1,546 @@ + + + + + diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/slit_two_manipulator.vue b/acs2/nladmin-ui/src/views/acs/device/driver/slit_two_manipulator.vue index f59390634..3325b736d 100644 --- a/acs2/nladmin-ui/src/views/acs/device/driver/slit_two_manipulator.vue +++ b/acs2/nladmin-ui/src/views/acs/device/driver/slit_two_manipulator.vue @@ -101,6 +101,8 @@ - + - + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + +
+ +
+ 设备协议: +
+ + + + OpcServer: + + + + + + PLC: + + + + + + +
+ + +
+ 输送系统: +
+ + + + + + + + + +
+ + +
+ 指令相关: +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ AGV相关: +
+ + + + + + + + + + + + + + +
+ + +
+ PLC读取字段: +
+ + + + + + + + + + + + + + +
+ + +
+ PLC写入字段: +
+ + + + + + + + + + + + + + + + + + +
+ + +
+ + 保存 + +
+
+ +
+ + + + +