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

View File

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

View File

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

View File

@@ -53,7 +53,7 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="电气调度号" label-width="150px"> <el-form-item label="电气调度号" label-width="150px">
<el-input v-model="form.OPCServer" /> <el-input v-model="form.address" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -298,7 +298,8 @@ export default {
manual_create_task: true, manual_create_task: true,
is_pickup: true, is_pickup: true,
is_release: true, is_release: true,
link_device_code: [] link_device_code: [],
address: ''
}, },
rules: {} rules: {}
} }

View File

@@ -52,7 +52,7 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="电气调度号" label-width="150px"> <el-form-item label="电气调度号" label-width="150px">
<el-input v-model="form.OPCServer" /> <el-input v-model="form.address" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -297,7 +297,8 @@ export default {
manual_create_task: true, manual_create_task: true,
is_pickup: true, is_pickup: true,
is_release: true, is_release: true,
link_device_code: [] link_device_code: [],
address: ''
}, },
rules: {} rules: {}
} }

View File

@@ -52,7 +52,7 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="电气调度号" label-width="150px"> <el-form-item label="电气调度号" label-width="150px">
<el-input v-model="form.OPCServer" /> <el-input v-model="form.address" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -297,7 +297,8 @@ export default {
manual_create_task: true, manual_create_task: true,
is_pickup: true, is_pickup: true,
is_release: true, is_release: true,
link_device_code: [] link_device_code: [],
address: ''
}, },
rules: {} rules: {}
} }

View File

@@ -52,7 +52,7 @@
<el-row> <el-row>
<el-col :span="8"> <el-col :span="8">
<el-form-item label="电气调度号" label-width="150px"> <el-form-item label="电气调度号" label-width="150px">
<el-input v-model="form.OPCServer" /> <el-input v-model="form.address" />
</el-form-item> </el-form-item>
</el-col> </el-col>
</el-row> </el-row>
@@ -297,7 +297,8 @@ export default {
manual_create_task: true, manual_create_task: true,
is_pickup: true, is_pickup: true,
is_release: true, is_release: true,
link_device_code: [] link_device_code: [],
address: ''
}, },
rules: {} rules: {}
} }