diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java index dda2079..10f8c57 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_Laminating_machine/LnshLaminatingMachineDeviceDriver.java @@ -76,6 +76,8 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i int last_barcode = 0; int to_command =0; int last_to_command =0; + int to_task =0; + int last_to_task =0; Boolean isonline = true; int hasGoods = 0; String message = null; @@ -129,7 +131,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i hasGoods = this.itemProtocol.getMove(); container_type = this.itemProtocol.getContainer_type(); to_command = this.itemProtocol.getToCommand(); - + to_task = this.itemProtocol.getToTask(); if (mode != last_mode) { this.setRequireSucess(false); this.setResult(false); @@ -162,6 +164,9 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i if (to_command != last_to_command) { logServer.deviceExecuteLog(this.device_code,"","","信号to_command:" + last_to_command + "->" + to_command); } + if (to_task != last_to_task) { + logServer.deviceExecuteLog(this.device_code,"","","信号to_task:" + last_to_task + "->" + to_task); + } } catch (Exception var17) { logServer.deviceExecuteLog(this.device_code,"","","异常:"+var17.getMessage()); @@ -238,6 +243,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i last_container_type = container_type; last_to_command= to_command; last_barcode = barcode; + last_to_task = to_task; } @@ -319,12 +325,14 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i } else { this.instruction_require_time = date; Instruction inst = instructionService.findByCodeFromCache(String.valueOf(task)); - + if(ObjectUtil.isEmpty(inst)){ + logServer.deviceExecuteLog(this.device_code, "", "", "申请组盘task:"+task+"未找到对应指令"); + } JSONObject json = new JSONObject(); json.put("device_code",this.device_code); json.put("vehicle_code",this.autoGenericCode(String.valueOf(barcode))); json.put("task_code",inst.getTask_code()); - + logServer.deviceExecuteLog(this.device_code, "", "", "申请组盘请求lms:"+json); HttpResponse result = acsToWmsService.applyIntoKiln(json); if (ObjectUtil.isNotEmpty(result)) { JSONObject jsonObject = JSONObject.parseObject(result.body()); @@ -333,7 +341,7 @@ public class LnshLaminatingMachineDeviceDriver extends AbstractOpcDeviceDriver i this.setRequireSucess(true); this.setResult(true); } - + logServer.deviceExecuteLog(this.device_code, "", "", "申请组盘请求lms反馈:"+result); } return true; } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java index d8cb42a..d6ecc17 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/acs/device_driver/lnsh/lnsh_rgv/LnshRGVDeviceDriver.java @@ -55,6 +55,8 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi @Autowired DeviceAppService deviceAppservice = SpringContextHolder.getBean(DeviceAppServiceImpl.class); + Instruction inst = null; + //当前指令1 Instruction inst1 = null; //当前指令2 @@ -201,6 +203,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi if (mode != last_mode) { if(mode==2){ + inst = null; this.setRequireSucess1(false); logServer.deviceExecuteLog(this.device_code, "", "", "模式变待机,复位前工位请求标记requireSucess1:" + requireSucess1); this.setRequireSucess2(false); @@ -647,7 +650,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi writing("to_onset2", start_addr); writing("to_target2", next_addr); writing("to_task2", instdto.getInstruction_code()); - while (!StrUtil.equals(this.getOpcValueAccessor().getValue(this.getOpcServer() + "." + this.getOpcPlc() + "." + this.getDevice_code() + ".task1").toString() + while (!StrUtil.equals(this.getOpcValueAccessor().getValue(this.getOpcServer() + "." + this.getOpcPlc() + "." + this.getDevice_code() + ".task2").toString() , instdto.getInstruction_code())) { writing("to_command2", "1"); writing("to_onset2", start_addr); @@ -812,7 +815,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi writing("to_onset2", start_addr); writing("to_target2", next_addr); writing("to_task2", instdto.getInstruction_code()); - while (!StrUtil.equals(this.getOpcValueAccessor().getValue(this.getOpcServer() + "." + this.getOpcPlc() + "." + this.getDevice_code() + ".task1").toString() + while (!StrUtil.equals(this.getOpcValueAccessor().getValue(this.getOpcServer() + "." + this.getOpcPlc() + "." + this.getDevice_code() + ".task2").toString() , instdto.getInstruction_code())) { writing("to_command2", "1"); writing("to_onset2", start_addr); @@ -1157,7 +1160,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi if(task1 >0 && task2>0 && action_1 == 4 && action_2 == 4 && move_1 ==0 && move_2==0){ //inst_message - inst1 = instructionService.findByCodeFromCache(String.valueOf(task1)); + inst1 = checkInst(); if (inst1 != null) { try { finish_instruction(inst1); @@ -1178,7 +1181,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi //单独的后工位任务 } else if (action_2 == 4 && move_2 == 0 && task2 > 0 && action_1 == 0 && move_2 == 0 && task1 == 0 ) { //inst_message - inst2 = instructionService.findByCodeFromCache(String.valueOf(task2)); + inst2 = checkInst(); if (inst2 != null) { try { finish_instruction(inst2); @@ -1194,7 +1197,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi } this.requireSucess1 = false; } else if (action_1 == 4 && move_1 == 0 && task1 > 0 && action_2 == 0 && move_2 == 0 && task2 == 0 ) { - inst1 = instructionService.findByCodeFromCache(String.valueOf(task1)); + inst1 = checkInst(); if (inst1 != null) { try { finish_instruction(inst1); @@ -1213,7 +1216,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi if (task1 > 0) { - inst1 = instructionService.findByCodeFromCache(String.valueOf(task1)); + inst1 = checkInst(); if (inst1 != null) { if (StrUtil.equals(inst1.getInstruction_status(), "0")) { inst1.setInstruction_status("1"); @@ -1222,7 +1225,7 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi } } if (task2 > 0) { - inst2 = instructionService.findByCodeFromCache(String.valueOf(task2)); + inst2 = checkInst(); if (inst2 != null) { if (StrUtil.equals(inst2.getInstruction_status(), "0")) { inst2.setInstruction_status("1"); @@ -1233,4 +1236,33 @@ public class LnshRGVDeviceDriver extends AbstractOpcDeviceDriver implements Devi } } + public Instruction checkInst(){ + if(ObjectUtil.isNotEmpty(this.inst)){ + if(this.task1>0){ + if(this.inst.getInstruction_code().equals(String.valueOf(this.task1))){ + return this.inst; + } else { + inst = instructionService.findByCodeFromCache(String.valueOf(task1)); + return inst; + } + } else { + if(this.inst.getInstruction_code().equals(String.valueOf(this.task2))){ + return this.inst; + } else { + inst = instructionService.findByCodeFromCache(String.valueOf(task2)); + return inst; + } + } + + } else { + + if(this.task1>0){ + inst = instructionService.findByCodeFromCache(String.valueOf(task1)); + } else { + inst = instructionService.findByCodeFromCache(String.valueOf(task2)); + } + return inst; + } + } + } diff --git a/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java b/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java index 318b6ea..ae8cee8 100644 --- a/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java +++ b/acs/hd/nladmin-system/src/main/java/org/nl/start/auto/run/NDCSocketConnectionAutoRun.java @@ -447,6 +447,17 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { if (!lnshLaminatingMachineDeviceDriver.getResult()) { lnshLaminatingMachineDeviceDriver.writing("to_task", inst.getInstruction_code()); lnshLaminatingMachineDeviceDriver.writing(1); + while (!StrUtil.equals(String.valueOf(lnshLaminatingMachineDeviceDriver.getTo_task()),inst.getInstruction_code()) + || !StrUtil.equals(String.valueOf(lnshLaminatingMachineDeviceDriver.getTo_command()),"1") ) { + + lnshLaminatingMachineDeviceDriver.writing("to_task", inst.getInstruction_code()); + lnshLaminatingMachineDeviceDriver.writing(1); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } } catch (Exception e) { log.info("下发电气信号失败:" + e.getMessage()); @@ -457,7 +468,14 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { //如果组盘绑定条码成功,就允许agv离开 if (lnshLaminatingMachineDeviceDriver.getMode() == 6 && lnshLaminatingMachineDeviceDriver.getResult()) { try { - lnshLaminatingMachineDeviceDriver.writing(6); + while (!StrUtil.equals(String.valueOf(lnshLaminatingMachineDeviceDriver.getTo_command()),"6") ) { + lnshLaminatingMachineDeviceDriver.writing(6); + try { + Thread.sleep(500); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } } catch (Exception e) { log.info("下发电气信号失败:" + e.getMessage()); e.printStackTrace();