Browse Source

add 反馈设备状态

master
汪菘 1 year ago
parent
commit
e450c3de95
  1. 5
      acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java
  2. 4
      acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java
  3. 33
      acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java
  4. 16
      acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java
  5. 20
      acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java
  6. 83
      acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/ToAgvDevice.java
  7. 4
      acs/nladmin-system/src/main/resources/config/application-dev.yml
  8. 2
      acs/nladmin-system/src/main/resources/config/application-prod.yml
  9. 2
      acs/nladmin-system/src/main/resources/config/application.yml

5
acs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java

@ -65,7 +65,7 @@ public class NDCAgvServiceImpl implements NDCAgvService {
}; };
log.info("下发删除AGV指令--{}", Bytes2HexString(b)); log.info("下发删除AGV指令--{}", Bytes2HexString(b));
// NDCSocketConnectionAutoRun.write(b); OneNDCSocketConnectionAutoRun.write(b);
System.out.println("下发删除agv指令数据:" + Bytes2HexString(b)); System.out.println("下发删除agv指令数据:" + Bytes2HexString(b));
} }
@ -146,6 +146,7 @@ public class NDCAgvServiceImpl implements NDCAgvService {
(byte) fhghigh, (byte) fhglow (byte) fhghigh, (byte) fhglow
}; };
log.info("下发AGV作业指令--{}", str1); log.info("下发AGV作业指令--{}", str1);
log.info("下发agv指令数据{}" ,Bytes2HexString(b));
OneNDCSocketConnectionAutoRun.write(b); OneNDCSocketConnectionAutoRun.write(b);
System.out.println("下发agv指令数据:" + Bytes2HexString(b)); System.out.println("下发agv指令数据:" + Bytes2HexString(b));
} }
@ -167,7 +168,7 @@ public class NDCAgvServiceImpl implements NDCAgvService {
(byte) 0X00, (byte) 0X6D, (byte) 0X00, (byte) 0X6D,
(byte) 0X00, (byte) 0X06, (byte) 0X00, (byte) 0X06,
(byte) indexhigh, (byte) indexlow, (byte) indexhigh, (byte) indexlow,
(byte) 0X01, (byte) 0X12, (byte) 0X01, (byte) 0X14,
(byte) phasehigh, (byte) phaselow (byte) phasehigh, (byte) phaselow
}; };

4
acs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java

