Browse Source

add RGV任务复位

master
周俊杰 1 year ago
parent
commit
fd2c368833
  1. 106
      acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java
  2. 14
      acs/nladmin-system/src/main/resources/log/LnshRGVDeviceDriver.xml

106
acs/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java

@ -207,6 +207,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
if (mode == 2) { if (mode == 2) {
inst = null; inst = null;
this.setRequireSucess1(false); this.setRequireSucess1(false);
log.info("任务复位完成");
logServer.deviceExecuteLog(this.device_code, "", "", "模式变待机,复位前工位请求标记requireSucess1:" + requireSucess1); logServer.deviceExecuteLog(this.device_code, "", "", "模式变待机,复位前工位请求标记requireSucess1:" + requireSucess1);
} }
logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode)); logServer.deviceItemValue(this.device_code, "mode", String.valueOf(mode));
@ -227,6 +228,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
if (move1 != last_move1) { if (move1 != last_move1) {
if (move1 == 0) { if (move1 == 0) {
this.setRequireSucess1(false); this.setRequireSucess1(false);
log.info("任务复位完成");
logServer.deviceExecuteLog(this.device_code, "", "", "前工位有货变无货,复位前工位请求标记requireSucess1:" + requireSucess1); logServer.deviceExecuteLog(this.device_code, "", "", "前工位有货变无货,复位前工位请求标记requireSucess1:" + requireSucess1);
} }
logServer.deviceItemValue(this.device_code, "move1", String.valueOf(move1)); logServer.deviceItemValue(this.device_code, "move1", String.valueOf(move1));
@ -302,7 +304,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
} }
//前工位取货时判断取货位光电信号 //前工位取货时判断取货位光电信号
if (mode == 3 && error == 0 && status != 3 && action1 == 0 && move1 == 0 && task1 > 0 && action2 != 1) { if (mode == 3 && error == 0 && status != 3 && action1 == 0 && move1 == 0 && task1 > 0 && action2 == 2) {
Instruction inst1 = instructionService.findByCodeFromCache(String.valueOf(task1)); Instruction inst1 = instructionService.findByCodeFromCache(String.valueOf(task1));
String start_device_code = inst1.getStart_device_code(); String start_device_code = inst1.getStart_device_code();
Device startDevice = deviceAppservice.findDeviceByCode(start_device_code); Device startDevice = deviceAppservice.findDeviceByCode(start_device_code);
@ -342,7 +344,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
} }
//前工位放货时判断放货位光电信号 //前工位放货时判断放货位光电信号
if (mode == 3 && error == 0 && status != 3 && action1 == 2 && move1 != 0 && task1 > 0 && action2 == 3) { if (mode == 3 && error == 0 && status != 3 && action1 == 2 && move1 != 0 && task1 > 0 && action2 != 1) {
Instruction inst1 = instructionService.findByCodeFromCache(String.valueOf(task1)); Instruction inst1 = instructionService.findByCodeFromCache(String.valueOf(task1));
String next_device_code = inst1.getNext_device_code(); String next_device_code = inst1.getNext_device_code();
Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code);
@ -464,10 +466,14 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
} }
//后工位放货时判断放货位光电信号 //后工位放货时判断放货位光电信号
if (mode == 3 && error == 0 && status != 3 && action2 == 2 && move2 != 0 && task2 > 0 && action1 == 2) { if (mode == 3 && error == 0 && status != 3 && action2 == 2 && move2 != 0 && task2 > 0 && action1 != 1) {
Instruction inst1 = instructionService.findByCodeFromCache(String.valueOf(task2)); Instruction inst1 = instructionService.findByCodeFromCache(String.valueOf(task2));
String next_device_code = inst1.getNext_device_code2(); String next_parent_code = inst1.getNext_parent_code();
Device nextDevice = deviceAppservice.findDeviceByCode(next_device_code); String start_device_code=inst1.getStart_device_code();
//后工位单任务
Device nextDevice = deviceAppservice.findDeviceByCode(next_parent_code);
//双工位
Device nextDevice1 = deviceAppservice.findDeviceByCode(start_device_code);
if (nextDevice.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) { if (nextDevice.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver) {
LnshPalletizingManipulatorSiteDeviceDriver driver = (LnshPalletizingManipulatorSiteDeviceDriver) nextDevice.getDeviceDriver(); LnshPalletizingManipulatorSiteDeviceDriver driver = (LnshPalletizingManipulatorSiteDeviceDriver) nextDevice.getDeviceDriver();
if (driver.getMode() != 0 if (driver.getMode() != 0
@ -476,6 +482,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
// && (driver.getAction() == 2 || driver.getAction() == 3) // && (driver.getAction() == 2 || driver.getAction() == 3)
) { ) {
this.writing("to_command2", "2"); this.writing("to_command2", "2");
this.requireSucess1 = false;
driver.setMessage(""); driver.setMessage("");
logServer.deviceExecuteLog(nextDevice.getDevice_code(), "", "", "允许RGV后工位放货。"); logServer.deviceExecuteLog(nextDevice.getDevice_code(), "", "", "允许RGV后工位放货。");
} else { } else {
@ -497,9 +504,19 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
driver.setMessage(msg); driver.setMessage(msg);
logServer.deviceExecuteLog(device_code, "", "", msg); logServer.deviceExecuteLog(device_code, "", "", msg);
} }
} else if (nextDevice.getDeviceDriver() instanceof StandardOrdinarySiteDeviceDriver) { }
this.writing("to_command2", "2"); if(nextDevice1.getDeviceDriver() instanceof LnshPalletizingManipulatorSiteDeviceDriver){
logServer.deviceExecuteLog(nextDevice.getDevice_code(), "", "", "允许RGV后工位放货。"); LnshPalletizingManipulatorSiteDeviceDriver driver = (LnshPalletizingManipulatorSiteDeviceDriver) nextDevice1.getDeviceDriver();
if (driver.getMode() != 0
&& driver.getMove() == 0
// && (driver.getIo_action() == 1 || driver.getIo_action() == 3)
// && (driver.getAction() == 2 || driver.getAction() == 3)
) {
this.writing("to_command2", "2");
this.requireSucess1 = false;
driver.setMessage("");
logServer.deviceExecuteLog(nextDevice.getDevice_code(), "", "", "允许RGV后工位放货。");
}
} }
} }
@ -529,7 +546,9 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
log.debug("设备运转模式:等待工作"); log.debug("设备运转模式:等待工作");
return; return;
case 2: case 2:
// 申请任务 if (move1 == 0 && move2 == 0 && action1 == 0 && action2 == 0 && task1 == 0 && task2 == 0 && requireSucess1) {
log.info("没有复位");
}
if (move1 == 0 && move2 == 0 && action1 == 0 && action2 == 0 && task1 == 0 && task2 == 0 && !requireSucess1) { if (move1 == 0 && move2 == 0 && action1 == 0 && action2 == 0 && task1 == 0 && task2 == 0 && !requireSucess1) {
instruction_require(); instruction_require();
} }
@ -579,10 +598,11 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
last_to_target2 = to_target2; last_to_target2 = to_target2;
last_to_task2 = to_task2; last_to_task2 = to_task2;
last_to_container_type = to_container_type; last_to_container_type = to_container_type;
} }
//申请前工位任务 //任务申请
public synchronized boolean instruction_require() throws Exception { public synchronized boolean instruction_require() throws Exception {
Date date = new Date(); Date date = new Date();
if (date.getTime() - this.instruction_apply_time2.getTime() < (long) this.instruction_require_time_out) { if (date.getTime() - this.instruction_apply_time2.getTime() < (long) this.instruction_require_time_out) {
@ -669,6 +689,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
//下发4个点任务 //下发4个点任务
if (ObjectUtil.isNotEmpty(start_device_code2) && ObjectUtil.isNotEmpty(next_device_code2)) { if (ObjectUtil.isNotEmpty(start_device_code2) && ObjectUtil.isNotEmpty(next_device_code2)) {
sendHeadBackSignalType(instdto); sendHeadBackSignalType(instdto);
log.info("下发五点任务,指令信息()",instdto);
requireSucess1 = true; requireSucess1 = true;
logServer.deviceExecuteLog(this.device_code, "", "", "申请前后工位任务成功,requireSucess1" + requireSucess1 + ",指令号:" + instdto.getInstruction_code()); logServer.deviceExecuteLog(this.device_code, "", "", "申请前后工位任务成功,requireSucess1" + requireSucess1 + ",指令号:" + instdto.getInstruction_code());
if(ObjectUtil.isNotEmpty(start_device_code)){ if(ObjectUtil.isNotEmpty(start_device_code)){
@ -680,13 +701,8 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
} else { } else {
sendHeadSignalType(instdto); sendHeadSignalType(instdto);
requireSucess1 = true; requireSucess1 = true;
log.info("申请前工位任务成功,{}",requireSucess1);
logServer.deviceExecuteLog(this.device_code, "", "", "申请后工位任务成功,requireSucess1" + requireSucess1 + ",指令号:" + instdto.getInstruction_code()); logServer.deviceExecuteLog(this.device_code, "", "", "申请后工位任务成功,requireSucess1" + requireSucess1 + ",指令号:" + instdto.getInstruction_code());
if(ObjectUtil.isNotEmpty(start_device_code)){
if (addressdevice.getDeviceDriver() instanceof LnshLaminatingMachineDeviceDriver) {
lnshLaminatingMachineDeviceDriver = (LnshLaminatingMachineDeviceDriver) addressdevice.getDeviceDriver();
lnshLaminatingMachineDeviceDriver.writing("to_command", "1");
}
}
} }
} else { } else {
//申请后工位任务 //申请后工位任务
@ -694,7 +710,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
List<String> getDeviceCodeList2 = this.getExtraDeviceCodes("get_device_code2"); List<String> getDeviceCodeList2 = this.getExtraDeviceCodes("get_device_code2");
//前工位放货关联设备 //前工位放货关联设备
List<String> putDeviceCodeList2 = this.getExtraDeviceCodes("put_device_code2"); List<String> putDeviceCodeList2 = this.getExtraDeviceCodes("put_device_code2");
for (int i = 0; i < putDeviceCodeList.size(); i++) { for (int i = 0; i < putDeviceCodeList2.size(); i++) {
if (ObjectUtil.isNotEmpty(taskserver.queryTaskByDeviceCode(getDeviceCodeList2.get(i).replace("\"", "")))) { if (ObjectUtil.isNotEmpty(taskserver.queryTaskByDeviceCode(getDeviceCodeList2.get(i).replace("\"", "")))) {
task2 = taskserver.queryTaskByDeviceCode(getDeviceCodeList2.get(i).replace("\"", "")).get(0); task2 = taskserver.queryTaskByDeviceCode(getDeviceCodeList2.get(i).replace("\"", "")).get(0);
} }
@ -712,6 +728,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
String next_point_code = task2.getNext_point_code(); String next_point_code = task2.getNext_point_code();
String next_device_code = task2.getNext_device_code(); String next_device_code = task2.getNext_device_code();
String next_device_code2 = task2.getNext_device_code2(); String next_device_code2 = task2.getNext_device_code2();
String put_device_code=task2.getPut_device_code();
Device startdevice = deviceAppservice.findDeviceByCode(start_device_code); Device startdevice = deviceAppservice.findDeviceByCode(start_device_code);
Device nextdevice = deviceAppservice.findDeviceByCode(next_device_code); Device nextdevice = deviceAppservice.findDeviceByCode(next_device_code);
Device startdevice2 = null; Device startdevice2 = null;
@ -761,6 +778,15 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
taskserver.update(task2); taskserver.update(task2);
sendBackSignalType(instdto); sendBackSignalType(instdto);
requireSucess1 = true; requireSucess1 = true;
LnshLaminatingMachineDeviceDriver lnshLaminatingMachineDeviceDriver;
DeviceAppService appService = SpringContextHolder.getBean(DeviceAppServiceImpl.class);
Device addressdevice = appService.findDeviceByCode(put_device_code);
if(ObjectUtil.isNotEmpty(start_device_code)){
if (addressdevice.getDeviceDriver() instanceof LnshLaminatingMachineDeviceDriver) {
lnshLaminatingMachineDeviceDriver = (LnshLaminatingMachineDeviceDriver) addressdevice.getDeviceDriver();
lnshLaminatingMachineDeviceDriver.writing("to_command", "1");
}
}
logServer.deviceExecuteLog(this.device_code, "", "", "申请后工位任务成功,requireSucess1" + requireSucess1 + ",指令号:" + instdto.getInstruction_code()); logServer.deviceExecuteLog(this.device_code, "", "", "申请后工位任务成功,requireSucess1" + requireSucess1 + ",指令号:" + instdto.getInstruction_code());
} }
} }
@ -1005,21 +1031,31 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
try { try {
finish_instruction(inst1); finish_instruction(inst1);
} catch (Exception e) { } catch (Exception e) {
log.error("RGV 工位完成指令异常", e); log.error("RGV 工位完成指令异常", e);
logServer.deviceExecuteLog(this.device_code, "", "", "前工位指令" + task1 + "完成异常,异常原因:" + e.getMessage()); logServer.deviceExecuteLog(this.device_code, "", "", "前工位指令" + task1 + "完成异常,异常原因:" + e.getMessage());
} }
log.info("五点任务完成");
writing("to_command1", "0");
writing("to_command1", "0"); writing("to_command1", "0");
writing("to_onset1", "0"); writing("to_onset1", "0");
writing("to_onset1", "0");
writing("to_target1", "0");
writing("to_target1", "0"); writing("to_target1", "0");
writing("to_task1", "0"); writing("to_task1", "0");
writing("to_task1", "0");
writing("to_command2", "0"); writing("to_command2", "0");
writing("to_command2", "0");
writing("to_onset2", "0");
writing("to_onset2", "0"); writing("to_onset2", "0");
writing("to_target2", "0"); writing("to_target2", "0");
writing("to_target2", "0");
writing("to_task2", "0");
writing("to_task2", "0"); writing("to_task2", "0");
writing("to_container_type", "0"); writing("to_container_type", "0");
requireSucess1 = false; writing("to_container_type", "0");
} }
this.requireSucess1 = false; this.requireSucess1 = false;
log.info("前后工位任务完成复位");
//单独的后工位任务 //单独的后工位任务
} else if (action2 == 4 && move2 == 0 && task2 > 0 && action1 == 0 && move2 == 0 && task1 == 0) { } else if (action2 == 4 && move2 == 0 && task2 > 0 && action1 == 0 && move2 == 0 && task1 == 0) {
//inst_message //inst_message
@ -1028,16 +1064,21 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
try { try {
finish_instruction(inst2); finish_instruction(inst2);
} catch (Exception e) { } catch (Exception e) {
log.error("RGV 工位完成指令异常", e); log.error("RGV 工位完成指令异常", e);
logServer.deviceExecuteLog(this.device_code, "", "", "后工位指令" + task1 + "完成异常,异常原因:" + e.getMessage()); logServer.deviceExecuteLog(this.device_code, "", "", "后工位指令" + task1 + "完成异常,异常原因:" + e.getMessage());
} }
log.info("后工位任务完成");
writing("to_command2", "0"); writing("to_command2", "0");
writing("to_command2", "0");
writing("to_onset2", "0");
writing("to_onset2", "0"); writing("to_onset2", "0");
writing("to_target2", "0"); writing("to_target2", "0");
writing("to_target2", "0");
writing("to_task2", "0");
writing("to_task2", "0"); writing("to_task2", "0");
requireSucess1 = false;
} }
this.requireSucess1 = false; this.requireSucess1 = false;
log.info("后工位任务完成复位");
} else if (action1 == 4 && move1 == 0 && task1 > 0 && action2 == 0 && move2 == 0 && task2 == 0) { } else if (action1 == 4 && move1 == 0 && task1 > 0 && action2 == 0 && move2 == 0 && task2 == 0) {
inst1 = checkInst(); inst1 = checkInst();
if (inst1 != null) { if (inst1 != null) {
@ -1047,14 +1088,20 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
log.error("RGV 前工位完成指令异常", e); log.error("RGV 前工位完成指令异常", e);
logServer.deviceExecuteLog(this.device_code, "", "", "前工位指令" + task1 + "完成异常,异常原因:" + e.getMessage()); logServer.deviceExecuteLog(this.device_code, "", "", "前工位指令" + task1 + "完成异常,异常原因:" + e.getMessage());
} }
log.info("前工位任务完成");
writing("to_command1", "0"); writing("to_command1", "0");
writing("to_command1", "0");
writing("to_onset1", "0");
writing("to_onset1", "0"); writing("to_onset1", "0");
writing("to_target1", "0"); writing("to_target1", "0");
writing("to_target1", "0");
writing("to_task1", "0");
writing("to_task1", "0"); writing("to_task1", "0");
writing("to_container_type", "0"); writing("to_container_type", "0");
requireSucess1 = false; writing("to_container_type", "0");
} }
this.requireSucess1 = false; this.requireSucess1 = false;
log.info("前工位任务完成复位");
} }
@ -1130,8 +1177,12 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
String start_addr = startDevice.getExtraValue().get("OPCServer").toString(); String start_addr = startDevice.getExtraValue().get("OPCServer").toString();
String next_addr = nextDevice.getExtraValue().get("OPCServer").toString(); String next_addr = nextDevice.getExtraValue().get("OPCServer").toString();
this.writing("to_onset1", start_addr); this.writing("to_onset1", start_addr);
this.writing("to_onset1", start_addr);
this.writing("to_target1", next_addr);
this.writing("to_target1", next_addr); this.writing("to_target1", next_addr);
this.writing("to_task1", dto.getInstruction_code()); this.writing("to_task1", dto.getInstruction_code());
this.writing("to_task1", dto.getInstruction_code());
this.writing("to_command1", "1");
this.writing("to_command1", "1"); this.writing("to_command1", "1");
} }
@ -1149,8 +1200,12 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
String start_addr = startDevice.getExtraValue().get("OPCServer").toString(); String start_addr = startDevice.getExtraValue().get("OPCServer").toString();
String next_addr = nextDevice.getExtraValue().get("OPCServer").toString(); String next_addr = nextDevice.getExtraValue().get("OPCServer").toString();
this.writing("to_onset2", start_addr); this.writing("to_onset2", start_addr);
this.writing("to_onset2", start_addr);
this.writing("to_target2", next_addr);
this.writing("to_target2", next_addr); this.writing("to_target2", next_addr);
this.writing("to_task2", dto.getInstruction_code()); this.writing("to_task2", dto.getInstruction_code());
this.writing("to_task2", dto.getInstruction_code());
this.writing("to_command2", "1");
this.writing("to_command2", "1"); this.writing("to_command2", "1");
} }
@ -1176,13 +1231,20 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi
String start_addr2 = startDevice2.getExtraValue().get("OPCServer").toString(); String start_addr2 = startDevice2.getExtraValue().get("OPCServer").toString();
String next_addr2 = nextDevice2.getExtraValue().get("OPCServer").toString(); String next_addr2 = nextDevice2.getExtraValue().get("OPCServer").toString();
this.writing("to_onset1", start_addr); this.writing("to_onset1", start_addr);
this.writing("to_onset1", start_addr);
this.writing("to_target1", next_addr);
this.writing("to_target1", next_addr); this.writing("to_target1", next_addr);
this.writing("to_task1", dto.getInstruction_code()); this.writing("to_task1", dto.getInstruction_code());
this.writing("to_task1", dto.getInstruction_code());
//this.writing("to_command1", "1"); //this.writing("to_command1", "1");
this.writing("to_onset2", start_addr2); this.writing("to_onset2", start_addr2);
this.writing("to_onset2", start_addr2);
this.writing("to_target2", next_addr2); this.writing("to_target2", next_addr2);
this.writing("to_target2", next_addr2);
this.writing("to_task2", dto.getInstruction_code());
this.writing("to_task2", dto.getInstruction_code()); this.writing("to_task2", dto.getInstruction_code());
this.writing("to_command2", "1"); this.writing("to_command2", "1");
this.writing("to_command2", "1");
} }
} }

14
acs/nladmin-system/src/main/resources/log/LnshRGVDeviceDriver.xml

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<?import java.lang.*?>
<?import java.util.*?>
<?import javafx.scene.*?>
<?import javafx.scene.control.*?>
<?import javafx.scene.layout.*?>
<AnchorPane xmlns="http://javafx.com/javafx"
xmlns:fx="http://javafx.com/fxml"
fx:controller="$CONTROLLER_NAME$"
prefHeight="400.0" prefWidth="600.0">
</AnchorPane>
Loading…
Cancel
Save