From a429621f46f543d3e26f7b86fef69e0974f7f281 Mon Sep 17 00:00:00 2001 From: "USER-20220102CG\\noblelift" <546428999@qq.com> Date: Thu, 1 Jun 2023 09:48:21 +0800 Subject: [PATCH] =?UTF-8?q?fix=20agv=E7=8A=B6=E6=80=81=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agv/ndcone/AgvNdcOneDeviceDriver.java | 6 + .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 58 +- .../basedriver/agv/utils/OneAgvPhase.java | 18 +- .../basedriver/agv/utils/TwoAgvPhase.java | 66 +- .../SiemensConveyorDeviceDriver.java | 43 +- .../src/views/acs/monitor/device/index.vue | 571 ------------------ .../src/views/system/monitor/device/index.vue | 32 +- 7 files changed, 114 insertions(+), 680 deletions(-) diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java index 8d2af4734..65bb8d07a 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -11,6 +11,7 @@ import org.nl.acs.auto.run.OneNDCSocketConnectionAutoRun; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.FeedLmsRealFailed; +import org.nl.acs.device_driver.basedriver.agv.utils.OneAgvPhase; import org.nl.acs.device_driver.basedriver.siemens_conveyor.SiemensConveyorDeviceDriver; import org.nl.acs.device_driver.basedriver.siemens_onefloor_agv_conveyor.SiemensOneFloorAGVConveyorDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_ordinary_site.StandardOrdinarySiteDeviceDriver; @@ -57,6 +58,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); + OneAgvPhase oneAgvPhase = new OneAgvPhase(); + int agvaddr = 0; int agvaddr_copy = 0; int weight = 0; @@ -451,6 +454,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic status = ikey; } if (!ObjectUtil.isEmpty(data)) { + phase = 0; logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + Bytes2HexString(data)); OneNDCSocketConnectionAutoRun.write(data); } @@ -483,6 +487,8 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic jo.put("y", this.getY()); //角度 jo.put("angle", this.getAngle()); + jo.put("phase", phase); + jo.put("phase_name", oneAgvPhase.getPhaseName(phase)); //电量 jo.put("electricity", this.getElectric_qty()); String status_name = this.status == 1 ? "关机" : this.status == 2 ? "工作中" : this.status == 3 ? "交通管制" : this.status == 4 ? "任务等待" : this.status == 5 ? "充电中" : this.status == 6 ? "故障中" : this.status == 7 ? "电量低" : "正常"; diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index ee99e3442..edfa702ee 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -12,6 +12,8 @@ import org.nl.acs.auto.run.TwoNDCSocketConnectionAutoRun; import org.nl.acs.device.service.DeviceService; import org.nl.acs.device_driver.DeviceDriver; import org.nl.acs.device_driver.FeedLmsRealFailed; +import org.nl.acs.device_driver.basedriver.agv.utils.OneAgvPhase; +import org.nl.acs.device_driver.basedriver.agv.utils.TwoAgvPhase; import org.nl.acs.device_driver.basedriver.photoelectric_inspection_site.PhotoelectricInspectionSiteDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_autodoor.StandardAutodoorDeviceDriver; import org.nl.acs.device_driver.basedriver.standard_inspect_site.StandardInspectSiteDeviceDriver; @@ -59,6 +61,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic DeviceAppService deviceAppService = SpringContextHolder.getBean(DeviceAppService.class); DeviceService deviceService = SpringContextHolder.getBean(DeviceService.class); DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); + TwoAgvPhase twoAgvPhase = new TwoAgvPhase(); String error_code = "0"; int agvaddr = 0; @@ -712,6 +715,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic } if (!ObjectUtil.isEmpty(data)) { + phase =0; logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + Bytes2HexString(data)); if (StrUtil.equals(inst.getAgv_system_type(), "2")) { TwoNDCSocketConnectionAutoRun.write(data); @@ -748,8 +752,10 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic jo.put("y", this.getY()); //角度 jo.put("angle", this.getAngle()); + jo.put("phase", phase); + jo.put("phase_name", twoAgvPhase.getPhaseName(phase)); //电量 - jo.put("electricity", this.getDevice().getDevice_code().equals("2") ? "98" : "88.5"); + jo.put("electricity", this.getElectric_qty()); String status_name = this.status == 1 ? "关机" : this.status == 2 ? "工作中" : this.status == 3 ? "交通管制" : this.status == 4 ? "任务等待" : this.status == 5 ? "充电中" : this.status == 6 ? "故障中" : this.status == 7 ? "电量低" : "正常"; //agv状态 jo.put("status_name", status_name); @@ -758,56 +764,6 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic //异常 jo.put("fault", this.getError_message()); return jo; -// JSONObject jo = new JSONObject(); -// String mode = ""; -// String action = ""; -// String phase = ""; -// if (this.getMode() == 0) { -// mode = "未联机"; -// } else if (this.getMode() == 1) { -// mode = "联机"; -// } else if (this.getMode() == 2) { -// mode = "联机"; -// } -// -// if (this.getPhase() == 0) { -// phase = "无任务"; -// } else if (this.getPhase() == 1) { -// phase = "1 0X01 开始任务"; -// } else if (this.getPhase() == 2) { -// phase = "2 0X02 分配车号"; -// } else if (this.getPhase() == 3) { -// phase = "3 0X03 到达取货点1"; -// } else if (this.getPhase() == 5) { -// phase = "5 0X05 取货点1请求离开"; -// } else if (this.getPhase() == 8) { -// phase = "8 0X08 到达取货点2"; -// } else if (this.getPhase() == 10) { -// phase = "10 0X0A 取货点2请求离开"; -// } else if (this.getPhase() == 12) { -// phase = "12 0X0C 到达放货点"; -// } else if (this.getPhase() == 14) { -// phase = "14 0X0E 放货完成"; -// } else if (this.getPhase() == 16) { -// phase = "16 0X10 到达放货点"; -// } else if (this.getPhase() == 18) { -// phase = "18 0X12 放货完成"; -// } else if (this.getPhase() == 20) { -// phase = "20 0X14 任务完毕"; -// } else if (this.getPhase() == 100) { -// phase = "100 0X64 上报称重"; -// } -// jo.put("phase", phase); -// jo.put("isOnline", true); -// jo.put("error", this.getError()); -// jo.put("isError", this.getIserror()); -// jo.put("message", this.getMessage()); -// jo.put("agv_power", this.getAgv_power()); -// -// jo.put("device_name", this.getDevice().getDevice_name()); -// jo.put("mode", mode); -// jo.put("action", action); -// return jo; } @Override diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/utils/OneAgvPhase.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/utils/OneAgvPhase.java index 4a1586d0f..118f719b7 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/utils/OneAgvPhase.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/utils/OneAgvPhase.java @@ -6,7 +6,9 @@ import org.springframework.stereotype.Service; public class OneAgvPhase implements IAgv{ @Override public String getPhaseName(Integer phase) { - if (phase == 0x01) { + if (phase == 0x00) { + return "无请求"; + } else if (phase == 0x01) { return "开始任务/上报订单号"; } else if (phase == 0x02){ return "分配车id"; @@ -28,6 +30,20 @@ public class OneAgvPhase implements IAgv{ return "到达位置点"; } else if (phase == 0x65){ return "称重就绪"; + } else if (phase == 0x50){ + return "请求开门"; + } else if (phase == 0x51){ + return "请求关门"; + } else if (phase == 0x70){ + return "上报X坐标"; + } else if (phase == 0x71){ + return "上报Y坐标"; + } else if (phase == 0x72){ + return "上报角度"; + } else if (phase == 0x73){ + return "上报电量"; + } else if (phase == 0x74){ + return "上报状态"; } return null; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/utils/TwoAgvPhase.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/utils/TwoAgvPhase.java index 8d75d337e..c893243bc 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/utils/TwoAgvPhase.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/utils/TwoAgvPhase.java @@ -6,50 +6,52 @@ import org.springframework.stereotype.Service; public class TwoAgvPhase implements IAgv { @Override public String getPhaseName(Integer phase) { - if (phase == 0x01) { + if (phase == 0x00) { + return "无请求"; + } else if (phase == 0x01) { return "开始任务/上报订单号"; } else if (phase == 0x02){ return "分配车id"; } else if (phase == 0x03){ - return "到达取货点1"; + return "到达取货点"; } else if (phase == 0x05){ - return "取货点1取货完毕"; - } else if (phase == 0x07){ - return "到达取货点2"; - } else if (phase == 0x09){ - return "取货点2取货完毕"; + return "取货完毕"; + } else if (phase == 0x08){ + return "到达取货点"; } else if (phase == 0x0A){ - return "自动缓存线--到达送满框1"; - } else if (phase == 0x0B){ - return "到达倒料点1"; + return "取货完毕"; + } else if (phase == 0x64){ + return "上报重量"; } else if (phase == 0x0C){ - return "自动缓存线--送满框完毕1"; - } else if (phase == 0x0D){ - return "倒料点1倒料完毕"; + return "到达放货点"; } else if (phase == 0x0E){ - return "自动缓存线--到达取空框1"; - } else if (phase == 0x0F){ - return "到达倒料点2"; - } else if (phase == 0x11){ - return "倒料点2倒料完毕"; - } else if (phase == 0x13){ - return "到达送箱点1"; - } else if (phase == 0x15){ - return "送箱点1送箱完毕"; - } else if (phase == 0x17){ - return "到达送箱点2"; - } else if (phase == 0x19){ - return "送箱完毕/送空框完毕2"; + return "放货完成"; + } else if (phase == 0x10){ + return "到达放货点"; + } else if (phase == 0x12){ + return "放货完成"; + } else if (phase == 0x14){ + return "任务完毕"; } else if (phase == 0x30){ return "请求删除任务"; } else if (phase == 0xFF){ return "任务删除确认"; - } else if (phase == 0x64){ - return "取货完毕/取满框完毕1/点对点取货完毕"; - } else if (phase == 0x65){ - return "称重就绪"; - } else if (phase == 0x1A){ - return "任务完毕"; + } else if (phase == 0x67){ + return "上报异常信息"; + } else if (phase == 0x50){ + return "请求开门"; + } else if (phase == 0x51){ + return "请求关门"; + } else if (phase == 0x70){ + return "上报X坐标"; + } else if (phase == 0x71){ + return "上报Y坐标"; + } else if (phase == 0x72){ + return "上报角度"; + } else if (phase == 0x73){ + return "上报电量"; + } else if (phase == 0x74){ + return "上报状态"; } return null; } diff --git a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java index 853600f67..48346a162 100644 --- a/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java +++ b/acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/siemens_conveyor/SiemensConveyorDeviceDriver.java @@ -566,7 +566,9 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme } else if (StrUtil.equals(requestSucess, "1")) { this.requireSucess = true; } - this.hand_barcode = data.getString("hand_barcode"); + + String hand_barcode = data.getString("hand_barcode"); + this.setHand_barcode(hand_barcode); } @Override @@ -824,26 +826,27 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme } else { this.require_apply_strangulation_time = date; String vehicle_code = ""; - if (task > 0) { - Instruction instruction = instructionService.findByCodeFromCache(String.valueOf(task)); - if (ObjectUtil.isEmpty(instruction)) { - message = "申请捆扎电气设备任务号:" + task + "未找到对应指令"; - logServer.deviceExecuteLog(device_code, "", "", "申请捆扎电气设备任务号:" + task + "未找到对应指令"); - return; -// throw new RuntimeException("该电气任务号未找到对应指令!"); - } - vehicle_code = instruction.getVehicle_code(); + if (StrUtil.isNotEmpty(hand_barcode)) { + vehicle_code = hand_barcode; } else { - logServer.deviceExecuteLog(device_code, "", "", "申请捆扎电气设备任务号:" + task + "异常"); - message = "申请捆扎电气设备任务号:" + task + "异常"; - return; -// throw new RuntimeException("任务号为空!"); - } - if (StrUtil.isEmpty(vehicle_code)) { - logServer.deviceExecuteLog(device_code, "", "", "申请捆扎电气设备任务号:" + task + "未找到载具号"); - message = "申请捆扎电气设备任务号:" + task + "未找到载具号"; - return; -// throw new RuntimeException("载具号为空!"); + if (task > 0) { + Instruction instruction = instructionService.findByCodeFromCache(String.valueOf(task)); + if (ObjectUtil.isEmpty(instruction)) { + message = "申请捆扎电气设备任务号:" + task + "未找到对应指令"; + logServer.deviceExecuteLog(device_code, "", "", "申请捆扎电气设备任务号:" + task + "未找到对应指令"); + return; + } + vehicle_code = instruction.getVehicle_code(); + } else { + logServer.deviceExecuteLog(device_code, "", "", "申请捆扎电气设备任务号:" + task + "异常"); + message = "申请捆扎电气设备任务号:" + task + "异常"; + return; + } + if (StrUtil.isEmpty(vehicle_code)) { + logServer.deviceExecuteLog(device_code, "", "", "申请捆扎电气设备任务号:" + task + "未找到载具号"); + message = "申请捆扎电气设备任务号:" + task + "未找到载具号"; + return; + } } ApplyLabelingAndBindingRequest applyLabelingAndBindingRequest = new ApplyLabelingAndBindingRequest(); diff --git a/acs/nladmin-ui/src/views/acs/monitor/device/index.vue b/acs/nladmin-ui/src/views/acs/monitor/device/index.vue index a3530ae03..e69de29bb 100644 --- a/acs/nladmin-ui/src/views/acs/monitor/device/index.vue +++ b/acs/nladmin-ui/src/views/acs/monitor/device/index.vue @@ -1,571 +0,0 @@ - - - - - diff --git a/acs/nladmin-ui/src/views/system/monitor/device/index.vue b/acs/nladmin-ui/src/views/system/monitor/device/index.vue index 4b0f0ef85..71b477df6 100644 --- a/acs/nladmin-ui/src/views/system/monitor/device/index.vue +++ b/acs/nladmin-ui/src/views/system/monitor/device/index.vue @@ -354,11 +354,12 @@ export default { } else if (clickObj.data.driver_type === 'slit_two_manipulator') { this.dialogFormVisible4 = true } else if (clickObj.data.driver_type === 'siemens_conveyor') { - if (clickObj.data.device_name.includes('1016')) { - this.dialogFormVisible7 = true - } else { - this.dialogFormVisible5 = true - } + // if (clickObj.data.device_name.includes('1016')) { + // this.dialogFormVisible7 = true + // } else { + // this.dialogFormVisible5 = true + // } + this.dialogFormVisible7 = true } else if (clickObj.data.driver_type === 'siemens_conveyor_ckk') { this.dialogFormVisible7 = true } else if (clickObj.data.driver_type === 'standard_conveyor_control_with_scanner') { @@ -496,6 +497,9 @@ export default { } else if (val === 'phase') { const obj = { name: 'AGV交互阶段', value: data[val] } this.arr.push(obj) + } else if (val === 'phase_name') { + const obj = { name: 'AGV交互阶段说明', value: data[val] } + this.arr.push(obj) } else if (val === 'option') { const obj = { name: 'AGV动作', value: data[val] } this.arr.push(obj) @@ -568,6 +572,24 @@ export default { } else if (val === 'hand_barcode') { const obj = { name: '手补条码', value: data[val] } this.arr.push(obj) + } else if (val === 'x') { + const obj = { name: 'X坐标', value: data[val] } + this.arr.push(obj) + } else if (val === 'y') { + const obj = { name: 'Y坐标', value: data[val] } + this.arr.push(obj) + } else if (val === 'angle') { + const obj = { name: '角度', value: data[val] } + this.arr.push(obj) + } else if (val === 'electricity') { + const obj = { name: '电量', value: data[val] } + this.arr.push(obj) + } else if (val === 'status_name') { + const obj = { name: '状态', value: data[val] } + this.arr.push(obj) + } else if (val === 'fault') { + const obj = { name: '异常', value: data[val] } + this.arr.push(obj) } } }