@ -187,8 +187,8 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable {
} else { } else {
//上报异常信息 //上报异常信息
//(不需要WCS反馈) //(不需要WCS反馈)
if (phase == 0x67) { if (phase == 0x67 || phase == 0x70 || phase == 0x71 || phase == 0x72 || phase == 0x73 || phase == 0x74 ) {
device = deviceAppService.findDeviceByCode(Integer.toString(arr[27])); device = deviceAppService.findDeviceByCode(Integer.toString(arr[18] * 256 + arr[19]));
} else { } else {
device = deviceAppService.findDeviceByCode(Integer.toString(arr[20])); device = deviceAppService.findDeviceByCode(Integer.toString(arr[20]));
} }

33
acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndcone/AgvNdcOneDeviceDriver.java

@ -379,6 +379,39 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic
} else if (phase == 0x51) {//离开交通灯区域 } else if (phase == 0x51) {//离开交通灯区域
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0); data = NDCAgvService.sendAgvOneModeInst(phase, index, 0);
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data);
} else if (phase == 0x67) {//agv异常
// if (ikey == 0) {
// this.setErrorInfo(ikey, "0", "正常");
// } else {
// Map<String, String> error = ErrorUtil.getAgvErrorMsg(ikey);
// String code = error.get("code");
// String info = error.get("info");
// this.setErrorInfo(ikey, code, info);
// }
// if (error != last_error) {
// DeviceErrorLogDto dto = new DeviceErrorLogDto();
// dto.setDevice_code(this.getDevice().getDevice_code());
// dto.setError_code(String.valueOf(error_code));
// dto.setError_info(error_message);
// deviceErrorLogService.create(dto);
// }
data = NDCAgvService.sendAgvOneModeInst(phase, index, 0);
last_error = error;
} else if (phase == 0x70) {
//x坐标
x = ikey;
} else if (phase == 0x71) {
//y坐标
y = ikey;
} else if (phase == 0x72) {
//车辆角度
angle = ikey;
} else if (phase == 0x73) {
//agv电量
electric_qty = ikey;
} else if (phase == 0x74) {
//三色灯状态
status = ikey;
} }
if (!ObjectUtil.isEmpty(data)) { if (!ObjectUtil.isEmpty(data)) {
logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data); logServer.deviceExecuteLog(this.device_code, "", "", "agvphase:" + phase + "反馈:" + data);

16
acs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java

@ -360,22 +360,10 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu
if (ObjectUtil.isEmpty(route)) { if (ObjectUtil.isEmpty(route)) {
throw new BadRequestException("未查询到相关路由!"); throw new BadRequestException("未查询到相关路由!");
} }
if (StrUtil.equals(shortPathsList.get(0).getType(), "1")) {
// 0为输送、立库任务 1 1楼叉车系统 2 2楼1区域AGV系统 3 2楼2区域AGV系统
if (!StrUtil.equals(task.getAgv_system_type(), "0")
&& ObjectUtil.isNotEmpty(task.getAgv_system_type())) {
NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class); NDCAgvService ndcAgvService = SpringContextHolder.getBean(NDCAgvService.class);
ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto); ndcAgvService.sendAgvInstToNDC(task.getAgv_system_type(), dto);
} else {
// Boolean result = createLkInst(task.getStorage_task_type(),dto);
Resp resp = acsToLiKuService.sendInst(task.getStorage_task_type(), dto);
if (StrUtil.equals(resp.result, "true")) {
dto.setSend_status("1");
} else {
dto.setSend_status("2");
}
}
}
} catch (Exception e) { } catch (Exception e) {
dto.setSend_status("2"); dto.setSend_status("2");
e.printStackTrace(); e.printStackTrace();

20
acs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java

@ -445,6 +445,12 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
task_code = CodeUtil.getNewCode("TASK_NO"); task_code = CodeUtil.getNewCode("TASK_NO");
task_code = "-" + task_code; task_code = "-" + task_code;
} }
if(ObjectUtil.isEmpty(dto.getStart_height())){
dto.setStart_height("0");
}
if(ObjectUtil.isEmpty(dto.getNext_height())){
dto.setNext_height("0");
}
String start_point_code = dto.getStart_point_code(); String start_point_code = dto.getStart_point_code();
String next_point_code = dto.getNext_point_code(); String next_point_code = dto.getNext_point_code();
String start_device_code = dto.getStart_device_code(); String start_device_code = dto.getStart_device_code();
@ -492,15 +498,6 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
} }
if (StrUtil.equals(DeviceType.conveyor.toString(), nextDeviceType)) { if (StrUtil.equals(DeviceType.conveyor.toString(), nextDeviceType)) {
// if (nextdevice.getDeviceDriver() instanceof
// StandardOrdinarySiteDeviceDriver) {
// standardOrdinarySiteDeviceDriver = (StandardOrdinarySiteDeviceDriver)
// nextdevice.getDeviceDriver();
// if (nextdevice.getHas_goods() != 0) {
// throw new Exception("任务终点需满足无货!");
// }
// }
JSONObject jo = new JSONObject(); JSONObject jo = new JSONObject();
JSONObject jo2 = new JSONObject(); JSONObject jo2 = new JSONObject();
if (!StrUtil.isEmpty(dto.getMaterial())) { if (!StrUtil.isEmpty(dto.getMaterial())) {
@ -538,12 +535,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial {
wo.insert(json); wo.insert(json);
synchronized (TaskServiceImpl.class) { synchronized (TaskServiceImpl.class) {
System.out.println("-------------------" + dto.getTask_code());
System.out.println("-------------1" + tasks.size());
tasks.add(dto); tasks.add(dto);
System.out.println("-------------2" + tasks.size());
} }
} }

83
acs/nladmin-system/src/main/java/org/nl/modules/quartz/task/ToAgvDevice.java

@ -36,41 +36,74 @@ public class ToAgvDevice {
for (AgvDto agvDto : agv_map.values()) { for (AgvDto agvDto : agv_map.values()) {
row.put("device_code", agvDto.getName()); row.put("device_code", agvDto.getName());
row.put("energyLevel", agvDto.getEnergyLevel()); row.put("energyLevel", agvDto.getEnergyLevel());
if (agvDto.getState().equals("UNKNOWN")) { // 车状态:
// 1:关机
// 2:运行中
// 3:交通管制
// 4:任务等待
// 5:充电中
// 6:故障中
// 7:低电量
if (agvDto.getState().equals("1")) {
row.put("device_status", "UNKNOWN");
row.put("status_name", "关机");
} else if (agvDto.getState().equals("2")) {
row.put("device_status", "EXECUTING");
row.put("status_name", "有任务"); row.put("status_name", "有任务");
row.put("flag", "1"); } else if (agvDto.getState().equals("3")) {
} // row.put("device_status", "EXECUTING");
if (agvDto.getState().equals("UNAVAILABLE")) { // row.put("status_name", "交通管制");
row.put("status_name", "网络异常"); } else if (agvDto.getState().equals("4")) {
row.put("flag", "1"); row.put("device_status", "IDLE");
}
if (agvDto.getState().equals("ERROR")) {
row.put("status_name", "机器错误");
row.put("flag", "1");
}
if (agvDto.getState().equals("IDLE")) {
row.put("status_name", "空闲"); row.put("status_name", "空闲");
row.put("flag", "0"); } else if (agvDto.getState().equals("5")) {
} row.put("device_status", "CHARGING");
if (agvDto.getState().equals("EXECUTING")) { row.put("status_name", "充电");
row.put("status_name", "运行中"); } else if (agvDto.getState().equals("6")) {
row.put("flag", "0"); row.put("device_status", "ERROR");
} row.put("status_name", "故障");
if (agvDto.getState().equals("CHARGING")) { } else if (agvDto.getState().equals("7")) {
row.put("status_name", "充电中"); // row.put("device_status", "ERROR");
row.put("flag", "0"); // row.put("status_name", "低电量");
} }
// if (agvDto.getState().equals("UNKNOWN")) {
// row.put("status_name", "有任务");
// row.put("status_name", "有任务");
// row.put("flag", "1");
// }
// if (agvDto.getState().equals("UNAVAILABLE")) {
// row.put("status_name", "网络异常");
// row.put("flag", "1");
// }
// if (agvDto.getState().equals("ERROR")) {
// row.put("status_name", "机器错误");
// row.put("flag", "1");
// }
// if (agvDto.getState().equals("IDLE")) {
// row.put("status_name", "空闲");
// row.put("flag", "0");
// }
// if (agvDto.getState().equals("EXECUTING")) {
// row.put("status_name", "运行中");
// row.put("flag", "0");
// }
// if (agvDto.getState().equals("CHARGING")) {
// row.put("status_name", "充电中");
// row.put("flag", "0");
// }
row.put("transportOrder", agvDto.getTransportOrder()); row.put("transportOrder", agvDto.getTransportOrder());
row.put("positionX", agvDto.getPositionX()); row.put("positionX", agvDto.getPositionX());
row.put("positionY", agvDto.getPositionY()); row.put("positionY", agvDto.getPositionY());
row.put("positionAngle", agvDto.getPositionAngle()); row.put("positionAngle", agvDto.getPositionAngle());
agv_rows.add(row); agv_rows.add(row);
} }
json.put("agv_rows", agv_rows); // json.put("agv_rows", agv_rows);
SocketMsg deviceInfo = new SocketMsg(json, MsgType.INFO); // SocketMsg deviceInfo = new SocketMsg(json, MsgType.INFO);
WebSocketServer.sendInfo(deviceInfo, "toAgvDevice_data"); // WebSocketServer.sendInfo(deviceInfo, "toAgvDevice_data");
// acsToWmsService.feedbackAgv(row); acsToWmsService.feedbackAgv(agv_rows);
} }
} }

