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)
}
}
}