Browse Source

add: 上下料测试,驱动类型修改

master
LISHUAI 6 months ago
parent
commit
5a08c9f11a
  1. 18
      acs/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java
  2. 3
      acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java
  3. 24
      acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/AgvConveyorDeviceDriver.java

18
acs/nladmin-system/src/main/java/org/nl/acs/agv/server/AgvWaitUtil.java

@ -121,6 +121,9 @@ public class AgvWaitUtil {
} else if (device.getDeviceDriver() instanceof StandardOrdinarySiteDevice) {
// 普通站点驱动
String message = "允许AGV取货后离开。";
this.deviceExecuteLogService.deviceExecuteLog(deviceCode, "", "", message);
flag = true;
} else if (device.getDeviceDriver() instanceof AgvConveyorDeviceDriver) {
// agv下料完成后写信号
String executeCode = task.getExecute_code();
if (StrUtil.isNotEmpty(executeCode)) {
@ -129,12 +132,13 @@ public class AgvWaitUtil {
AgvConveyorDeviceDriver driver = (AgvConveyorDeviceDriver) executeDevice.getDeviceDriver();
if ("down".equals(task.getExecute_message())) {
driver.writing("to_down_finished", 1);
this.deviceExecuteLogService.deviceExecuteLog(deviceCode, "", "", "下料完成");
log.info(deviceCode, "", "", "下料完成");
}
}
flag = true;
}else {
log.info(deviceCode, "", "", "执行设备不是agv上下料驱动");
}
this.deviceExecuteLogService.deviceExecuteLog(deviceCode, "", "", message);
flag = true;
} else {
flag = true;
}
@ -321,6 +325,7 @@ public class AgvWaitUtil {
WQLObject.getWQLObject("acs_device_runpoint").update(rpUpdate, "device_code = '" + deviceCode + "'");
}
}
} else if (device.getDeviceDriver() instanceof AgvConveyorDeviceDriver) {
// agv上料完成后写信号
String executeCode = task.getExecute_code();
if (StrUtil.isNotEmpty(executeCode)) {
@ -329,12 +334,13 @@ public class AgvWaitUtil {
AgvConveyorDeviceDriver driver = (AgvConveyorDeviceDriver) executeDevice.getDeviceDriver();
if ("up".equals(task.getExecute_message())) {
driver.writing("to_up_finished", 1);
this.deviceExecuteLogService.deviceExecuteLog(deviceCode, "", "", "上料完成");
log.info(deviceCode, "", "", "上料完成");
}
}
flag = true;
}else {
log.info(deviceCode, "", "", "执行设备不是agv上下料驱动");
}
flag = true;
} else {
flag = true;
}

3
acs/nladmin-system/src/main/java/org/nl/acs/device/device_driver/DriverTypeEnum.java

@ -12,8 +12,7 @@ public enum DriverTypeEnum {
ORDINARY_SITE(1, "standard_ordinary_site", "普通站点", "station"),
NL4_STATION(2, "nl4_station", "诺力四期-对接位", "station"),
AGV_CONVEYOR(3, "agv_conveyor", "上下料任务管理驱动", "conveyor"),
STANDAR_ORDINARY_SITE(4, "standard_ordinary_site", "上下料agv对接位", "conveyor");
STANDAR_ORDINARY_SITE(3, "agv_conveyor", "上下料agv对接位", "conveyor");
//驱动索引
private int index;
//驱动编码

24
acs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv_conveyor/AgvConveyorDeviceDriver.java

@ -32,7 +32,7 @@ import org.nl.modules.wql.util.SpringContextHolder;
import java.util.*;
/**
* 货梯对接线
* AGV上料下料
*/
@Slf4j
@Getter
@ -147,6 +147,11 @@ public class AgvConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
//请求下料
if (down_request == 1){
List<TaskDto> taskDtos = taskserver.queryTaskByDeviceCodeAndStatus(on_off_site_str);
if (CollUtil.isNotEmpty(taskDtos)){
logServer.deviceExecuteLog(this.device_code, "", "", "已存在"+on_off_site_str+"为起点就绪或执行的任务");
return false;
}
String nextCode = null;
//下料点要有货,终点要无货
JSONObject json = wo.query("device_code ='" + on_off_site_str + "'").uniqueResult(0);
@ -169,11 +174,7 @@ public class AgvConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
logServer.deviceExecuteLog(this.device_code, "", "", "终点货物占满");
return false;
}
List<TaskDto> taskDtos = taskserver.queryTaskByDeviceCodeAndStatus(on_off_site_str);
if (CollUtil.isNotEmpty(taskDtos)){
logServer.deviceExecuteLog(this.device_code, "", "", "已存在"+on_off_site_str+"为起点就绪或执行的任务");
return false;
}
TaskDto taskDto = new TaskDto();
taskDto.setStart_device_code(on_off_site_str);
@ -188,6 +189,11 @@ public class AgvConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
//请求上料
if (up_request == 1){
String startCode = null;
List<TaskDto> taskDtos = taskserver.queryTaskByEndDeviceCodeAndStatus(on_off_site_str);
if (CollUtil.isNotEmpty(taskDtos)){
logServer.deviceExecuteLog(this.device_code, "", "", "已存在"+on_off_site_str+"为终点就绪或执行的任务");
return false;
}
//起点要有货,上料点要无货
JSONObject json = wo.query("device_code ='" + on_off_site_str + "'").uniqueResult(0);
if (MapUtil.isNotEmpty(json) && "1".equals(json.get("hasgoods"))){
@ -209,11 +215,7 @@ public class AgvConveyorDeviceDriver extends AbstractOpcDeviceDriver implements
logServer.deviceExecuteLog(this.device_code, "", "", "起点无货物可取或者物料类型不匹配");
return false;
}
List<TaskDto> taskDtos = taskserver.queryTaskByEndDeviceCodeAndStatus(on_off_site_str);
if (CollUtil.isNotEmpty(taskDtos)){
logServer.deviceExecuteLog(this.device_code, "", "", "已存在"+startCode+"为终点就绪或执行的任务");
return false;
}
TaskDto taskDto = new TaskDto();
taskDto.setStart_device_code(startCode);
taskDto.setNext_device_code(on_off_site_str);

Loading…
Cancel
Save