fix agv状态显示

This commit is contained in:
USER-20220102CG\noblelift
2023-06-01 09:48:21 +08:00
parent 56ae491aa1
commit a429621f46
7 changed files with 114 additions and 680 deletions

View File

@@ -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 ? "电量低" : "正常";

View File

@@ -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

View File

@@ -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;
}

View File

@@ -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;
}

View File

@@ -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();