This commit is contained in:
2022-12-29 23:05:28 +08:00
parent 3e2f71595a
commit f741e2eed5
7 changed files with 92 additions and 56 deletions

View File

@@ -273,13 +273,13 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver();
hongXiangConveyorDeviceDriver.writing("to_close_door", "1");
if(StrUtil.isNotEmpty(taskDto.getOven_time())){
if (StrUtil.isNotEmpty(taskDto.getOven_time())) {
//下发烘箱时间
int time = Integer.parseInt(taskDto.getOven_time());
int hours = (time % (60 * 60 * 24)) / (60 * 60);
int minutes = (time % (60 * 60)) / 60;
hongXiangConveyorDeviceDriver.writing("to_time_house",String.valueOf(hours));
hongXiangConveyorDeviceDriver.writing("to_time_min",String.valueOf(minutes));
hongXiangConveyorDeviceDriver.writing("to_time_house", String.valueOf(hours));
hongXiangConveyorDeviceDriver.writing("to_time_min", String.valueOf(minutes));
}
}
this.writing("to_command", "5");
@@ -298,6 +298,8 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
}
} catch (Exception var17) {
feedMessage = var17.getMessage();
logServer.deviceExecuteLog(this.getDevice_code(), "", "", "读取信号值时出现异常:" + var17.getMessage());
return;
}
@@ -326,6 +328,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
//行架机械手申请任务
if (mode == 2 && move == 0 && task == 0 && !requireSucess) {
applyTask();
notCreateInstMessage = "";
notCreateTaskMessage = "";
feedMessage = "";
} else {
if (!requireSucess) {
String remark = "";
@@ -390,9 +395,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
String start_device_code = instruction.getStart_device_code();
String next_device_code = instruction.getNext_device_code();
//判断关联的同一列烘箱设备是否都关门 都关门返回false有一个不关门就返回true
boolean isCloseDoor = this.judgeCloseDoor(start_device_code,next_device_code);
boolean isCloseDoor = this.judgeCloseDoor(start_device_code, next_device_code);
//未关门结束
if (isCloseDoor){
if (isCloseDoor) {
return false;
}
instruction.setInstruction_status("1");
@@ -458,9 +463,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
instdto.setExecute_device_code(start_point_code);
//判断关联的同一列烘箱设备是否都关门 都关门返回false有一个不关门就返回true
boolean isCloseDoor = this.judgeCloseDoor(instdto.getStart_device_code(),instdto.getNext_device_code());
boolean isCloseDoor = this.judgeCloseDoor(instdto.getStart_device_code(), instdto.getNext_device_code());
//如果未关门结束
if (isCloseDoor){
if (isCloseDoor) {
return false;
}
@@ -493,9 +498,9 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
this.writing("to_task", instdto.getInstruction_code());
this.writing("to_command", "1");
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
if(nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver){
if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) device.getDeviceDriver();
hongXiangConveyorDeviceDriver.writing("to_open","1");
hongXiangConveyorDeviceDriver.writing("to_open", "1");
}
this.setNow_steps_type(2);
this.setRequireSucess(true);
@@ -525,7 +530,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
Server server = ReadUtil.getServer(opcservcerid);
Map<String, Object> itemMap = new HashMap<String, Object>();
itemMap.put(to_param, value);
itemMap.put(to_param, Integer.parseInt(value));
// itemMap.put(to_param, Integer.parseInt(value));
ReadUtil.write(itemMap, server);
}
@@ -535,48 +540,66 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
}
//判断取货位或放货位为烘箱设备时关联的同一列烘箱设备是否有开门
public boolean judgeCloseDoor(String start_device_code,String next_device_code) {
public boolean judgeCloseDoor(String start_device_code, String next_device_code) {
Boolean isClose = false;
Device startDevice = deviceAppService.findDeviceByCode(start_device_code);
Device nextDevice = deviceAppService.findDeviceByCode(next_device_code);
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
if (startDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startDevice.getDeviceDriver();
List<String> deviceCodes = hongXiangConveyorDeviceDriver.getExtraDeviceCodes("link_device_code");
if (ObjectUtil.isNotEmpty(deviceCodes)) {
for (String deviceCode : deviceCodes) {
Device linkDevice = deviceAppService.findDeviceByCode(deviceCode);
if (linkDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) linkDevice.getDeviceDriver();
//判断关联设备是否开门
if (hongXiangConveyorDeviceDriver.getDoor() == 1) {
isClose = true;
notCreateInstMessage = start_device_code + "关联设备->" + deviceCode + "烘箱门未关闭!";
break;
try {
Device startDevice = deviceAppService.findDeviceByCode(start_device_code);
Device nextDevice = deviceAppService.findDeviceByCode(next_device_code);
HongXiangConveyorDeviceDriver hongXiangConveyorDeviceDriver;
if (ObjectUtil.isEmpty(startDevice)) {
throw new BadRequestException("设备号:" + start_device_code + "不存在!");
}
if (startDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) startDevice.getDeviceDriver();
List<String> deviceCodes = hongXiangConveyorDeviceDriver.getExtraDeviceCodes("link_device_code");
if (ObjectUtil.isNotEmpty(deviceCodes)) {
for (String deviceCode : deviceCodes) {
Device linkDevice = deviceAppService.findDeviceByCode(deviceCode);
if (ObjectUtil.isEmpty(linkDevice)) {
throw new BadRequestException("设备:" + start_device_code + "关联设备->" + deviceCode + "为空!");
}
if (linkDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) linkDevice.getDeviceDriver();
//判断关联设备是否开门
if (hongXiangConveyorDeviceDriver.getDoor() == 1) {
isClose = true;
notCreateInstMessage = start_device_code + "关联设备->" + deviceCode + "烘箱门未关闭!";
break;
}
}
}
return isClose;
}
return isClose;
}
}
if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver();
List<String> deviceCodes = hongXiangConveyorDeviceDriver.getExtraDeviceCodes("link_device_code");
if (ObjectUtil.isNotEmpty(deviceCodes)) {
for (String deviceCode : deviceCodes) {
Device linkDevice = deviceAppService.findDeviceByCode(deviceCode);
if (linkDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) linkDevice.getDeviceDriver();
//判断关联设备是否开门
if (hongXiangConveyorDeviceDriver.getDoor() == 1) {
isClose = true;
notCreateInstMessage = next_device_code + "关联设备->" + deviceCode + "烘箱门未关闭!";
break;
if (ObjectUtil.isEmpty(nextDevice)) {
throw new BadRequestException("设备号:" + next_device_code + "不存在!");
}
if (nextDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) nextDevice.getDeviceDriver();
List<String> deviceCodes = hongXiangConveyorDeviceDriver.getExtraDeviceCodes("link_device_code");
if (ObjectUtil.isNotEmpty(deviceCodes)) {
for (String deviceCode : deviceCodes) {
Device linkDevice = deviceAppService.findDeviceByCode(deviceCode);
if (ObjectUtil.isEmpty(linkDevice)) {
throw new BadRequestException("设备:" + next_device_code + "关联设备->" + deviceCode + "为空!");
}
if (linkDevice.getDeviceDriver() instanceof HongXiangConveyorDeviceDriver) {
hongXiangConveyorDeviceDriver = (HongXiangConveyorDeviceDriver) linkDevice.getDeviceDriver();
//判断关联设备是否开门
if (hongXiangConveyorDeviceDriver.getDoor() == 1) {
isClose = true;
notCreateInstMessage = next_device_code + "关联设备->" + deviceCode + "烘箱门未关闭!";
break;
}
}
}
return isClose;
}
return isClose;
}
} catch (Exception e) {
isClose = true;
notCreateInstMessage = "检查烘箱是否关门时出现异常:" + e.getMessage();
}
return isClose;
}
@@ -592,7 +615,7 @@ public class OvenGantryManipulatorDeviceDriver extends AbstractOpcDeviceDriver i
//将扩展表中的字符串数据转换成集合
public List<String> getExtraDeviceCodes(String extraName) {
String extraValue = (String) this.getDevice().getExtraValue().get(extraName);
if (StrUtil.isEmpty(extraValue)){
if (StrUtil.isEmpty(extraValue)) {
return new ArrayList<>();
}
String devicesString = extraValue.substring(1, extraValue.length() - 1);

View File

@@ -214,6 +214,8 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
}
} catch (Exception var17) {
inst_message = var17.getMessage();
logServer.deviceExecuteLog(this.getDevice_code(), "", "", "读取信号值时出现异常:" + var17.getMessage());
return;
}
@@ -526,7 +528,9 @@ public class SiemensConveyorDeviceDriver extends AbstractOpcDeviceDriver impleme
this.writing("to_target", next_addr);
this.writing("to_task", instdto.getInstruction_code());
this.writing("to_command", "1");
this.writing("to_task", instdto.getInstruction_code());
this.writing("to_target", next_addr);
this.writing("to_command", "1");
}
return true;
}

View File

@@ -290,7 +290,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
Device startDevice = deviceAppservice.findDeviceByCode(start_device_code);
if (ObjectUtil.isEmpty(startDevice)) {
feedMessage = "后工位取货位:" + start_device_code + "为空!";
return;
logServer.deviceExecuteLog(this.getDeviceCode(), "", "", "后工位取货位:" + start_device_code + "为空!");
throw new BadRequestException("后工位取货位:" + start_device_code + "为空!");
}
SiemensConveyorDeviceDriver siemensConveyorDeviceDriver;
if (startDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) {
@@ -435,7 +436,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code);
if (ObjectUtil.isEmpty(nextDevice)) {
feedMessage = "前工位放货位:" + next_device_code + "为空!";
return;
throw new BadRequestException("前工位放货位:" + next_device_code + "为空!");
}
SiemensConveyorDeviceDriver siemensConveyorDeviceDriver;
if (nextDevice.getDeviceDriver() instanceof SiemensConveyorDeviceDriver) {
@@ -529,6 +530,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
} catch (Exception var17) {
feedMessage = var17.getMessage();
logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17.getMessage());
return;
}
@@ -579,6 +582,8 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
//没有生成异常取放货工位的任务 就生成正常关联取放货工位的任务
instruction_require();
feedMessage = "";
notCreateInstMessage = "";
notCreateTaskMessage = "";
logServer.deviceExecuteLog(device_code, "", String.valueOf(task1), "move2:" + move2 + ",action2:" + action2 + ",move1:" + move1 + ",action1:" + action1 + ",requireSucess:" + requireSucess);
} else {
// if (!requireSucess) {
@@ -1023,7 +1028,7 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl
String opcservcerid = this.getDevice().getOpc_server_id();
Server server = ReadUtil.getServer(opcservcerid);
Map<String, Object> itemMap = new HashMap<String, Object>();
itemMap.put(to_param, value);
itemMap.put(to_param, Integer.parseInt(value));
ReadUtil.write(itemMap, server);
}