From 97af976806b9b26de5a6acc220f5ab53a0ec608d Mon Sep 17 00:00:00 2001 From: tuqiang <437016993@qq.com> Date: Fri, 7 Jun 2024 18:11:58 +0800 Subject: [PATCH 1/2] =?UTF-8?q?add:=E6=96=B0=E5=A2=9E=E5=88=86=E5=88=87?= =?UTF-8?q?=E8=A1=8C=E6=9E=B6=E5=BC=82=E5=B8=B8=E4=BB=BB=E5=8A=A1=E4=B8=8B?= =?UTF-8?q?=E5=8F=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../SlitTwoManipulatorDeviceDriver.java | 75 +++++++++++++++++++ .../device/driver/slit_two_manipulator.vue | 43 ++++++++++- 2 files changed, 117 insertions(+), 1 deletion(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java index 0a5e82120..067efb26a 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/two_conveyor/slit_two_manipulator/SlitTwoManipulatorDeviceDriver.java @@ -321,6 +321,24 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl return false; } else { this.instruction_head_time = date; + String link_device_code = String.valueOf(this.getDevice().getExtraValue().get("link_device_code")); + Device device = deviceAppservice.findDeviceByCode(link_device_code); + SlitTwoManipulatorDeviceDriver slitTwoManipulatorDeviceDriver; + if (device.getDeviceDriver()instanceof SlitTwoManipulatorDeviceDriver) { + slitTwoManipulatorDeviceDriver = (SlitTwoManipulatorDeviceDriver) device.getDeviceDriver(); + //如果禁用 + if (slitTwoManipulatorDeviceDriver.getIs_disable()==1){ + //就去走关联设备异常取放货工位的任务 任务生成成功返回true 就不会走下面正常生成任务的逻辑 + try { + flag = instruction_require2(); + } catch (Exception e) { + flag = false; + } + if (flag) { + return false; + } + } + } //抓取工位 if (ObjectUtil.isEmpty(getDeviceCodeList)) { getDeviceCodeList = this.getExtraDeviceCodes("get_device_code"); @@ -369,6 +387,63 @@ public class SlitTwoManipulatorDeviceDriver extends AbstractOpcDeviceDriver impl return flag; } + //关联设备异常申请任务 + public synchronized boolean instruction_require2() { + boolean flag = false; + Date date = new Date(); + if (date.getTime() - this.instruction_head_time.getTime() < (long) this.instruction_require_time_out) { + log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_head_time); + return false; + } else { + this.instruction_head_time = date; + //抓取工位 + if (ObjectUtil.isEmpty(getDeviceCodeList)) { + getDeviceCodeList = this.getExtraDeviceCodes("error_get_device_code"); + } + //放货工位 + if (ObjectUtil.isEmpty(putDeviceCodeList)) { + putDeviceCodeList = this.getExtraDeviceCodes("error_put_device_code"); + } + TaskDto task = null; + for (int i = 0; i < getDeviceCodeList.size(); i++) { + String startDeviceCode = getDeviceCodeList.get(i); + List taskDtos = taskserver.queryTaskByDeviceCodeAndStatus(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDtos)) { + //按照优先级排序 优先级相等按照创建时间排序 + taskDtos = this.sortTask(taskDtos); + TaskDto taskDto = taskDtos.get(0); + truss_type = taskDto.getTruss_type(); + //查询任务是行架任务 + if (!StrUtil.equals(taskDto.getTask_type(), "6")) { + taskDto = null; + continue; + } + flag = this.executeReadyInst(taskDto); + } else { + List taskDtoList = taskserver.queryTaskByDeviceCode(startDeviceCode); + if (ObjectUtil.isNotEmpty(taskDtoList)) { + //按照优先级排序 优先级相等按照创建时间排序 + taskDtoList = this.sortTask(taskDtoList); + for (int j = 0; j < taskDtoList.size(); j++) { + task = taskDtoList.get(j); + + // 9 行架任务 + if (ObjectUtil.isNotEmpty(task) && !StrUtil.equals(task.getTask_type(), "6")) { + task = null; + continue; + } + if (ObjectUtil.isNotEmpty(task)) break; + } + } + } + } + if (!ObjectUtil.isEmpty(task)) { + flag = this.executeReadyTask(task); + } + } + return flag; + } + //执行已有就绪指令 public synchronized boolean executeReadyInst(TaskDto taskDto) { //获取指令信息 diff --git a/acs2/nladmin-ui/src/views/acs/device/driver/slit_two_manipulator.vue b/acs2/nladmin-ui/src/views/acs/device/driver/slit_two_manipulator.vue index c36ff2b32..7d167af7d 100644 --- a/acs2/nladmin-ui/src/views/acs/device/driver/slit_two_manipulator.vue +++ b/acs2/nladmin-ui/src/views/acs/device/driver/slit_two_manipulator.vue @@ -175,6 +175,45 @@ + + + + + + + + + + + + + + + + + + @@ -347,7 +386,9 @@ export default { is_release: true, link_device_code: [], get_device_code: [], - put_device_code: [] + put_device_code: [], + error_get_device_code: [], + error_put_device_code: [] }, rules: {} } From 753a4df8dfaaaf33df5bc0ae3b840ff2cbcdbb13 Mon Sep 17 00:00:00 2001 From: lishuai <1793460677@qq.com> Date: Sun, 9 Jun 2024 10:42:08 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix:=20=E5=89=8D=E7=AB=AF=E5=A4=A7=E5=B1=8F?= =?UTF-8?q?=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agv/ndcone/AgvNdcOneDeviceDriver.java | 2 +- .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 2 +- .../agv/xg_agv/XgagvDeviceDriver.java | 2 +- .../BeltConveyorDeviceDriver.java | 3 +-- ...CoveyorControlWithScannerDeviceDriver.java | 2 +- .../driver/AbstractOpcDeviceDriver.java | 4 ++-- .../BoxStorageOutConveyorDeviceDriver.java | 6 +++++ ...ConveyorWithScannerWeightDeviceDriver.java | 2 +- .../UnBoxLableConveyorDeviceDriver.java | 22 ++++++++++++------- .../service/quartz/task/CreateDDJInst.java | 6 ++++- 10 files changed, 33 insertions(+), 18 deletions(-) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndcone/AgvNdcOneDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndcone/AgvNdcOneDeviceDriver.java index 45728701f..026110892 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndcone/AgvNdcOneDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndcone/AgvNdcOneDeviceDriver.java @@ -537,7 +537,7 @@ public class AgvNdcOneDeviceDriver extends AbstractDeviceDriver implements Devic jo.put("task_code", ObjectUtil.isEmpty(instruction) ? "0" : instruction.getTask_code()); //异常 jo.put("fault", this.getError_message()); - jo.put("message", LangProcess.msg(message)); + jo.put("message",message); return jo; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 599cff762..04ddb23b1 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -1516,7 +1516,7 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic jo.put("task_code", ObjectUtil.isEmpty(instruction) ? "0" : instruction.getTask_code()); //异常 jo.put("fault", this.getError_message()); - jo.put("message", LangProcess.msg(message)); + jo.put("message", message); return jo; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv/XgagvDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv/XgagvDeviceDriver.java index d92439f82..ff626a4ec 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv/XgagvDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/agv/xg_agv/XgagvDeviceDriver.java @@ -349,7 +349,7 @@ public class XgagvDeviceDriver extends AbstractOpcDeviceDriver implements Device JSONObject jo = new JSONObject(); String mode = ""; jo.put("device_name", this.getDevice().getDevice_name()); - jo.put("message", LangProcess.msg(message)); + jo.put("message", message); jo.put("is_click", true); jo.put("address", address); jo.put("stop", stop); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java index 2d1ec0387..6268b21e7 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/belt_conveyor/BeltConveyorDeviceDriver.java @@ -256,7 +256,7 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements } if (move != 0 && task > 0) { - CompletableFuture future = CompletableFuture.runAsync(() -> { + CompletableFuture.runAsync(() -> { // 异步更新指令状态 try { update_instruction_status(); @@ -264,7 +264,6 @@ public class BeltConveyorDeviceDriver extends AbstractOpcDeviceDriver implements e.printStackTrace(); } }); - future.thenRun(() -> System.out.println("异步更新任务已完成")); } } catch (Exception var17) { diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_conveyor_control_with_scanner/StandardCoveyorControlWithScannerDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_conveyor_control_with_scanner/StandardCoveyorControlWithScannerDeviceDriver.java index f2e2c7df1..3ef3b274d 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_conveyor_control_with_scanner/StandardCoveyorControlWithScannerDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/conveyor/standard_conveyor_control_with_scanner/StandardCoveyorControlWithScannerDeviceDriver.java @@ -851,7 +851,7 @@ public class StandardCoveyorControlWithScannerDeviceDriver extends AbstractOpcDe jo.put("isOnline", this.getIsonline()); jo.put("error", this.getError()); jo.put("isError", this.getIserror()); - jo.put("message", LangProcess.msg(message)); + jo.put("message", message); jo.put("inst_message", this.inst_message); jo.put("task", this.getTask()); jo.put("barcode", plcbarcode); diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java index 530bc7739..25f555deb 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/driver/AbstractOpcDeviceDriver.java @@ -112,10 +112,10 @@ public class AbstractOpcDeviceDriver extends AbstractDeviceDriver implements Opc } if (i > 0) { - ThreadUtl.sleep(300L); + ThreadUtl.sleep(100L); } - if (i > 3) { + if (i >= 3) { // log.info("写入次数超过3次而失败"); throw new RuntimeException("写入次数超过3次而失败"); } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java index c34d066fa..b1d7d7c7e 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/box_storage_out_conveyor/BoxStorageOutConveyorDeviceDriver.java @@ -398,6 +398,12 @@ public class BoxStorageOutConveyorDeviceDriver extends AbstractOpcDeviceDriver i String response = acsToWmsService.applyTowToOne(param); JSONObject jo = JSON.parseObject(response); if (response == null || jo.getInteger("status") == 200) { + List list1 = new ArrayList(); + Map map = new HashMap(); + map.put("code", "to_command"); + map.put("value", 25); + list1.add(map); + this.writing(list1); LuceneLogDto logDto2 = LuceneLogDto.builder() .device_code(device_code) .content("二楼到一楼输送线申请行架任务,参数,接口返回:" + jo) diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java index 91b8b3fda..86da0938b 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/scanner_weight_conveyor/ConveyorWithScannerWeightDeviceDriver.java @@ -311,7 +311,7 @@ public class ConveyorWithScannerWeightDeviceDriver extends AbstractOpcDeviceDriv } //子卷入库申请入库任务 - if (mode == 7 && !requireSucess){ + if (mode == 7 && move == 1 && !requireSucess){ if (StrUtil.isEmpty(barcode)||StrUtil.isEmpty(material_barcode)){ message = "universal_notCreateInstMessage8"; } diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java index abc1f2cdc..9fbe144cf 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/acs/device_driver/one_conveyor/un_box_lable_conveyor/UnBoxLableConveyorDeviceDriver.java @@ -259,10 +259,9 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl .build(); logDto2.setLog_level(4); luceneExecuteLogService.deviceExecuteLog(logDto2); - String data = jo.getString("data"); - JSONObject datas = JSON.parseObject(data); - packagePLCData(datas); - String isUncap = datas.get("isUncap").toString(); + + packagePLCData(jo); + String isUncap = jo.getString("isUncap"); if ("1".equals(isUncap)){ List list1 = new ArrayList(); Map map = new HashMap(); @@ -277,6 +276,8 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl map.put("value", 99); list1.add(map); this.writing(list1); + Instruction inst = checkInst(); + finish_instruction(inst); } } @@ -290,10 +291,10 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl } private void packagePLCData(JSONObject datas) { - String length = datas.get("boxLength").toString(); - String weight = datas.get("boxWidth").toString(); - String height = datas.get("boxHigh").toString(); - String desiccant = datas.get("desiccantTemplat").toString(); + String length = datas.getString("boxLength"); + String weight = datas.getString("boxWidth"); + String height = datas.getString("boxHigh"); + String desiccant = datas.getString("desiccantTemplat"); List list = new ArrayList(); Map map4 = new HashMap(); map4.put("code", "to_length"); @@ -341,6 +342,11 @@ public class UnBoxLableConveyorDeviceDriver extends AbstractOpcDeviceDriver impl return true; } + public synchronized boolean finish_instruction(Instruction inst) throws Exception { + instructionService.finish(inst); + return true; + } + protected void thingToNothing() throws Exception { requireSucess = false; diff --git a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java index 267168b0c..58fdbace2 100644 --- a/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java +++ b/acs2/nladmin-system/nlsso-server/src/main/java/org/nl/system/service/quartz/task/CreateDDJInst.java @@ -216,7 +216,11 @@ public class CreateDDJInst { Instruction instdto = new Instruction(); if (CollUtil.isEmpty(byDeviceCodes)) { //判断有没有DDJ对接位出入库的指令 - instructionService.findByCodeAndExcute(next_device_code); + List byCodeAndExcute = instructionService.findByCodeAndExcute(next_device_code); + if (CollUtil.isNotEmpty(byCodeAndExcute)){ + ((StandardStackerDeviceDriver) deviceByCode.getDeviceDriver()).setNotCreateInstMessage("有DDJ对接位出入库的指令"); + return; + } instdto.setInstruction_type(task_type); instdto.setInstruction_id(IdUtil.simpleUUID()); instdto.setRoute_plan_code(route_plan_code);