4
acs/nladmin-system/src/main/resources/config/application-dev.yml

@ -13,11 +13,11 @@ spring:
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
# url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true # url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
# url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:lzhl_one_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true # url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:lzhl_one_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true
url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:wzgj_acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:weidaqi}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
username: ${DB_USER:root} username: ${DB_USER:root}
# password: ${DB_PWD:P@ssw0rd} # password: ${DB_PWD:P@ssw0rd}
# password: ${DB_PWD:Root.123456} # password: ${DB_PWD:Root.123456}
password: ${DB_PWD:password} password: ${DB_PWD:123456}
# 初始连接数 # 初始连接数
initial-size: 5 initial-size: 5

2
acs/nladmin-system/src/main/resources/config/application-prod.yml

@ -11,7 +11,7 @@ spring:
druid: druid:
db-type: com.alibaba.druid.pool.DruidDataSource db-type: com.alibaba.druid.pool.DruidDataSource
driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:weidaqi}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true&allowPublicKeyRetrieval=true
username: ${DB_USER:root} username: ${DB_USER:root}
password: ${DB_PWD:123456} password: ${DB_PWD:123456}
# 初始连接数 # 初始连接数

2
acs/nladmin-system/src/main/resources/config/application.yml

@ -2,7 +2,7 @@ spring:
freemarker: freemarker:
check-template-location: false check-template-location: false
profiles: profiles:
active: dev active: prod
jackson: jackson:
time-zone: GMT+8 time-zone: GMT+8
data: data:

Loading…
Cancel
Save