From 9deeb8b14cef2aad7cc1ec437479d3b19be7e564 Mon Sep 17 00:00:00 2001 From: gengby <858962040@qq.com> Date: Mon, 17 Apr 2023 08:50:26 +0800 Subject: [PATCH] =?UTF-8?q?rev=20=E6=9B=B4=E6=96=B0=E7=BB=86=E8=8A=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../agv/server/impl/NDCAgvServiceImpl.java | 2 +- .../auto/run/NDCSocketConnectionAutoRun.java | 11 +- .../run/OneNDCSocketConnectionAutoRun.java | 14 +- .../agv/ndctwo/AgvNdcTwoDeviceDriver.java | 20 +- .../hailiang_one/IssuedDeviceOrderInfo.java | 3 + .../HailiangAutoCacheLineDeviceDriver.java | 92 +++++---- .../ItemProtocol.java | 134 ++++++------ .../HailiangCleaningFeedingLineDriver.java | 25 ++- .../ItemProtocol.java | 25 +-- .../HailiangCleaningMachineDeviceDriver.java | 15 +- ...ningMachineStorageStationDeviceDriver.java | 42 ++-- .../ItemProtocol.java | 36 +--- .../HailiangEngravingCacheDeviceDriver.java | 7 +- .../HailiangEngravingMachineDeviceDriver.java | 28 ++- .../HailiangOldSpecialDeviceDriver.java | 160 ++++----------- .../ItemProtocol.java | 150 +++----------- ...angOldSpecialEmptyStationDeviceDriver.java | 72 ++++--- .../ItemProtocol.java | 50 ++--- ...iangOldSpecialFullStationDeviceDriver.java | 81 ++++---- .../ItemProtocol.java | 57 +++--- ...iangOldSpecialPickStationDeviceDriver.java | 66 +++--- .../ItemProtocol.java | 38 +--- ...iangOldSpecialPourStationDeviceDriver.java | 78 +++---- .../ItemProtocol.java | 44 +--- .../HailiangPackerStationDeviceDriver.java | 30 ++- .../HailiangSpecialDeviceDriver.java | 169 ++++----------- .../hailiang_special_device/ItemProtocol.java | 135 ++---------- ...iliangSpecialEmptyStationDeviceDriver.java | 66 +++--- .../ItemProtocol.java | 47 ++--- ...ailiangSpecialFullStationDeviceDriver.java | 92 ++++----- .../ItemProtocol.java | 61 +++--- ...ailiangSpecialPickStationDeviceDriver.java | 59 ++---- .../ItemProtocol.java | 36 +--- ...ailiangSpecialPourStationDeviceDriver.java | 76 +++---- .../ItemProtocol.java | 37 +--- .../HailiangStackingStationDriver.java | 57 +++++- .../wms/service/impl/WmsToAcsServiceImpl.java | 2 + .../rest/InstructionController.java | 24 +++ .../service/InstructionService.java | 26 ++- .../service/impl/InstructionServiceImpl.java | 75 ++++++- .../impl/ProduceshiftorderServiceImpl.java | 22 +- .../task/service/impl/TaskServiceImpl.java | 3 +- .../resources/config/application-prod.yml | 4 +- .../resources/config/application-test.yml | 4 +- .../log/{AcsToWms.xml => AcsToMes.xml} | 2 +- .../resources/log/AgvNdcOneDeviceDriver.xml | 2 +- .../resources/log/AgvNdcTwoDeviceDriver.xml | 2 +- .../src/main/resources/log/AutoCreateInst.xml | 2 +- .../{AcsToLk.xml => AutoCreateOneInst.xml} | 9 +- .../src/main/resources/log/LkToAcs.xml | 33 --- .../log/{WmsToAcs.xml => MesToAcs.xml} | 2 +- .../main/resources/log/NDCAgvServiceImpl.xml | 4 +- ...Run.xml => NDCSocketConnectionAutoRun.xml} | 6 +- .../log/OneNDCSocketConnectionAutoRun.xml | 4 +- .../log/TwoNDCSocketConnectionAutoRun.xml | 33 --- .../src/main/resources/logback-spring.xml | 15 +- .../src/api/acs/instruction/instruction.js | 24 ++- .../src/views/acs/instruction/index.vue | 8 +- .../src/views/system/monitor/device/index.vue | 192 ++++++++++++++++-- 59 files changed, 1175 insertions(+), 1438 deletions(-) rename wcs/nladmin-system/src/main/resources/log/{AcsToWms.xml => AcsToMes.xml} (96%) rename wcs/nladmin-system/src/main/resources/log/{AcsToLk.xml => AutoCreateOneInst.xml} (79%) delete mode 100644 wcs/nladmin-system/src/main/resources/log/LkToAcs.xml rename wcs/nladmin-system/src/main/resources/log/{WmsToAcs.xml => MesToAcs.xml} (96%) rename wcs/nladmin-system/src/main/resources/log/{TwoNDC2SocketConnectionAutoRun.xml => NDCSocketConnectionAutoRun.xml} (84%) delete mode 100644 wcs/nladmin-system/src/main/resources/log/TwoNDCSocketConnectionAutoRun.xml diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java index fb4d02e2..b7b9a15e 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/agv/server/impl/NDCAgvServiceImpl.java @@ -285,7 +285,7 @@ public class NDCAgvServiceImpl implements NDCAgvService { (byte) 0X00, (byte) 0X6D, (byte) 0X00, (byte) 0X06, (byte) indexhigh, (byte) indexlow, - (byte) 0X01, (byte) 0X12, + (byte) 0X01, (byte) 0X14, (byte) phasehigh, (byte) phaselow }; diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/NDCSocketConnectionAutoRun.java b/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/NDCSocketConnectionAutoRun.java index 483d0f48..70824662 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/NDCSocketConnectionAutoRun.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/NDCSocketConnectionAutoRun.java @@ -125,18 +125,17 @@ public class NDCSocketConnectionAutoRun extends AbstractAutoRunnable { data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else if (phase == 0x1A) { //任务完毕(无车id及状态 - for (Instruction inst : insts) { - instructionService.finish(inst.getInstruction_id()); - } +// for (Instruction inst : insts) { +// instructionService.finish(inst.getInstruction_id()); +// } + instructionService.finishByLinkNum(String.valueOf(ikey)); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else if (phase == 0x30) { //请求删除任务 data = ndcAgvService.sendAgvTwoModeInst(143, index, 0); } else if (phase == 0xFF) { //任务删除确认 - for (Instruction inst : insts) { - instructionService.cancelNoSendAgv(inst.getInstruction_id()); - } + instructionService.forceCancelByLinkNum(String.valueOf(ikey)); data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); } else { if (phase == 0x67) { diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java b/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java index f4582598..18ae359a 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/auto/run/OneNDCSocketConnectionAutoRun.java @@ -133,9 +133,10 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { } else if (phase == 0x0A) { - for (Instruction inst : insts) { - instructionService.finish(inst.getInstruction_id()); - } +// for (Instruction inst : insts) { +// instructionService.finish(inst.getInstruction_id()); +// } + instructionService.finishByLinkNum(String.valueOf(ikey)); data = ndcAgvService.sendAgvOneModeInst(phase, index, 0); } else if (phase == 0x30) { @@ -143,9 +144,10 @@ public class OneNDCSocketConnectionAutoRun extends AbstractAutoRunnable { } else if (phase == 0xFF) { - for (Instruction inst : insts) { - instructionService.cancelNoSendAgv(inst.getInstruction_id()); - } +// for (Instruction inst : insts) { +// instructionService.cancelNoSendAgv(inst.getInstruction_id()); +// } + instructionService.cancelByLinkNum(String.valueOf(ikey)); data = ndcAgvService.sendAgvOneModeInst(phase, index, 0); } else if (phase == 0x50) { //离开区域 diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java index 30c097c4..71bc8db5 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/agv/ndctwo/AgvNdcTwoDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.basedriver.agv.ndctwo; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import lombok.Data; @@ -783,15 +784,18 @@ public class AgvNdcTwoDeviceDriver extends AbstractDeviceDriver implements Devic break; } // 4010 待处理 - // if (StrUtil.equals(inst.getStart_device_code(), device_code)) { - inst.setWeight(String.valueOf(weight)); - instructionService.update(inst); - TaskDto taskDto = taskService.findByCodeFromCache(inst.getTask_code()); - if (taskDto != null) { - taskDto.setWeight(String.valueOf(weight)); - taskService.update(taskDto); + if (StrUtil.equals(inst.getStart_device_code(), device_code)) { + String now = DateUtil.now(); + inst.setWeight(String.valueOf(weight)); + inst.setUpdate_time(now); + instructionService.update(inst); + TaskDto taskDto = taskService.findByCodeFromCache(inst.getTask_code()); + if (taskDto != null) { + taskDto.setWeight(String.valueOf(weight)); + taskDto.setUpdate_time(now); + taskService.update(taskDto); + } } - // } } data = ndcAgvService.sendAgvTwoModeInst(phase, index, 0); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/IssuedDeviceOrderInfo.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/IssuedDeviceOrderInfo.java index 46a1135e..c88d386f 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/IssuedDeviceOrderInfo.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/IssuedDeviceOrderInfo.java @@ -11,6 +11,9 @@ public interface IssuedDeviceOrderInfo { //工单信息下发给电气 void issuedOrderInfo(ProduceshiftorderDto dto); + //下发工单完成信息 + void issuedOrderFinish(); + //工单暂停 void toStop(); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java index 04e84924..8b3090e4 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/HailiangAutoCacheLineDeviceDriver.java @@ -31,9 +31,7 @@ import org.nl.acs.task.service.dto.TaskDto; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; /** * 海亮自动缓存线 @@ -157,7 +155,8 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); + } @Override @@ -167,7 +166,7 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i @Override - public void execute() { + public synchronized void execute() { try { device_code = this.getDeviceCode(); error = this.itemProtocol.getError(); @@ -273,16 +272,13 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } if (task_finish != last_task_finish) { - if (task_finish == 1) { - this.writing("to_task_finish", "1"); - } logServer.deviceExecuteLog(this.device_code, "", "", "信号task_finish:" + last_task_finish + "->" + task_finish); } if (task != last_task) { if (task > 0) { JSONObject param = new JSONObject(); - param.put("task_code", String.valueOf(task)); + param.put("task_code", instructionService.findByCodeFromCache(String.valueOf(task)) == null ? "" : instructionService.findByCodeFromCache(String.valueOf(task)).getTask_code()); param.put("position_code", this.device_code); acsToWmsService.feedCacheLineTask(param); } @@ -341,10 +337,6 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i } else if (mode == 0) { message = "未联机"; //有报警 - } else if (error != 0) { - this.setIserror(true); - message = "有报警"; - //无报警 } else { this.setIsonline(true); this.setIserror(false); @@ -433,12 +425,12 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); - this.set(0, 0, null); TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); if (taskDto != null) { taskDto.setVehicle_code(String.valueOf(docking_barcode)); taskserver.update(taskDto); } + this.set(0, 0, null); noFeedAgvMessage = null; message = this.messageInfo(agvphase); logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase)); @@ -458,11 +450,32 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i } else if (agvphase == 0x10 || agvphase == 0x27) { //agv取空框1完毕或取空框2完毕 if (mode == 1 && move == 0 && task != 0 && ObjectUtil.isNotEmpty(inst) && Integer.parseInt(inst.getInstruction_code()) == task) { - this.writing("to_agv_get_finish", "1"); + //this.writing("to_agv_get_finish", "1"); + Map map = new HashMap<>(); + map.put("to_agv_get_finish", "1"); + map.put("to_task_finish", "1"); + this.writing(map); inst.setExecute_status(InstActionEnum.EXECUTE_GET_EMPTY_FINISH.getCode()); instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); + //如果送满框1任务完成 判断是否有下一条任务 有的话立即下发缓存线 + if (agvphase == 0x10) { + List linkNum = instructionService.findByLinkNum(inst.getLink_num()); + if (linkNum != null && linkNum.size() == 2) { + Instruction instruction = Optional + .ofNullable(linkNum) + .orElse(new ArrayList<>()) + .stream() + .filter(i -> !i.getInstruction_code().equals(inst.getInstruction_code())) + .findFirst() + .orElse(null); + if (instruction != null) { + instructionService.issuedCacheInfo(instruction); + logServer.deviceExecuteLog(device_code, "", "", "第一条指令完成,指令号:'" + inst.getInstruction_code() + "',下发第二条指令,指令号:'" + instruction.getInstruction_code() + "'"); + } + } + } this.set(0, 0, null); noFeedAgvMessage = null; message = this.messageInfo(agvphase); @@ -489,12 +502,12 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); - this.set(0, 0, null); TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); if (taskDto != null) { taskDto.setVehicle_code(String.valueOf(docking_barcode)); taskserver.update(taskDto); } + this.set(0, 0, null); this.noFeedAgvMessage = null; message = this.messageInfo(agvphase); logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase)); @@ -502,7 +515,7 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i if (task == 0 && ObjectUtil.isNotEmpty(inst)) { TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); if (taskDto != null) { - Map issued = instructionService.issued(inst.getInstruction_code(), taskDto.getPriority_floor(), taskDto.getBarcodeArr(), "4"); + Map issued = instructionService.issued(inst.getInstruction_code(), taskDto.getPriority_floor(), taskDto.getBarcodeArr(), "4", "1"); this.writing(issued); this.noFeedAgvMessage = "到达取满框点后下发电气任务信息成功,指令号:" + inst.getInstruction_code() + ",等待AGV再次请求后反馈!"; logServer.deviceExecuteLog(device_code, "", "", "下发电气任务信息成功,指令信息:" + JSON.toJSONString(inst) + ",等待AGV再次请求后反馈!"); @@ -536,7 +549,10 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); - this.writing("to_agv_get_finish", "1"); + Map map = new HashMap<>(); + map.put("to_agv_get_finish", "1"); + map.put("to_task_finish", "1"); + this.writing(map); this.set(0, 0, null); noFeedAgvMessage = null; message = this.messageInfo(agvphase); @@ -553,7 +569,11 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i } } else if (agvphase == 0x13 || agvphase == 0x17) { //缓存线出满框送回空框 - if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst) && Integer.parseInt(inst.getInstruction_code()) == task) { + if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst) /*&& Integer.parseInt(inst.getInstruction_code()) == task*/) { + //送回空箱时到达点位判断缓存线是否有其他任务,有其他任务就让缓存线停止转洞 + if (task > 0 && task != Integer.parseInt(inst.getInstruction_code())) { + this.writing("to_pause", "1"); + } this.writing("to_agv_put_ready", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_EMPTY.getCode()); instructionService.update(inst); @@ -564,35 +584,29 @@ public class HailiangAutoCacheLineDeviceDriver extends AbstractOpcDeviceDriver i message = this.messageInfo(agvphase); logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase)); } else { - if (task == 0 && ObjectUtil.isNotEmpty(inst)) { - TaskDto taskDto = taskserver.findByCodeFromCache(inst.getTask_code()); - if (ObjectUtil.isNotEmpty(taskDto)) { - Map issued = instructionService.issued(inst.getInstruction_code(), taskDto.getPriority_floor(), "", "2"); - this.writing(issued); - this.noFeedAgvMessage = "到达送空框点后下发电气任务信息成功,指令号:" + inst.getInstruction_code() + ",等待AGV再次请求后反馈!"; - logServer.deviceExecuteLog(device_code, "", "", "下发电气任务信息成功,指令信息:" + JSON.toJSONString(inst) + ",等待AGV再次请求后反馈!"); - } - } else { - if (task == 0) { - this.noFeedAgvMessage = ""; - this.noFeedAgvMessage += "AGV指令为空!"; - } else { - String noFeedMessage = this.noFeedMessage(); - if (move != 0) { - noFeedMessage += "对接位光电有货,"; - } - this.noFeedAgvMessage = this.replace(noFeedMessage); - } + String notFeedAgvMessage = "到达缓存线送空框点未反馈AGV原因:"; + if (mode != 1) { + notFeedAgvMessage += "工作模式未联机,"; } + if (inst == null) { + notFeedAgvMessage += "AGV指令为空,"; + } + if (move != 0) { + notFeedAgvMessage += "对接位光电有货,"; + } + this.noFeedAgvMessage = this.replace(notFeedAgvMessage); } } else if (agvphase == 0x15 || agvphase == 0x19) { //缓存线出满框送回空框完毕 - if (mode == 1 && move == 1 && ObjectUtil.isNotEmpty(inst) && Integer.parseInt(inst.getInstruction_code()) == task) { + if (mode == 1 && move == 1 && ObjectUtil.isNotEmpty(inst) /*&& Integer.parseInt(inst.getInstruction_code()) == task*/) { this.writing("to_agv_put_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_PUT_EMPTY_FINISH.getCode()); instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); NDCSocketConnectionAutoRun.write(data); + if (task > 0 && task != Integer.parseInt(inst.getInstruction_code())) { + this.writing("to_pause", "0"); + } this.set(0, 0, null); noFeedAgvMessage = null; message = this.messageInfo(agvphase); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/ItemProtocol.java index 054fd5cb..ef93f851 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_auto_cache_line/ItemProtocol.java @@ -608,73 +608,73 @@ public class ItemProtocol { public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_open, "设备开关", "DB1.W4")); - list.add(new ItemDto(item_to_open_check_barcode, "开始匹配条码", "DB1.W6")); - list.add(new ItemDto(item_to_task_type, "任务类型", "DB1.W8")); - list.add(new ItemDto(item_to_agv_put_ready, "放货就绪", "DB1.W10")); - list.add(new ItemDto(item_to_agv_put_finish, "放货完成", "DB1.W12")); - list.add(new ItemDto(item_to_prepare_docking, "准备位到对接位", "DB1.W14")); - list.add(new ItemDto(item_to_agv_get_ready, "取货就绪", "DB1.W16")); - list.add(new ItemDto(item_to_agv_get_finish, "取货完成", "DB1.W18")); - list.add(new ItemDto(item_to_task_finish, "任务完成", "DB1.W20")); - list.add(new ItemDto(item_to_pause, "专机暂停", "DB1.W22")); - list.add(new ItemDto(item_to_priority_layer, "优先层", "DB1.W24")); - list.add(new ItemDto(item_to_start_checking, "开始盘点", "DB1.W28")); - list.add(new ItemDto(item_to_check_finish, "盘点完成清零", "DB1.W30")); - list.add(new ItemDto(item_to_pause_out_check, "暂停出箱匹配", "DB1.W34")); - list.add(new ItemDto(item_to_material_spec1, "物料规格1", "DB1.W40")); - list.add(new ItemDto(item_to_material_spec2, "物料规格2", "DB1.W42")); - list.add(new ItemDto(item_to_material_spec3, "物料规格3", "DB1.W44")); - list.add(new ItemDto(item_to_material_spec4, "物料规格4", "DB1.W46")); - list.add(new ItemDto(item_to_material_spec5, "物料规格5", "DB1.W48")); - list.add(new ItemDto(item_to_material_spec6, "物料规格6", "DB1.W50")); - list.add(new ItemDto(item_to_material_spec7, "物料规格7", "DB1.W52")); - list.add(new ItemDto(item_to_material_spec8, "物料规格8", "DB1.W54")); - list.add(new ItemDto(item_to_material_spec9, "物料规格9", "DB1.W56")); - list.add(new ItemDto(item_to_material_spec10, "物料规格10", "DB1.W58")); - list.add(new ItemDto(item_to_material_spec11, "物料规格11", "DB1.W60")); - list.add(new ItemDto(item_to_material_spec12, "物料规格12", "DB1.W62")); - list.add(new ItemDto(item_to_material_spec13, "物料规格13", "DB1.W64")); - list.add(new ItemDto(item_to_material_spec14, "物料规格14", "DB1.W66")); - list.add(new ItemDto(item_to_material_spec15, "物料规格15", "DB1.W68")); - list.add(new ItemDto(item_to_material_spec16, "物料规格16", "DB1.W70")); - list.add(new ItemDto(item_to_material_spec17, "物料规格17", "DB1.W72")); - list.add(new ItemDto(item_to_material_spec18, "物料规格18", "DB1.W74")); - list.add(new ItemDto(item_to_material_spec19, "物料规格19", "DB1.W76")); - list.add(new ItemDto(item_to_material_spec20, "物料规格20", "DB1.W78")); - list.add(new ItemDto(item_to_prepare_barcode_write, "准备位条码准备", "DB1.D84")); - list.add(new ItemDto(item_to_docking_barcode_write, "对接位条码准备", "DB1.D88")); - list.add(new ItemDto(item_to_task, "任务号", "DB1.D92")); - list.add(new ItemDto(item_to_barcode1, "条码1", "DB1.D96")); - list.add(new ItemDto(item_to_barcode2, "条码2", "DB1.D100")); - list.add(new ItemDto(item_to_barcode3, "条码3", "DB1.D104")); - list.add(new ItemDto(item_to_barcode4, "条码4", "DB1.D108")); - list.add(new ItemDto(item_to_barcode5, "条码5", "DB1.D112")); - list.add(new ItemDto(item_to_barcode6, "条码6", "DB1.D116")); - list.add(new ItemDto(item_to_barcode7, "条码7", "DB1.D120")); - list.add(new ItemDto(item_to_barcode8, "条码8", "DB1.D124")); - list.add(new ItemDto(item_to_barcode9, "条码9", "DB1.D128")); - list.add(new ItemDto(item_to_barcode10, "条码10", "DB1.D132")); - list.add(new ItemDto(item_to_barcode11, "条码11", "DB1.D136")); - list.add(new ItemDto(item_to_barcode12, "条码12", "DB1.D140")); - list.add(new ItemDto(item_to_barcode13, "条码13", "DB1.D144")); - list.add(new ItemDto(item_to_barcode14, "条码14", "DB1.D148")); - list.add(new ItemDto(item_to_barcode15, "条码15", "DB1.D152")); - list.add(new ItemDto(item_to_barcode16, "条码16", "DB1.D156")); - list.add(new ItemDto(item_to_barcode17, "条码17", "DB1.D160")); - list.add(new ItemDto(item_to_barcode18, "条码18", "DB1.D164")); - list.add(new ItemDto(item_to_barcode19, "条码19", "DB1.D168")); - list.add(new ItemDto(item_to_barcode20, "条码20", "DB1.D172")); - list.add(new ItemDto(item_to_barcode21, "条码21", "DB1.D176")); - list.add(new ItemDto(item_to_barcode22, "条码22", "DB1.D180")); - list.add(new ItemDto(item_to_barcode23, "条码23", "DB1.D184")); - list.add(new ItemDto(item_to_barcode24, "条码24", "DB1.D188")); - list.add(new ItemDto(item_to_barcode25, "条码25", "DB1.D192")); - list.add(new ItemDto(item_to_barcode26, "条码26", "DB1.D196")); - list.add(new ItemDto(item_to_barcode27, "条码27", "DB1.D200")); - list.add(new ItemDto(item_to_barcode28, "条码28", "DB1.D204")); - list.add(new ItemDto(item_to_barcode29, "条码29", "DB1.D208")); - list.add(new ItemDto(item_to_barcode30, "条码30", "DB1.D212")); + list.add(new ItemDto(item_to_open, "设备开关", "DB2.W4")); + list.add(new ItemDto(item_to_open_check_barcode, "开始匹配条码", "DB2.W6")); + list.add(new ItemDto(item_to_task_type, "任务类型", "DB2.W8")); + list.add(new ItemDto(item_to_agv_put_ready, "放货就绪", "DB2.W10")); + list.add(new ItemDto(item_to_agv_put_finish, "放货完成", "DB2.W12")); + list.add(new ItemDto(item_to_prepare_docking, "准备位到对接位", "DB2.W14")); + list.add(new ItemDto(item_to_agv_get_ready, "取货就绪", "DB2.W16")); + list.add(new ItemDto(item_to_agv_get_finish, "取货完成", "DB2.W18")); + list.add(new ItemDto(item_to_task_finish, "任务完成", "DB2.W20")); + list.add(new ItemDto(item_to_pause, "专机暂停", "DB2.W22")); + list.add(new ItemDto(item_to_priority_layer, "优先层", "DB2.W24")); + list.add(new ItemDto(item_to_start_checking, "开始盘点", "DB2.W28")); + list.add(new ItemDto(item_to_check_finish, "盘点完成清零", "DB2.W30")); + list.add(new ItemDto(item_to_pause_out_check, "暂停出箱匹配", "DB2.W34")); + list.add(new ItemDto(item_to_material_spec1, "物料规格1", "DB2.W40")); + list.add(new ItemDto(item_to_material_spec2, "物料规格2", "DB2.W42")); + list.add(new ItemDto(item_to_material_spec3, "物料规格3", "DB2.W44")); + list.add(new ItemDto(item_to_material_spec4, "物料规格4", "DB2.W46")); + list.add(new ItemDto(item_to_material_spec5, "物料规格5", "DB2.W48")); + list.add(new ItemDto(item_to_material_spec6, "物料规格6", "DB2.W50")); + list.add(new ItemDto(item_to_material_spec7, "物料规格7", "DB2.W52")); + list.add(new ItemDto(item_to_material_spec8, "物料规格8", "DB2.W54")); + list.add(new ItemDto(item_to_material_spec9, "物料规格9", "DB2.W56")); + list.add(new ItemDto(item_to_material_spec10, "物料规格10", "DB2.W58")); + list.add(new ItemDto(item_to_material_spec11, "物料规格11", "DB2.W60")); + list.add(new ItemDto(item_to_material_spec12, "物料规格12", "DB2.W62")); + list.add(new ItemDto(item_to_material_spec13, "物料规格13", "DB2.W64")); + list.add(new ItemDto(item_to_material_spec14, "物料规格14", "DB2.W66")); + list.add(new ItemDto(item_to_material_spec15, "物料规格15", "DB2.W68")); + list.add(new ItemDto(item_to_material_spec16, "物料规格16", "DB2.W70")); + list.add(new ItemDto(item_to_material_spec17, "物料规格17", "DB2.W72")); + list.add(new ItemDto(item_to_material_spec18, "物料规格18", "DB2.W74")); + list.add(new ItemDto(item_to_material_spec19, "物料规格19", "DB2.W76")); + list.add(new ItemDto(item_to_material_spec20, "物料规格20", "DB2.W78")); + list.add(new ItemDto(item_to_prepare_barcode_write, "准备位条码准备", "DB2.D84")); + list.add(new ItemDto(item_to_docking_barcode_write, "对接位条码准备", "DB2.D88")); + list.add(new ItemDto(item_to_task, "任务号", "DB2.D92")); + list.add(new ItemDto(item_to_barcode1, "条码1", "DB2.D96")); + list.add(new ItemDto(item_to_barcode2, "条码2", "DB2.D100")); + list.add(new ItemDto(item_to_barcode3, "条码3", "DB2.D104")); + list.add(new ItemDto(item_to_barcode4, "条码4", "DB2.D108")); + list.add(new ItemDto(item_to_barcode5, "条码5", "DB2.D112")); + list.add(new ItemDto(item_to_barcode6, "条码6", "DB2.D116")); + list.add(new ItemDto(item_to_barcode7, "条码7", "DB2.D120")); + list.add(new ItemDto(item_to_barcode8, "条码8", "DB2.D124")); + list.add(new ItemDto(item_to_barcode9, "条码9", "DB2.D128")); + list.add(new ItemDto(item_to_barcode10, "条码10", "DB2.D132")); + list.add(new ItemDto(item_to_barcode11, "条码11", "DB2.D136")); + list.add(new ItemDto(item_to_barcode12, "条码12", "DB2.D140")); + list.add(new ItemDto(item_to_barcode13, "条码13", "DB2.D144")); + list.add(new ItemDto(item_to_barcode14, "条码14", "DB2.D148")); + list.add(new ItemDto(item_to_barcode15, "条码15", "DB2.D152")); + list.add(new ItemDto(item_to_barcode16, "条码16", "DB2.D156")); + list.add(new ItemDto(item_to_barcode17, "条码17", "DB2.D160")); + list.add(new ItemDto(item_to_barcode18, "条码18", "DB2.D164")); + list.add(new ItemDto(item_to_barcode19, "条码19", "DB2.D168")); + list.add(new ItemDto(item_to_barcode20, "条码20", "DB2.D172")); + list.add(new ItemDto(item_to_barcode21, "条码21", "DB2.D176")); + list.add(new ItemDto(item_to_barcode22, "条码22", "DB2.D180")); + list.add(new ItemDto(item_to_barcode23, "条码23", "DB2.D184")); + list.add(new ItemDto(item_to_barcode24, "条码24", "DB2.D188")); + list.add(new ItemDto(item_to_barcode25, "条码25", "DB2.D192")); + list.add(new ItemDto(item_to_barcode26, "条码26", "DB2.D196")); + list.add(new ItemDto(item_to_barcode27, "条码27", "DB2.D200")); + list.add(new ItemDto(item_to_barcode28, "条码28", "DB2.D204")); + list.add(new ItemDto(item_to_barcode29, "条码29", "DB2.D208")); + list.add(new ItemDto(item_to_barcode30, "条码30", "DB2.D212")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java index 313d11c4..330f5f17 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/HailiangCleaningFeedingLineDriver.java @@ -1,6 +1,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_cleaning_feeding_line; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -157,18 +158,18 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { @@ -301,6 +302,7 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i jo.put("noFeedMessage", this.getNoFeedMessage()); jo.put("noApplyTaskMessage", this.getNoApplyTaskMessage()); jo.put("driver_type", "hailiang_cleaning_feeding_line"); + jo.put("is_click", true); return jo; } @@ -313,7 +315,8 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i @Override public void setDeviceStatus(JSONObject data) { String requestSucess = data.getString("requireSucess"); - this.requireSucess = requestSucess.equals("0") ? false : true; + if (StrUtil.isNotEmpty(requestSucess)) + this.requireSucess = requestSucess.equals("0") ? false : true; } /** @@ -349,6 +352,14 @@ public class HailiangCleaningFeedingLineDriver extends AbstractOpcDeviceDriver i this.writing(map); } + /** + * 下发工单完成信息 + */ + @Override + public void issuedOrderFinish() { + + } + /** * 设备暂停调用方法 */ diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/ItemProtocol.java index 2587d8c3..8f436d3d 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_feeding_line/ItemProtocol.java @@ -96,13 +96,13 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_mode, "工作模式", "DB1.X0.0")); - list.add(new ItemDto(item_is_open, "开机状态", "DB1.X0.1")); - list.add(new ItemDto(item_in_ready, "入料就绪", "DB1.X0.7")); - list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.X1.0")); - list.add(new ItemDto(item_task_finish, "任务完成", "DB1.X1.1")); - list.add(new ItemDto(item_allowed_in, "清洗机允许上料", "DB1.X1.2")); - list.add(new ItemDto(item_error, "报警信号", "DB1.w4")); + list.add(new ItemDto(item_mode, "工作模式", "DB1.B0.0")); + list.add(new ItemDto(item_is_open, "开机状态", "DB1.B0.1")); + list.add(new ItemDto(item_in_ready, "入料就绪", "DB1.B0.7")); + list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.B1.0")); + list.add(new ItemDto(item_task_finish, "任务完成", "DB1.B1.1")); + list.add(new ItemDto(item_allowed_in, "清洗机允许上料", "DB1.B1.2")); + list.add(new ItemDto(item_error, "故障信息", "DB1.W4")); list.add(new ItemDto(item_in_pcsn, "上料批次号", "DB1.D156")); return list; } @@ -110,15 +110,16 @@ public class ItemProtocol { public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); list.add(new ItemDto(item_to_open, "设备开关", "DB2.W4")); - list.add(new ItemDto(item_to_compel_finished, "强制完成", "DB2.W6")); + list.add(new ItemDto(item_to_compel_finished, "强制完成任务", "DB2.W6")); list.add(new ItemDto(item_to_dis_weight, "称重禁用", "DB2.W8")); - list.add(new ItemDto(item_to_in_confirm_req, "上料请求确认", "DB2.W40")); + list.add(new ItemDto(item_to_in_confirm_req, "清洗机允许入料确认", "DB2.W40")); list.add(new ItemDto(item_to_in_confirm_finish, "上料命令确认完毕", "DB2.W72")); list.add(new ItemDto(item_to_confirm_finished, "确认完成", "DB2.W74")); list.add(new ItemDto(item_to_pcsn, "批次号", "DB2.D84")); - list.add(new ItemDto(item_to_all_num, "上料总数量", "DB2.D232")); - list.add(new ItemDto(item_to_all_weight, "上料总重量", "DB2.D232")); - list.add(new ItemDto(item_to_del_task, "任务删除", "DB2.D232")); + list.add(new ItemDto(item_to_pcsn, "储料仓号", "DB2.D88")); + list.add(new ItemDto(item_to_all_num, "上料总数量", "DB2.D152")); + list.add(new ItemDto(item_to_all_weight, "上料总重量", "DB2.D156")); + list.add(new ItemDto(item_to_del_task, "任务删除", "DB2.W394")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine/HailiangCleaningMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine/HailiangCleaningMachineDeviceDriver.java index a23fec42..8110aa27 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine/HailiangCleaningMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine/HailiangCleaningMachineDeviceDriver.java @@ -151,13 +151,13 @@ public class HailiangCleaningMachineDeviceDriver extends AbstractOpcDeviceDriver } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { @@ -187,7 +187,12 @@ public class HailiangCleaningMachineDeviceDriver extends AbstractOpcDeviceDriver */ @Override public JSONObject getDeviceStatusName() throws Exception { - return null; + JSONObject jo = new JSONObject(); + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("isOnline", this.getIsonline()); + jo.put("error", ErrorUtil.getDictDetail("clean_error_type", String.valueOf(this.getError()))); + jo.put("driver_type", "hailiang_cleaning_feeding_line"); + return jo; } /** diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java index 09d26b97..90bc5fb3 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/HailiangCleaningMachineStorageStationDeviceDriver.java @@ -47,13 +47,11 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); - //工作模式 - int mode = 0; - //是否运行 + //储料仓运行中 int running = 0; - //是否启动 + //储料仓开关 int is_open = 0; - //报警信号 + //储料仓故障 int error = 0; //储料仓重量 int silo_weight = 0; @@ -62,7 +60,6 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO //储料仓物物料号 int silo_material_no = 0; - int last_mode = 0; int last_running = 0; int last_is_open = 0; int last_error = 0; @@ -93,7 +90,8 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); + } String device_code; @@ -108,7 +106,6 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO public void execute() { try { device_code = this.getDeviceCode(); - mode = this.itemProtocol.getMode(); error = this.itemProtocol.getItem_error(); running = this.itemProtocol.getItem_running(); is_open = this.itemProtocol.getItem_is_open(); @@ -147,19 +144,14 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 - } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); - message = "未联机"; - //有报警 - } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); - message = "有报警"; +// } else if (error != 0) { + //this.setIsonline(false); + //this.setIserror(true); +// message = "有报警"; //无报警 } else { this.setIsonline(true); @@ -168,7 +160,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO //agv到达倒料点 if (agvphase == 0x0B || agvphase == 0x0F) { //判断储料仓联机、无故障、agv执行执行物料编号和上次倒料编号一致或者上次物料清空才允许倒料 - if (mode == 1 && ObjectUtil.isNotEmpty(inst)) { + if (ObjectUtil.isNotEmpty(inst)) { inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_FALL_SEND_FULL.getCode()); instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); @@ -179,9 +171,6 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase)); } else { String notFeedAgvMessage = ""; - if (mode != 1) { - notFeedAgvMessage += "工作模式未联机,"; - } if (inst == null) { notFeedAgvMessage += "AGV指令为空,"; } @@ -191,7 +180,7 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO //agv倒料完成 if (agvphase == 0x0D || agvphase == 0x11) { - if (mode == 1 && ObjectUtil.isNotEmpty(inst)) { + if (ObjectUtil.isNotEmpty(inst)) { //下发储料仓倒料数量及开始称重 Map map = new HashMap<>(); map.put("to_dumping_num", inst.getQuantity()); @@ -207,9 +196,6 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO logServer.deviceExecuteLog(device_code, "", "", this.messageInfo(agvphase)); } else { String notFeedAgvMessage = ""; - if (mode != 1) { - notFeedAgvMessage += "工作模式未联机,"; - } if (inst == null) { notFeedAgvMessage += "AGV指令为空,"; } @@ -217,7 +203,6 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO } } } - last_mode = mode; last_running = running; last_is_open = is_open; //是否启动 last_error = error; //报警信号 @@ -236,7 +221,6 @@ public class HailiangCleaningMachineStorageStationDeviceDriver extends AbstractO public JSONObject getDeviceStatusName() throws Exception { JSONObject jo = new JSONObject(); jo.put("device_name", this.getDevice().getDevice_name()); - jo.put("mode", mode == 1 ? "联机" : "单机"); jo.put("silo_weight", silo_weight); jo.put("full_number", full_number); jo.put("isOnline", this.getIsonline()); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/ItemProtocol.java index 03c3f183..bf8eb083 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_cleaning_machine_storage_station/ItemProtocol.java @@ -11,9 +11,9 @@ import java.util.List; @Data public class ItemProtocol { - public static String item_mode = "mode"; //是否运行 + public static String item_heartbeat = "heartbeat"; public static String item_running = "running"; //是否运行 - public static String item_is_open = "is_open"; //是否启动 + public static String item_is_open = "is_open"; //储料仓开关 public static String item_error = "error"; //报警信号 public static String item_silo_weight = "silo_weight"; //储料仓重量 public static String item_full_number = "full_number"; //储料仓总数量 @@ -31,8 +31,8 @@ public class ItemProtocol { this.driver = driver; } - public int getMode() { - return this.getOpcIntegerValue(item_mode); + public int getHeartbeat() { + return this.getOpcIntegerValue(item_heartbeat); } public int getItem_running() { @@ -59,26 +59,6 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_silo_material_no); } - public int getItem_to_open_weight() { - return this.getOpcIntegerValue(item_to_open_weight); - } - - public int getItem_to_feeding() { - return this.getOpcIntegerValue(item_to_feeding); - } - - public int getItem_to_material_no() { - return this.getOpcIntegerValue(item_to_material_no); - } - - public int getItem_to_dumping_num() { - return this.getOpcIntegerValue(item_to_dumping_num); - } - - public int getItem_to_peel() { - return this.getOpcIntegerValue(item_to_peel); - } - Boolean isonline; @@ -96,10 +76,10 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_mode, "模式", "DB1.W36")); - list.add(new ItemDto(item_running, "是否运行", "DB1.B2.0")); - list.add(new ItemDto(item_is_open, "是否启动", "DB1.B1.0")); - list.add(new ItemDto(item_error, "报警信号", "DB1.W38")); + list.add(new ItemDto(item_heartbeat, "心跳", "DB1.W82")); + list.add(new ItemDto(item_running, "储料仓运行中", "DB1.B2.0")); + list.add(new ItemDto(item_is_open, "储料仓开关", "DB1.W36")); + list.add(new ItemDto(item_error, "储料仓故障", "DB1.W38")); list.add(new ItemDto(item_silo_weight, "储料仓重量", "DB1.D84")); list.add(new ItemDto(item_full_number, "储料仓总数量", "DB1.D164")); list.add(new ItemDto(item_silo_material_no, "储料仓物料号", "DB1.D224")); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_cache/HailiangEngravingCacheDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_cache/HailiangEngravingCacheDeviceDriver.java index 0e5b52b9..1960c1c1 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_cache/HailiangEngravingCacheDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_cache/HailiangEngravingCacheDeviceDriver.java @@ -60,7 +60,8 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); + } String device_code; @@ -89,8 +90,8 @@ public class HailiangEngravingCacheDeviceDriver extends AbstractOpcDeviceDriver } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else { diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java index 9008db1d..66d38eea 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_engraving_machine/HailiangEngravingMachineDeviceDriver.java @@ -165,7 +165,8 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); + } String device_code; @@ -365,18 +366,18 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { @@ -616,6 +617,19 @@ public class HailiangEngravingMachineDeviceDriver extends AbstractOpcDeviceDrive this.writing(map); } + /** + * 下发工单完成信息 + */ + @Override + public void issuedOrderFinish() { + Map map = new HashMap<>(); + map.put("to_order_compel_finished", "1"); + map.put("to_confirm_finished", "1"); + map.put("to_order", "0"); + map.put("to_clear", "1"); + this.writing(map); + } + /** * 设备暂停 */ diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java index 415ba220..b716c391 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/HailiangOldSpecialDeviceDriver.java @@ -26,7 +26,6 @@ import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; -import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -50,63 +49,25 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl @Autowired DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); - int heartbeat = 0; int mode = 0; - int line_status = 0; int error = 0; - int task = 0; - int is_open = 0; - int running = 0; + int now_one_box_num = 0; + int now_order_prod_num = 0; + int line_stock_num = 0; int finish = 0; - int all_ready = 0; int order_compel_finish = 0; int order = 0; - int now_order_prod_num = 0; - int full_number = 0; - int now_one_box_num = 0; - int storage_stock_num = 0; - int line_stock_num = 0; - int open_ready_time = 0; - int device_running_time = 0; - int await_time = 0; int order_prod_allnum = 0; - int empty_is_lack = 0; - int device_is_running = 0; - int empty_is_finish = 0; - int full_ready_req_agv = 0; - int full_out = 0; - int device_prepare = 0; - int device_ready = 0; - int line_ready = 0; - int last_heartbeat = 0; int last_mode = 0; int last_error = 0; - int last_task = 0; - int last_is_open = 0; - int last_running = 0; int last_finish = 0; - int last_all_ready = 0; int last_order_compel_finish = 0; int last_order = 0; int last_now_order_prod_num = 0; - int last_full_number = 0; int last_now_one_box_num = 0; - int last_storage_stock_num = 0; int last_line_stock_num = 0; - int last_open_ready_time = 0; - int last_device_running_time = 0; - int last_await_time = 0; int last_order_prod_allnum = 0; - int last_empty_is_lack = 0; - int last_device_is_running = 0; - int last_empty_is_finish = 0; - int last_full_ready_req_agv = 0; - int last_full_out = 0; - int last_device_prepare = 0; - int last_device_ready = 0; - int last_line_ready = 0; - int last_line_status = 0; //设备在线状态 Boolean isonline = true; @@ -133,46 +94,28 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl public synchronized void execute() { try { device_code = this.getDeviceCode(); - heartbeat = this.itemProtocol.getHeartbeat(); - mode = this.itemProtocol.getMode(); - line_status = this.itemProtocol.getLineStatus(); error = this.itemProtocol.getError(); - task = this.itemProtocol.getTask(); - is_open = this.itemProtocol.getIsOpen(); - running = this.itemProtocol.getRunning(); - finish = this.itemProtocol.getFinish(); - all_ready = this.itemProtocol.getAllReady(); - order_compel_finish = this.itemProtocol.getOrder_compel_finish(); order = this.itemProtocol.getOrder(); - now_order_prod_num = this.itemProtocol.getNow_order_prod_num(); - full_number = this.itemProtocol.getFull_number(); - now_one_box_num = this.itemProtocol.getNow_one_box_num(); - storage_stock_num = this.itemProtocol.getStorage_stock_num(); - line_stock_num = this.itemProtocol.getLine_stock_num(); - open_ready_time = this.itemProtocol.getOpen_ready_time(); - device_running_time = this.itemProtocol.getDevice_running_time(); - await_time = this.itemProtocol.getAwait_time(); - order_prod_allnum = this.itemProtocol.getOrder_prod_allnum(); - empty_is_lack = this.itemProtocol.getEmpty_is_lack(); - device_is_running = this.itemProtocol.getDevice_is_running(); - empty_is_finish = this.itemProtocol.getEmpty_is_finish(); - full_ready_req_agv = this.itemProtocol.getFull_ready_req_agv(); - full_out = this.itemProtocol.getFull_out(); - device_prepare = this.itemProtocol.getDevice_prepare(); - device_ready = this.itemProtocol.getDevice_ready(); - line_ready = this.itemProtocol.getLine_ready(); + mode = this.itemProtocol.getItem_mode(); + finish = this.itemProtocol.getItem_finish(); + order_compel_finish = this.itemProtocol.getItem_order_compel_finish(); + now_order_prod_num = this.itemProtocol.getItem_now_order_prod_num(); + now_one_box_num = this.itemProtocol.getItem_now_one_box_num(); + line_stock_num = this.itemProtocol.getItem_line_stock_num(); + order_prod_allnum = this.itemProtocol.getItem_order_prod_allnum(); isonline = this.itemProtocol.getIsonline(); if (mode != last_mode) { feedDeviceStatusFlag = false; logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } + if (error != last_error) { if (error != 0) { DeviceErrorLogDto dto = new DeviceErrorLogDto(); dto.setDevice_code(device_code); dto.setError_code(String.valueOf(error)); - dto.setError_info(ErrorUtil.getDictDetail("special_error_type", String.valueOf(error))); + dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(error))); deviceErrorLogService.create(dto); } if (error == 1 || error == 51) { @@ -180,12 +123,14 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl } logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } - if (task != last_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); - } + if (finish != last_finish) { + if (mode == 1 && finish == 1) { + MonitoringLargeScreenData.orderData.put(String.valueOf(order), -1); + } logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); } + if (order_compel_finish != last_order_compel_finish) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order_compel_finish:" + last_order_compel_finish + "->" + order_compel_finish); } @@ -193,41 +138,27 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); } if (now_order_prod_num != last_now_order_prod_num) { - if (order > 0) { + if (mode == 1 && order > 0) { MonitoringLargeScreenData.orderData.put(String.valueOf(order), now_order_prod_num); } logServer.deviceExecuteLog(this.device_code, "", "", "信号now_order_prod_num:" + last_now_order_prod_num + "->" + now_order_prod_num); } - if (full_number != last_full_number) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); - } + if (now_one_box_num != last_now_one_box_num) { logServer.deviceExecuteLog(this.device_code, "", "", "信号now_one_box_num:" + last_now_one_box_num + "->" + now_one_box_num); } - if (storage_stock_num != last_storage_stock_num) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号storage_stock_num:" + last_storage_stock_num + "->" + storage_stock_num); - } + if (line_stock_num != last_line_stock_num) { logServer.deviceExecuteLog(this.device_code, "", "", "信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); } + if (order_prod_allnum != last_order_prod_allnum) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order_prod_allnum:" + last_order_prod_allnum + "->" + order_prod_allnum); } - if (empty_is_lack != last_empty_is_lack) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号empty_is_lack:" + last_empty_is_lack + "->" + empty_is_lack); - } - if (empty_is_finish != last_empty_is_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号empty_is_finish:" + last_empty_is_finish + "->" + empty_is_finish); - } - if (full_ready_req_agv != last_full_ready_req_agv) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_ready_req_agv:" + last_full_ready_req_agv + "->" + full_ready_req_agv); - } - if (full_out != last_full_out) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_out:" + last_full_out + "->" + full_out); - } + if (isonline != last_isonline) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号isonline:" + last_isonline + "->" + isonline); feedDeviceStatusFlag = false; + logServer.deviceExecuteLog(this.device_code, "", "", "信号isonline:" + last_isonline + "->" + isonline); } if (!this.itemProtocol.getIsonline() && !feedDeviceStatusFlag) { @@ -309,18 +240,18 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + // this.setIsonline(false); + //this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + // this.setIserror(true); message = "有报警"; //无报警 } else { @@ -329,23 +260,15 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl message = ""; } + last_mode = mode; last_error = error; - last_task = task; - last_is_open = is_open; - last_running = running; last_finish = finish; - last_all_ready = all_ready; last_order_compel_finish = order_compel_finish; last_order = order; last_now_order_prod_num = now_order_prod_num; - last_full_number = full_number; last_now_one_box_num = now_one_box_num; - last_storage_stock_num = storage_stock_num; last_line_stock_num = line_stock_num; - last_open_ready_time = open_ready_time; - last_device_running_time = device_running_time; - last_await_time = await_time; last_order_prod_allnum = order_prod_allnum; last_isonline = isonline; } @@ -364,21 +287,14 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl jo.put("finish", finish == 1 ? "是" : "否"); jo.put("order", order); jo.put("error", ErrorUtil.getDictDetail("special_error_type", String.valueOf(this.getError()))); - jo.put("task", task); jo.put("now_order_prod_num", now_order_prod_num); - jo.put("full_number", full_number); jo.put("now_one_box_num", now_one_box_num); - jo.put("storage_stock_num", storage_stock_num); jo.put("line_stock_num", line_stock_num); jo.put("order_prod_allnum", order_prod_allnum); - jo.put("empty_is_lack", empty_is_lack == 1 ? "是" : "否"); - jo.put("empty_is_finish", empty_is_finish == 1 ? "是" : "否"); - jo.put("full_ready_req_agv", full_ready_req_agv == 1 ? "是" : "否"); - jo.put("full_out", full_out == 1 ? "是" : "否"); jo.put("isOnline", this.getIsonline()); jo.put("isError", this.getIserror()); jo.put("message", this.getMessage()); - jo.put("driver_type", "hailiang_engraving_machine"); + jo.put("driver_type", "hailiang_old_special_device"); return jo; } @@ -407,11 +323,23 @@ public class HailiangOldSpecialDeviceDriver extends AbstractOpcDeviceDriver impl map.put("to_order", dto.getOrder_code()); map.put("to_one_box_num", String.valueOf(dto.getOne_qty())); map.put("to_order_prod_num", dto.getQty().toString()); - map.put("to_out_num", "0"); map.put("to_pause", "0"); this.writing(map); } + /** + * 下发工单完成信息 + */ + @Override + public void issuedOrderFinish() { + Map map = new HashMap<>(); + map.put("to_order_compel_finished", "1"); + map.put("to_confirm_finished", "1"); + map.put("to_order", "0"); + map.put("to_clear", "1"); + this.writing(map); + } + /** * 设备暂停 */ diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/ItemProtocol.java index 7a626c41..f7fde462 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_device/ItemProtocol.java @@ -13,7 +13,6 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; //心跳 public static String item_mode = "mode"; //模式 - public static String item_line_status = "line_status"; //线体状态 public static String item_is_open = "is_open";// 线体是否启动 public static String item_running = "running"; //是否运行 public static String item_finish = "finish";// 订单完成 @@ -21,21 +20,15 @@ public class ItemProtocol { public static String item_order_compel_finish = "order_compel_finish"; // 订单强制完成 public static String item_order = "order"; //订单号 public static String item_error = "error"; //报警信号 - public static String item_task = "task"; //任务号 public static String item_now_order_prod_num = "now_order_prod_num"; //当前生产总量 - public static String item_full_number = "full_number"; //出料口满框数量 - public static String item_now_one_box_num = "now_one_box_num"; //每框数量 - public static String item_storage_stock_num = "storage_stock_num"; //储料仓库存数量 + public static String item_now_one_box_num = "now_one_prod_num"; //每框数量 public static String item_line_stock_num = "line_stock_num"; //线体库存数量 public static String item_open_ready_time = "open_ready_time";//开机准备时间(S) public static String item_device_running_time = "device_running_time";//设备运行时间(S) public static String item_await_time = "await_time";//待机时间(S) public static String item_order_prod_allnum = "order_prod_allnum";//订单生产总量 - public static String item_empty_is_lack = "empty_is_lack"; //空箱位缺箱 + public static String item_line_status = "line_status";//线体状态 public static String item_device_is_running = "device_is_running"; //专机运行状态 - public static String item_empty_is_finish = "empty_is_finish"; //空位完成 - public static String item_full_ready_req_agv = "full_ready_req_agv"; //满箱位就绪,请求AGV - public static String item_full_out = "full_out"; //满箱已运出满箱位 public static String item_device_prepare = "device_prepare"; //专机准备中 public static String item_device_ready = "device_ready"; //专机就绪 public static String item_line_ready = "line_ready"; //线体就绪 @@ -55,18 +48,8 @@ public class ItemProtocol { public static String item_to_order_prod_num = "to_order_prod_num"; //每框接料数量 public static String item_to_one_box_num = "to_one_box_num"; - //倒料数量 - public static String item_to_out_num = "to_out_num"; //工单号 public static String item_to_order = "to_order"; - //agvAGV空位就绪 - public static String item_to_empty_ready = "to_empty_ready"; - //agvAGV满位就绪 - public static String item_to_full_ready = "to_full_ready"; - //agvAGV取货完成 - public static String item_to_pick_finish = "to_pick_finish"; - //任务号 - public static String item_to_task = "to_task"; private HailiangOldSpecialDeviceDriver driver; @@ -79,13 +62,6 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_heartbeat); } - public int getLineStatus() { - return this.getOpcIntegerValue(item_line_status); - } - - public int getIsOpen() { - return this.getOpcIntegerValue(item_is_open); - } public int getError() { return this.getOpcIntegerValue(item_error); @@ -103,96 +79,34 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_order); } - public int getTask() { - return this.getOpcIntegerValue(item_task); - } - - public int getMode() { + public int getItem_mode() { return this.getOpcIntegerValue(item_mode); } - public int getFinish() { + public int getItem_finish() { return this.getOpcIntegerValue(item_finish); } - public int getOrder_compel_finish() { + public int getItem_order_compel_finish() { return this.getOpcIntegerValue(item_order_compel_finish); } - public int getNow_order_prod_num() { + public int getItem_now_order_prod_num() { return this.getOpcIntegerValue(item_now_order_prod_num); } - public int getFull_number() { - return this.getOpcIntegerValue(item_full_number); - } - - public int getNow_one_box_num() { + public int getItem_now_one_box_num() { return this.getOpcIntegerValue(item_now_one_box_num); } - public int getStorage_stock_num() { - return this.getOpcIntegerValue(item_storage_stock_num); - } - - public int getLine_stock_num() { + public int getItem_line_stock_num() { return this.getOpcIntegerValue(item_line_stock_num); } - public int getOpen_ready_time() { - return this.getOpcIntegerValue(item_open_ready_time); - } - - public int getDevice_running_time() { - return this.getOpcIntegerValue(item_device_running_time); - } - - public int getAwait_time() { - return this.getOpcIntegerValue(item_await_time); - } - - public int getOrder_prod_allnum() { + public int getItem_order_prod_allnum() { return this.getOpcIntegerValue(item_order_prod_allnum); } - public int getEmpty_is_lack() { - return this.getOpcIntegerValue(item_empty_is_lack); - } - - public int getDevice_is_running() { - return this.getOpcIntegerValue(item_device_is_running); - } - - public int getEmpty_is_finish() { - return this.getOpcIntegerValue(item_empty_is_finish); - } - - public int getFull_ready_req_agv() { - return this.getOpcIntegerValue(item_full_ready_req_agv); - } - - public int getFull_out() { - return this.getOpcIntegerValue(item_full_out); - } - - public int getDevice_prepare() { - return this.getOpcIntegerValue(item_device_prepare); - } - - public int getDevice_ready() { - return this.getOpcIntegerValue(item_device_ready); - } - - public int getLine_ready() { - return this.getOpcIntegerValue(item_line_ready); - } - - - //是否有货 - public int hasGoods(int move) { - return move; - } - Boolean isonline; public int getOpcIntegerValue(String protocol) { @@ -223,52 +137,40 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); + list.add(new ItemDto(item_heartbeat, "心跳", "VW22")); + list.add(new ItemDto(item_mode, "工作模式", "V1.7", Boolean.valueOf(true))); + list.add(new ItemDto(item_error, "故障信息", "VW8")); + list.add(new ItemDto(item_now_one_box_num, "当前箱生产量(每框实时)", "VD36")); + list.add(new ItemDto(item_now_order_prod_num, "当前生产总量(订单实时)", "VD32")); + list.add(new ItemDto(item_line_stock_num, "线体库存数量(接料位、满料位数量和)", "VD52")); + list.add(new ItemDto(item_order_prod_allnum, "订单生产总量", "VD68")); + list.add(new ItemDto(item_finish, "工单完成", "V1.2")); + list.add(new ItemDto(item_order_compel_finish, "工单强制完成", "V2.0")); + list.add(new ItemDto(item_order, "工单号", "VD72")); + list.add(new ItemDto(item_line_status, "线体状态", "V0.0")); list.add(new ItemDto(item_is_open, "线体开机状态", "V0.1")); list.add(new ItemDto(item_device_is_running, "专机运行状态", "V0.3")); - list.add(new ItemDto(item_empty_is_lack, "空箱位缺箱", "V0.5")); - list.add(new ItemDto(item_running, "空位运行", "V0.6")); - list.add(new ItemDto(item_empty_is_finish, "空位完成", "V0.7")); - list.add(new ItemDto(item_full_ready_req_agv, "满箱位就绪,请求AGV", "V1.0")); - list.add(new ItemDto(item_full_out, "满箱已运出满箱位", "V1.1")); - list.add(new ItemDto(item_finish, "订单完成", "V1.2")); list.add(new ItemDto(item_device_prepare, "专机准备中", "V1.3")); list.add(new ItemDto(item_device_ready, "专机就绪", "V1.4")); list.add(new ItemDto(item_line_ready, "线体就绪", "V1.5")); list.add(new ItemDto(item_all_ready, "所有设备就绪", "V1.6")); - list.add(new ItemDto(item_mode, "手自动状态", "V1.7", Boolean.valueOf(true))); - list.add(new ItemDto(item_order_compel_finish, "订单强制完成", "V2.0")); - list.add(new ItemDto(item_error, "报警信号", "VW8")); - list.add(new ItemDto(item_heartbeat, "心跳", "VW22")); - list.add(new ItemDto(item_now_order_prod_num, "当前生产总量", "VD32")); - list.add(new ItemDto(item_now_one_box_num, "当前箱生产总量", "VD36")); - list.add(new ItemDto(item_task, "任务号", "VD40")); - list.add(new ItemDto(item_full_number, "出料口满框数量", "VD44")); - list.add(new ItemDto(item_storage_stock_num, "储料仓库存数量", "VD48")); - list.add(new ItemDto(item_line_stock_num, "线体库存数量", "VD52")); list.add(new ItemDto(item_open_ready_time, "开机准备时间(S)", "VD56")); list.add(new ItemDto(item_device_running_time, "设备运行时间(S)", "VD60")); list.add(new ItemDto(item_await_time, "待机时间(S)", "VD64")); - list.add(new ItemDto(item_order_prod_allnum, "订单生产总量", "VD68")); - list.add(new ItemDto(item_order, "工单号", "VD72")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); list.add(new ItemDto(item_to_open, "设备开关", "VW108", Boolean.valueOf(true))); - list.add(new ItemDto(item_to_empty_ready, "AGV空位就绪", "VW110")); - list.add(new ItemDto(item_to_full_ready, "AGV满位就绪", "VW112")); - list.add(new ItemDto(item_to_pick_finish, "AGV取货完成", "VW114")); - list.add(new ItemDto(item_to_clear, "当前产量清零", "VW116")); - list.add(new ItemDto(item_to_confirm_finished, "确认完成", "VW118")); - list.add(new ItemDto(item_to_pause, "暂停", "VW120")); - list.add(new ItemDto(item_to_order_compel_finished, "工单强制完成", "VW122")); - list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "VD132")); - list.add(new ItemDto(item_to_one_box_num, "每箱接料数量", "VD136")); - list.add(new ItemDto(item_to_task, "任务号", "VD140")); - list.add(new ItemDto(item_to_out_num, "倒料数量", "VD144")); list.add(new ItemDto(item_to_order, "工单号", "VD172")); + list.add(new ItemDto(item_to_one_box_num, "每箱接料数量", "VD136")); + list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "VD132")); + list.add(new ItemDto(item_to_pause, "暂停", "VW120")); + list.add(new ItemDto(item_to_confirm_finished, "工单确认完成", "VW118")); + list.add(new ItemDto(item_to_order_compel_finished, "工单强制完成", "VW122")); + list.add(new ItemDto(item_to_clear, "当前产量清零", "VW116")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/HailiangOldSpecialEmptyStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/HailiangOldSpecialEmptyStationDeviceDriver.java index 194a284d..1bcc7943 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/HailiangOldSpecialEmptyStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/HailiangOldSpecialEmptyStationDeviceDriver.java @@ -47,24 +47,20 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic String device_code; int mode = 0; - int status = 0; int move = 0; - int finish = 0; - int allready = 0; int order = 0; int error = 0; int task = 0; - int running = 0; + int empty_start = 0; + int empty_put_finish = 0; int last_mode = 0; - int last_status = 0; int last_error = 0; int last_move = 0; int last_task = 0; - int last_all_ready = 0; int last_order = 0; - int last_finish = 0; - int last_running = 0; + int last_empty_start = 0; + int last_empty_put_finish = 0; Boolean isonline = true; @@ -86,7 +82,7 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); } @Override @@ -99,29 +95,27 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic public void execute() { try { device_code = this.getDeviceCode(); - mode = this.getItemProtocol().getMode(); - status = this.getItemProtocol().getStatus(); - move = this.getItemProtocol().getMove(); - finish = this.getItemProtocol().getFinish(); - allready = this.getItemProtocol().getAllReady(); - order = this.getItemProtocol().getOrder(); - error = this.getItemProtocol().getError(); - task = this.getItemProtocol().getTask(); - running = this.getItemProtocol().getRunning(); + error = this.itemProtocol.getError(); + move = this.itemProtocol.getMove(); + task = this.itemProtocol.getTask(); + mode = this.itemProtocol.getMode(); + order = this.itemProtocol.getOrder(); + empty_put_finish = this.itemProtocol.getEmpty_put_finish(); + empty_start = this.itemProtocol.getEmpty_start(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } - if (status != last_status) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); - } if (move != last_move) { logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); } - if (finish != last_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); + if (empty_put_finish != last_empty_put_finish) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号empty_put_finish:" + last_empty_put_finish + "->" + empty_put_finish); } - if (allready != last_all_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号allready:" + last_all_ready + "->" + allready); + if (empty_start != last_empty_start) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号empty_start:" + last_empty_start + "->" + empty_start); + } + if (task != last_task) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); } if (order != last_order) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); @@ -131,31 +125,28 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic DeviceErrorLogDto dto = new DeviceErrorLogDto(); dto.setDevice_code(device_code); dto.setError_code(String.valueOf(error)); - dto.setError_info(ErrorUtil.getDictDetail("empty_error_type", String.valueOf(error))); + dto.setError_info(ErrorUtil.getDictDetail("full_error_type", String.valueOf(error))); deviceErrorLogService.create(dto); } logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } - if (task != last_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); - } } catch (Exception var17) { var17.printStackTrace(); logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + // this.setIsonline(false); + // this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + // this.setIsonline(false); + // this.setIserror(true); message = "有报警"; //无报警 } else { @@ -164,7 +155,7 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic message = ""; //请求放空箱 if (agvphase == 0x13 || agvphase == 0x17) { - if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst)) { + if (mode == 1 && move == 1 && ObjectUtil.isNotEmpty(inst)) { this.writing("to_agv_ready", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_EMPTY.getCode()); instructionService.update(inst); @@ -190,7 +181,7 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic } //放空箱完成 if (agvphase == 0x15 || agvphase == 0x19) { - if (mode == 1 && move == 1 && ObjectUtil.isNotEmpty(inst)) { + if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst)) { this.writing("to_agv_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_PUT_EMPTY_FINISH.getCode()); instructionService.update(inst); @@ -215,6 +206,13 @@ public class HailiangOldSpecialEmptyStationDeviceDriver extends AbstractOpcDevic } } } + last_mode = mode; + last_error = error; + last_move = move; + last_task = task; + last_order = order; + last_empty_put_finish = empty_put_finish; + last_empty_start = empty_start; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/ItemProtocol.java index e3e07ff2..dc0b19ca 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_empty_station/ItemProtocol.java @@ -13,19 +13,15 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_move = "move"; - public static String item_running = "running"; - public static String item_status = "status"; - public static String item_finish = "finish"; - public static String item_all_ready = "all_ready"; - public static String item_order = "order"; public static String item_error = "error"; + public static String item_move = "move"; + public static String item_empty_start = "empty_start"; + public static String item_empty_put_finish = "empty_put_finish"; + public static String item_order = "order"; public static String item_task = "task"; public static String item_to_agv_ready = "to_agv_ready"; - public static String item_to_agv_finish = "to_agv_finish"; - private HailiangOldSpecialEmptyStationDeviceDriver driver; public ItemProtocol(HailiangOldSpecialEmptyStationDeviceDriver driver) { @@ -35,6 +31,7 @@ public class ItemProtocol { public int getHeartbeat() { return this.getOpcIntegerValue(item_heartbeat); } + public int getMode() { return this.getOpcIntegerValue(item_mode); } @@ -43,32 +40,25 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_move); } - public int getRunning() { - return this.getOpcIntegerValue(item_running); + public int getEmpty_start() { + return this.getOpcIntegerValue(item_empty_start); } + public int getEmpty_put_finish() { + return this.getOpcIntegerValue(item_empty_put_finish); + } public int getError() { return this.getOpcIntegerValue(item_error); } - public int getFinish() { return this.getOpcIntegerValue(item_finish);} - - public int getAllReady() { return this.getOpcIntegerValue(item_all_ready);} - - public int getOrder() { return this.getOpcIntegerValue(item_order);} + public int getOrder() { + return this.getOpcIntegerValue(item_order); + } public int getTask() { return this.getOpcIntegerValue(item_task); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } - - //是否有货 - public int hasGoods(int move) { - return move; - } Boolean isonline; @@ -86,14 +76,12 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_status, "线体状态", "V0.0", Boolean.valueOf(true))); - list.add(new ItemDto(item_mode, "线体开机状态", "V0.1")); - list.add(new ItemDto(item_move, "空箱位光电信号", "V0.5")); - list.add(new ItemDto(item_running, "空位运行", "V0.6")); - list.add(new ItemDto(item_finish, "空位完成", "V0.7")); - list.add(new ItemDto(item_all_ready, "所有设备就绪", "V1.6")); - list.add(new ItemDto(item_error, "报警信号", "VW8")); list.add(new ItemDto(item_heartbeat, "心跳", "VW22")); + list.add(new ItemDto(item_mode, "工作模式", "V1.7", Boolean.valueOf(true))); + list.add(new ItemDto(item_error, "故障信息", "VW8")); + list.add(new ItemDto(item_move, "光电开关信号(取反)", "V0.5")); + list.add(new ItemDto(item_empty_start, "空位运行", "V0.6")); + list.add(new ItemDto(item_empty_put_finish, "空位完成", "V0.7")); list.add(new ItemDto(item_task, "任务号", "VD40")); list.add(new ItemDto(item_order, "工单号", "VD72")); return list; @@ -101,7 +89,7 @@ public class ItemProtocol { public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_agv_ready, "AGV空位就绪", "VW110", Boolean.valueOf(true))); + list.add(new ItemDto(item_to_agv_ready, "AGV放空箱就绪", "VW110")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java index 287adcf7..9c32b77d 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/HailiangOldSpecialFullStationDeviceDriver.java @@ -57,24 +57,20 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderServiceImpl.class); int mode = 0; - int move = 0; - int status = 0; - int finish = 0; - int all_ready = 0; - int order = 0; int error = 0; - int task = 0; + int move = 0; int full_number = 0; + int agv_take_finish = 0; + int task = 0; + int order = 0; int last_mode = 0; - int last_status = 0; int last_error = 0; int last_move = 0; - int last_task = 0; - int last_all_ready = 0; - int last_order = 0; - int last_finish = 0; int last_full_number = 0; + int last_agv_take_finish = 0; + int last_task = 0; + int last_order = 0; Boolean isonline = true; int hasGoods = 0; @@ -100,7 +96,7 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); } @Override @@ -113,15 +109,14 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice public void execute() { try { device_code = this.getDeviceCode(); - mode = this.getItemProtocol().getMode(); - move = this.getItemProtocol().getMove(); - status = this.getItemProtocol().getStatus(); - finish = this.getItemProtocol().getFinish(); - all_ready = this.getItemProtocol().getAll_Ready(); - order = this.getItemProtocol().getOrder(); - error = this.getItemProtocol().getError(); - task = this.getItemProtocol().getTask(); - full_number = this.getItemProtocol().getFull_number(); + mode = this.itemProtocol.getMode(); + error = this.itemProtocol.getError(); + move = this.itemProtocol.getMove(); + full_number = this.itemProtocol.getFull_number(); + agv_take_finish = this.itemProtocol.getAgv_take_finish(); + task = this.itemProtocol.getTask(); + order = this.itemProtocol.getOrder(); + if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } @@ -131,18 +126,7 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice } logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); } - if (status != last_status) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); - } - if (finish != last_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); - } - if (all_ready != last_all_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号all_ready:" + last_all_ready + "->" + all_ready); - } - if (order != last_order) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); - } + if (error != last_error) { if (error != 0) { DeviceErrorLogDto dto = new DeviceErrorLogDto(); @@ -153,29 +137,37 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice } logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } + + if (full_number != last_full_number) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); + } if (task != last_task) { logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); } - if (full_number != last_full_number) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); + + if (agv_take_finish != last_agv_take_finish) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号agv_take_finish:" + last_agv_take_finish + "->" + agv_take_finish); + } + if (order != last_order) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); } } catch (Exception var17) { var17.printStackTrace(); logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + // this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { @@ -263,6 +255,13 @@ public class HailiangOldSpecialFullStationDeviceDriver extends AbstractOpcDevice } } } + last_mode = mode; + last_error = error; + last_move = move; + last_task = task; + last_order = order; + last_agv_take_finish = agv_take_finish; + last_full_number = full_number; } /** diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/ItemProtocol.java index a2bad341..c93b7da1 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_full_station/ItemProtocol.java @@ -13,17 +13,15 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_move = "move"; - public static String item_status = "status"; - public static String item_finish = "finish"; - public static String item_all_ready = "all_ready"; - public static String item_order = "order"; public static String item_error = "error"; - public static String item_task = "task"; + public static String item_move = "move"; public static String item_full_number = "full_number"; + public static String item_agv_take_finish = "agv_take_finish"; + public static String item_task = "task"; + public static String item_order = "order"; + public static String item_to_task = "to_task"; public static String item_to_agv_ready = "to_agv_ready"; - public static String item_to_agv_finish = "to_agv_finish"; private HailiangOldSpecialFullStationDeviceDriver driver; @@ -36,39 +34,36 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_heartbeat); } - public int getMove() { - return this.getOpcIntegerValue(item_move); - } public int getMode() { return this.getOpcIntegerValue(item_mode); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } public int getError() { return this.getOpcIntegerValue(item_error); } - public int getFinish() { return this.getOpcIntegerValue(item_finish);} - - public int getAll_Ready() { return this.getOpcIntegerValue(item_all_ready);} - - public int getOrder() { return this.getOpcIntegerValue(item_order);} - - public int getTask() { - return this.getOpcIntegerValue(item_task); + public int getMove() { + return this.getOpcIntegerValue(item_move); } + public int getFull_number() { return this.getOpcIntegerValue(item_full_number); } - //是否有货 - public int hasGoods(int move) { - return move; + public int getAgv_take_finish() { + return this.getOpcIntegerValue(item_agv_take_finish); } + public int getTask() { + return this.getOpcIntegerValue(item_task); + } + + public int getOrder() { + return this.getOpcIntegerValue(item_order); + } + + Boolean isonline; public int getOpcIntegerValue(String protocol) { @@ -86,22 +81,20 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_status, "线体状态", "V0.0", Boolean.valueOf(true))); - list.add(new ItemDto(item_mode, "线体开机状态", "V0.1")); - list.add(new ItemDto(item_finish, "空位完成", "V0.7")); - list.add(new ItemDto(item_move, "满料位光电信号", "V1.0")); - list.add(new ItemDto(item_all_ready, "所有设备就绪", "V1.6")); - list.add(new ItemDto(item_error, "报警信号", "VW8")); list.add(new ItemDto(item_heartbeat, "心跳", "VW22")); - list.add(new ItemDto(item_task, "任务号", "VD40")); + list.add(new ItemDto(item_mode, "工作模式", "V1.7", Boolean.valueOf(true))); + list.add(new ItemDto(item_error, "故障信息", "VW8")); + list.add(new ItemDto(item_move, "光电信号", "V1.0")); list.add(new ItemDto(item_full_number, "出料口满框数量", "VD44")); + list.add(new ItemDto(item_agv_take_finish, "满箱已运出满箱位", "V1.1")); + list.add(new ItemDto(item_task, "任务号", "VD40")); list.add(new ItemDto(item_order, "工单号", "VD72")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_agv_ready, "AGV满位就绪", "W112", Boolean.valueOf(true))); + list.add(new ItemDto(item_to_agv_ready, "AGV取货就绪", "W112", Boolean.valueOf(true))); list.add(new ItemDto(item_to_agv_finish, "AGV取货完成", "W114", Boolean.valueOf(true))); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pick_station/HailiangOldSpecialPickStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pick_station/HailiangOldSpecialPickStationDeviceDriver.java index 85de7119..92f59b4f 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pick_station/HailiangOldSpecialPickStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pick_station/HailiangOldSpecialPickStationDeviceDriver.java @@ -34,20 +34,14 @@ public class HailiangOldSpecialPickStationDeviceDriver extends AbstractOpcDevice int mode = 0; - int status = 0; int error = 0; - int task = 0; - int finish = 0; int order = 0; - int full_number = 0; + int now_one_prod_num = 0; int last_mode = 0; - int last_status = 0; int last_error = 0; - int last_task = 0; - int last_finish = 0; int last_order = 0; - int last_full_number = 0; + int last_now_one_prod_num = 0; Boolean isonline = true; int hasGoods = 0; @@ -70,18 +64,19 @@ public class HailiangOldSpecialPickStationDeviceDriver extends AbstractOpcDevice public void execute() { try { device_code = this.getDeviceCode(); - mode = this.getItemProtocol().getMode(); - status = this.getItemProtocol().getStatus(); - error = this.getItemProtocol().getError(); - task = this.getItemProtocol().getTask(); - finish = this.getItemProtocol().getFinish(); - order = this.getItemProtocol().getOrder(); - full_number = this.getItemProtocol().getFull_number(); + error = this.itemProtocol.getError(); + mode = this.itemProtocol.getMode(); + now_one_prod_num = this.itemProtocol.getItem_now_one_box_num(); + order = this.itemProtocol.getOrder(); + if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } - if (status != last_status) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); + if (order != last_order) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); + } + if (now_one_prod_num != last_now_one_prod_num) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号now_one_prod_num:" + last_now_one_prod_num + "->" + now_one_prod_num); } if (error != last_error) { if (error != 0) { @@ -93,46 +88,43 @@ public class HailiangOldSpecialPickStationDeviceDriver extends AbstractOpcDevice } logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } - if (task != last_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); - } - if (finish != last_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); - } - if (order != last_order) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); - } - if (full_number != last_full_number) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); - } + } catch (Exception var17) { logServer.deviceExecuteLog(this.device_code, "", "", "读取信号出现异常:" + var17.getMessage()); - return; } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { this.setIsonline(true); this.setIserror(false); } + last_mode = mode; + last_error = error; + last_order = order; + last_now_one_prod_num = now_one_prod_num; } @Override public JSONObject getDeviceStatusName() { - return null; + JSONObject jo = new JSONObject(); + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("isOnline", this.getIsonline()); + jo.put("error", ErrorUtil.getDictDetail("error_type", String.valueOf(this.getError()))); + jo.put("driver_type", "hailiang_old_special_pick_station"); + return jo; } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pick_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pick_station/ItemProtocol.java index 054bd1fc..60ab9d04 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pick_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pick_station/ItemProtocol.java @@ -13,16 +13,9 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_finish = "finish"; - public static String item_order = "order"; public static String item_error = "error"; - public static String item_full_number = "full_number"; - public static String item_task = "task"; - public static String item_status = "status"; - - public static String item_to_agv_ready = "to_agv_ready"; - - public static String item_to_agv_finish = "to_agv_finish"; + public static String item_now_one_box_num = "now_one_prod_num"; + public static String item_order = "order"; private HailiangOldSpecialPickStationDeviceDriver driver; @@ -38,27 +31,17 @@ public class ItemProtocol { public int getMode() { return this.getOpcIntegerValue(item_mode); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } public int getError() { return this.getOpcIntegerValue(item_error); } - public int getFinish() { return this.getOpcIntegerValue(item_finish);} - - public int getOrder() { return this.getOpcIntegerValue(item_order);} - - public int getFull_number() { return this.getOpcIntegerValue(item_full_number);} - - public int getTask() { - return this.getOpcIntegerValue(item_task); + public int getOrder() { + return this.getOpcIntegerValue(item_order); } - //是否有货 - public int hasGoods(int move) { - return move; + public int getItem_now_one_box_num() { + return this.getOpcIntegerValue(item_now_one_box_num); } Boolean isonline; @@ -77,13 +60,10 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_status, "线体状态", "V0.0", Boolean.valueOf(true))); - list.add(new ItemDto(item_mode, "线体开机状态", "V0.1")); - list.add(new ItemDto(item_finish, "空位完成", "V0.7")); - list.add(new ItemDto(item_error, "报警信号", "VW8")); list.add(new ItemDto(item_heartbeat, "心跳", "VW22")); - list.add(new ItemDto(item_task, "任务号", "VD40")); - list.add(new ItemDto(item_full_number, "出料口满框数量", "VD44")); + list.add(new ItemDto(item_mode, "工作模式", "V1.7", Boolean.valueOf(true))); + list.add(new ItemDto(item_error, "故障信息", "VW8")); + list.add(new ItemDto(item_now_one_box_num, "当前箱生产量(每框实时)", "VD36")); list.add(new ItemDto(item_order, "工单号", "VD72")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java index c09d71ba..54d93ff5 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/HailiangOldSpecialPourStationDeviceDriver.java @@ -1,6 +1,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_old_special_pour_station; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -27,6 +28,9 @@ import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; +import org.nl.acs.order.service.ProduceshiftorderService; +import org.nl.acs.order.service.dto.ProduceshiftorderDto; +import org.nl.acs.order.service.impl.ProduceshiftorderServiceImpl; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -50,32 +54,22 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice DeviceExecuteLogService logServer = SpringContextHolder.getBean(DeviceExecuteLogService.class); @Autowired DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); + @Autowired + ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderServiceImpl.class); private Date instruction_require_time = new Date(); private int instruction_require_time_out = 3000; int mode = 0; int error = 0; int task = 0; - int status = 0; - int running = 0; - int finish = 0; - int all_ready = 0; int storage_stock_num = 0; - int line_stock_num = 0; int order = 0; - int full_number = 0; - //出入库模式 + int last_mode = 0; int last_error = 0; int last_task = 0; - int last_status = 0; - int last_running = 0; - int last_finish = 0; - int last_all_ready = 0; int last_storage_stock_num = 0; - int last_line_stock_num = 0; int last_order = 0; - int last_full_number = 0; Boolean isonline = true; String message = null; @@ -95,6 +89,8 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice this.agvphase = agvphase; this.index = index; this.inst = inst; + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); + } @@ -114,14 +110,8 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice mode = this.getItemProtocol().getMode(); error = this.getItemProtocol().getError(); task = this.getItemProtocol().getTask(); - status = this.getItemProtocol().getStatus(); - running = this.getItemProtocol().getRunning(); - finish = this.getItemProtocol().getFinish(); - all_ready = this.getItemProtocol().getAll_Ready(); storage_stock_num = this.getItemProtocol().getStorage_stock_num(); - line_stock_num = this.getItemProtocol().getLine_stock_num(); order = this.getItemProtocol().getOrder(); - full_number = this.getItemProtocol().getFull_number(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } @@ -138,15 +128,7 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice if (task != last_task) { logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); } - if (status != last_status) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); - } - if (finish != last_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); - } - if (all_ready != last_all_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号all_ready:" + last_all_ready + "->" + all_ready); - } + if (storage_stock_num != last_storage_stock_num) { if (this.itemProtocol.getIsonline()) { MonitoringLargeScreenData.deviceNumData.put(this.getDevice_code(), this.getStorage_stock_num()); @@ -156,32 +138,26 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice } logServer.deviceExecuteLog(this.device_code, "", "", "信号storage_stock_num:" + last_storage_stock_num + "->" + storage_stock_num); } - if (line_stock_num != last_line_stock_num) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); - } if (order != last_order) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); } - if (full_number != last_full_number) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); - } } catch (Exception var17) { var17.printStackTrace(); logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + // this.setIsonline(false); + // this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + // this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { @@ -253,6 +229,11 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice } } } + last_mode = mode; + last_error = error; + last_task = task; + last_order = order; + last_storage_stock_num = storage_stock_num; } /** @@ -266,13 +247,16 @@ public class HailiangOldSpecialPourStationDeviceDriver extends AbstractOpcDevice log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); return false; } else { - JSONObject reqParam = new JSONObject(); - reqParam.put("device_code", this.getDevice_code()); - reqParam.put("type", StatusEnum.LACK_REQ.getCode()); - reqParam.put("workorder_code", this.getOrder()); - HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); - if (httpResponse != null && httpResponse.getStatus() == 200) { - requireSucess = true; + ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); + if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { + JSONObject reqParam = new JSONObject(); + reqParam.put("device_code", this.getDevice_code()); + reqParam.put("type", StatusEnum.LACK_REQ.getCode()); + reqParam.put("workorder_code", this.getOrder()); + HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); + if (httpResponse != null && httpResponse.getStatus() == 200) { + requireSucess = true; + } } } return true; diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/ItemProtocol.java index 1b1351fa..f9f4ada7 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_old_special_pour_station/ItemProtocol.java @@ -13,18 +13,12 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_status = "status"; - public static String item_running = "running"; - public static String item_finish = "finish"; - public static String item_all_ready = "all_ready"; public static String item_storage_stock_num = "storage_stock_num"; - public static String item_line_stock_num = "line_stock_num"; public static String item_order = "order"; public static String item_error = "error"; - public static String item_full_number = "full_number"; public static String item_task = "task"; - public static String item_to_pour_num = "to_item_pour_num"; + public static String item_to_pour_num = "to_pour_num"; private HailiangOldSpecialPourStationDeviceDriver driver; @@ -40,35 +34,22 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_mode); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } - public int getError() { return this.getOpcIntegerValue(item_error); } - public int getRunning() { return this.getOpcIntegerValue(item_running);} + public int getOrder() { + return this.getOpcIntegerValue(item_order); + } - public int getFinish() { return this.getOpcIntegerValue(item_finish);} - - public int getAll_Ready() { return this.getOpcIntegerValue(item_all_ready);} - - public int getOrder() { return this.getOpcIntegerValue(item_order);} - - public int getFull_number() { return this.getOpcIntegerValue(item_full_number);} - public int getLine_stock_num() { return this.getOpcIntegerValue(item_line_stock_num);} - public int getStorage_stock_num() { return this.getOpcIntegerValue(item_storage_stock_num);} + public int getStorage_stock_num() { + return this.getOpcIntegerValue(item_storage_stock_num); + } public int getTask() { return this.getOpcIntegerValue(item_task); } - //是否有货 - public int hasGoods(int move) { - return move; - } - Boolean isonline; public int getOpcIntegerValue(String protocol) { @@ -85,16 +66,11 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_status, "线体状态", "V0.0", Boolean.valueOf(true))); - list.add(new ItemDto(item_mode, "线体开机状态", "V0.1")); - list.add(new ItemDto(item_running, "空位运行", "V0.6")); - list.add(new ItemDto(item_all_ready, "所有设备就绪", "V1.6")); - list.add(new ItemDto(item_error, "报警信号", "VW8")); list.add(new ItemDto(item_heartbeat, "心跳", "VW22")); - list.add(new ItemDto(item_task, "任务号", "VD40")); - list.add(new ItemDto(item_full_number, "出料口满框数量", "VD44")); + list.add(new ItemDto(item_mode, "工作模式", "V1.7", Boolean.valueOf(true))); + list.add(new ItemDto(item_error, "故障信息", "VW8")); list.add(new ItemDto(item_storage_stock_num, "储料仓库存数量", "VD48")); - list.add(new ItemDto(item_line_stock_num, "线体库存数量", "VD52")); + list.add(new ItemDto(item_task, "任务号", "VD40")); list.add(new ItemDto(item_order, "工单号", "VD72")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java index 855bebe9..d1f3c030 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_packer_station/HailiangPackerStationDeviceDriver.java @@ -125,7 +125,7 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); } @Override @@ -297,25 +297,24 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + // this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //.setIserror(true); message = "有报警"; // //无报警 } else { this.setIsonline(true); this.setIserror(false); - - + message = ""; if (mode == 1 && lack_req == 1 && !requireSucess) { apply_task(); this.noApplyTaskMessage = null; @@ -527,6 +526,19 @@ public class HailiangPackerStationDeviceDriver extends AbstractOpcDeviceDriver i this.writing(map); } + /** + * 下发工单完成信息 + */ + @Override + public void issuedOrderFinish() { + Map map = new HashMap<>(); + map.put("to_order_compel_finished", "1"); + map.put("to_confirm_finished", "1"); + map.put("to_order", "0"); + map.put("to_clear", "1"); + this.writing(map); + } + /** * 设备暂停 */ diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java index 8abb24ab..7256c353 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/HailiangSpecialDeviceDriver.java @@ -26,7 +26,6 @@ import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; -import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -52,60 +51,23 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme int mode = 0; int error = 0; - int task = 0; - int is_open = 0; - int running = 0; + int now_one_box_num = 0; + int now_order_prod_num = 0; + int line_stock_num = 0; int finish = 0; - int all_ready = 0; int order_compel_finish = 0; int order = 0; - int now_order_prod_num = 0; - int full_number = 0; - int now_one_box_num = 0; - int storage_stock_num = 0; - int line_stock_num = 0; - int open_ready_time = 0; - int device_running_time = 0; - int await_time = 0; int order_prod_allnum = 0; - int empty_is_lack = 0; //空箱位缺箱 - int device_is_running = 0; //专机运行状态 - int empty_is_finish = 0; //空位完成 - int full_ready_req_agv = 0; //满箱位就绪,请求AGV - int full_out = 0; //满箱已运出满箱位 - int device_prepare = 0; //专机准备中 - int device_ready = 0; //专机就绪 - int line_ready = 0; //线体就绪 - int device_online = 0; //专机联机 - //出入库模式 - int operation_type = 0; + int last_mode = 0; int last_error = 0; - int last_task = 0; - int last_is_open = 0; - int last_running = 0; int last_finish = 0; - int last_all_ready = 0; int last_order_compel_finish = 0; int last_order = 0; int last_now_order_prod_num = 0; - int last_full_number = 0; int last_now_one_box_num = 0; - int last_storage_stock_num = 0; int last_line_stock_num = 0; - int last_open_ready_time = 0; - int last_device_running_time = 0; - int last_await_time = 0; int last_order_prod_allnum = 0; - int last_empty_is_lack = 0; //空箱位缺箱 - int last_device_is_running = 0; //专机运行状态 - int last_empty_is_finish = 0; //空位完成 - int last_full_ready_req_agv = 0; //满箱位就绪,请求AGV - int last_full_out = 0; //满箱已运出满箱位 - int last_device_prepare = 0; //专机准备中 - int last_device_ready = 0; //专机就绪 - int last_line_ready = 0; //线体就绪 - int last_device_online = 0; //专机联机 //设备是否在线 Boolean isonline = true; @@ -132,64 +94,21 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme try { device_code = this.getDeviceCode(); error = this.itemProtocol.getError(); - task = this.itemProtocol.getTask(); - is_open = this.itemProtocol.getIsOpen(); - running = this.itemProtocol.getRunning(); - all_ready = this.itemProtocol.getAllReady(); order = this.itemProtocol.getOrder(); mode = this.itemProtocol.getItem_mode(); finish = this.itemProtocol.getItem_finish(); order_compel_finish = this.itemProtocol.getItem_order_compel_finish(); now_order_prod_num = this.itemProtocol.getItem_now_order_prod_num(); - full_number = this.itemProtocol.getItem_full_number(); now_one_box_num = this.itemProtocol.getItem_now_one_box_num(); - storage_stock_num = this.itemProtocol.getItem_storage_stock_num(); line_stock_num = this.itemProtocol.getItem_line_stock_num(); - open_ready_time = this.itemProtocol.getItem_open_ready_time(); - device_running_time = this.itemProtocol.getItem_device_running_time(); - await_time = this.itemProtocol.getItem_await_time(); order_prod_allnum = this.itemProtocol.getItem_order_prod_allnum(); - empty_is_lack = this.itemProtocol.getItem_empty_is_lack(); - device_is_running = this.itemProtocol.getItem_device_is_running(); - empty_is_finish = this.itemProtocol.getItem_empty_is_finish(); - full_ready_req_agv = this.itemProtocol.getItem_full_ready_req_agv(); - full_out = this.itemProtocol.getItem_full_out(); - device_prepare = this.itemProtocol.getItem_device_prepare(); - device_ready = this.itemProtocol.getItem_device_ready(); - line_ready = this.itemProtocol.getItem_line_ready(); isonline = this.itemProtocol.getIsonline(); if (mode != last_mode) { feedDeviceStatusFlag = false; logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } - if (empty_is_lack != last_empty_is_lack) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号empty_is_lack:" + last_empty_is_lack + "->" + empty_is_lack); - } - if (device_is_running != last_device_is_running) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号device_is_running:" + last_device_is_running + "->" + device_is_running); - } - if (empty_is_finish != last_empty_is_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号empty_is_finish:" + last_empty_is_finish + "->" + empty_is_finish); - } - if (full_ready_req_agv != last_full_ready_req_agv) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_ready_req_agv:" + last_full_ready_req_agv + "->" + full_ready_req_agv); - } - if (full_out != last_full_out) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_out:" + last_full_out + "->" + full_out); - } - if (device_prepare != last_device_prepare) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号device_prepare:" + last_device_prepare + "->" + device_prepare); - } - if (device_ready != last_device_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号device_ready:" + last_device_ready + "->" + device_ready); - } - if (line_ready != last_line_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号line_ready:" + last_line_ready + "->" + line_ready); - } - if (device_online != last_device_online) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号device_online:" + last_device_online + "->" + device_online); - } + if (error != last_error) { if (error != 0) { DeviceErrorLogDto dto = new DeviceErrorLogDto(); @@ -203,25 +122,14 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme } logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } - if (task != last_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); - } - if (is_open != last_is_open) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号is_open:" + last_is_open + "->" + is_open); - } - if (running != last_running) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号running:" + last_running + "->" + running); - } if (finish != last_finish) { if (mode == 1 && finish == 1) { MonitoringLargeScreenData.orderData.put(String.valueOf(order), -1); } logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); } - if (all_ready != last_all_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号all_ready:" + last_all_ready + "->" + all_ready); - } + if (order_compel_finish != last_order_compel_finish) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order_compel_finish:" + last_order_compel_finish + "->" + order_compel_finish); } @@ -234,21 +142,14 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme } logServer.deviceExecuteLog(this.device_code, "", "", "信号now_order_prod_num:" + last_now_order_prod_num + "->" + now_order_prod_num); } - if (full_number != last_full_number) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); - } + if (now_one_box_num != last_now_one_box_num) { logServer.deviceExecuteLog(this.device_code, "", "", "信号now_one_box_num:" + last_now_one_box_num + "->" + now_one_box_num); } - if (storage_stock_num != last_storage_stock_num) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号storage_stock_num:" + last_storage_stock_num + "->" + storage_stock_num); - } + if (line_stock_num != last_line_stock_num) { logServer.deviceExecuteLog(this.device_code, "", "", "信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); } - if (open_ready_time != last_open_ready_time) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号open_ready_time:" + last_open_ready_time + "->" + open_ready_time); - } if (order_prod_allnum != last_order_prod_allnum) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order_prod_allnum:" + last_order_prod_allnum + "->" + order_prod_allnum); @@ -258,7 +159,6 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme feedDeviceStatusFlag = false; logServer.deviceExecuteLog(this.device_code, "", "", "信号isonline:" + last_isonline + "->" + isonline); } - if (!this.itemProtocol.getIsonline() && !feedDeviceStatusFlag) { JSONObject chm = new JSONObject(); chm.put("device_code", this.getDevice_code()); @@ -339,42 +239,33 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); +// this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); +// this.setIserror(true); message = "未联机"; //有报警 - } else if (error != 0) { - this.setIsonline(false); + } /*else if (error != 0) { + //this.setIsonline(false); this.setIserror(true); message = "有报警"; //无报警 - } else { - this.setIsonline(true); - this.setIserror(false); + } */else { + //this.setIsonline(true); +// this.setIserror(false); message = ""; } last_mode = mode; last_error = error; - last_task = task; - last_is_open = is_open; - last_running = running; last_finish = finish; - last_all_ready = all_ready; last_order_compel_finish = order_compel_finish; last_order = order; last_now_order_prod_num = now_order_prod_num; - last_full_number = full_number; last_now_one_box_num = now_one_box_num; - last_storage_stock_num = storage_stock_num; last_line_stock_num = line_stock_num; - last_open_ready_time = open_ready_time; - last_device_running_time = device_running_time; - last_await_time = await_time; last_order_prod_allnum = order_prod_allnum; last_isonline = isonline; } @@ -395,11 +286,23 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme map.put("to_order", dto.getOrder_code()); map.put("to_one_box_num", String.valueOf(dto.getOne_qty())); map.put("to_order_prod_num", dto.getQty().toString()); - map.put("to_out_num", "0"); map.put("to_pause", "0"); this.writing(map); } + /** + * 下发工单完成信息 + */ + @Override + public void issuedOrderFinish() { + Map map = new HashMap<>(); + map.put("to_order_compel_finished", "1"); + map.put("to_confirm_finished", "1"); + map.put("to_order", "0"); + map.put("to_clear", "1"); + this.writing(map); + } + /** * 专家暂停 */ @@ -429,17 +332,10 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme jo.put("finish", finish == 1 ? "是" : "否"); jo.put("order", order); jo.put("error", ErrorUtil.getDictDetail("special_error_type", String.valueOf(this.getError()))); - jo.put("task", task); jo.put("now_order_prod_num", now_order_prod_num); - jo.put("full_number", full_number); jo.put("now_one_box_num", now_one_box_num); - jo.put("storage_stock_num", storage_stock_num); jo.put("line_stock_num", line_stock_num); jo.put("order_prod_allnum", order_prod_allnum); - jo.put("empty_is_lack", empty_is_lack == 1 ? "是" : "否"); - jo.put("empty_is_finish", empty_is_finish == 1 ? "是" : "否"); - jo.put("full_ready_req_agv", full_ready_req_agv == 1 ? "是" : "否"); - jo.put("full_out", full_out == 1 ? "是" : "否"); jo.put("isOnline", this.getIsonline()); jo.put("isError", this.getIserror()); jo.put("message", this.getMessage()); @@ -456,4 +352,9 @@ public class HailiangSpecialDeviceDriver extends AbstractOpcDeviceDriver impleme public void setDeviceStatus(JSONObject data) { } + + @Override + public String toString() { + return "HailiangSpecialDeviceDriver{}"; + } } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/ItemProtocol.java index c62bdc0b..45060958 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_device/ItemProtocol.java @@ -20,22 +20,15 @@ public class ItemProtocol { public static String item_order_compel_finish = "order_compel_finish"; // 订单强制完成 public static String item_order = "order"; //订单号 public static String item_error = "error"; //报警信号 - public static String item_task = "task"; //任务号 public static String item_now_order_prod_num = "now_order_prod_num"; //当前生产总量 - public static String item_full_number = "full_number"; //出料口满框数量 public static String item_now_one_box_num = "now_one_prod_num"; //每框数量 - public static String item_storage_stock_num = "storage_stock_num"; //储料仓库存数量 public static String item_line_stock_num = "line_stock_num"; //线体库存数量 public static String item_open_ready_time = "open_ready_time";//开机准备时间(S) public static String item_device_running_time = "device_running_time";//设备运行时间(S) public static String item_await_time = "await_time";//待机时间(S) public static String item_order_prod_allnum = "order_prod_allnum";//订单生产总量 - - public static String item_empty_is_lack = "empty_is_lack"; //空箱位缺箱 + public static String item_line_status = "line_status";//线体状态 public static String item_device_is_running = "device_is_running"; //专机运行状态 - public static String item_empty_is_finish = "empty_is_finish"; //空位完成 - public static String item_full_ready_req_agv = "full_ready_req_agv"; //满箱位就绪,请求AGV - public static String item_full_out = "full_out"; //满箱已运出满箱位 public static String item_device_prepare = "device_prepare"; //专机准备中 public static String item_device_ready = "device_ready"; //专机就绪 public static String item_line_ready = "line_ready"; //线体就绪 @@ -55,18 +48,8 @@ public class ItemProtocol { public static String item_to_order_prod_num = "to_order_prod_num"; //每框接料数量 public static String item_to_one_box_num = "to_one_box_num"; - //倒料数量 - public static String item_to_out_num = "to_out_num"; //工单号 public static String item_to_order = "to_order"; - //agvAGV空位就绪 - public static String item_to_empty_ready = "to_empty_ready"; - //agvAGV满位就绪 - public static String item_to_full_ready = "to_full_ready"; - //agvAGV取货完成 - public static String item_to_pick_finish = "to_pick_finish"; - //任务号 - public static String item_to_task = "to_task"; private HailiangSpecialDeviceDriver driver; @@ -78,9 +61,6 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_heartbeat); } - public int getIsOpen() { - return this.getOpcIntegerValue(item_is_open); - } public int getError() { return this.getOpcIntegerValue(item_error); @@ -98,10 +78,6 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_order); } - public int getTask() { - return this.getOpcIntegerValue(item_task); - } - public int getItem_mode() { return this.getOpcIntegerValue(item_mode); } @@ -118,76 +94,18 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_now_order_prod_num); } - public int getItem_full_number() { - return this.getOpcIntegerValue(item_full_number); - } - public int getItem_now_one_box_num() { return this.getOpcIntegerValue(item_now_one_box_num); } - public int getItem_storage_stock_num() { - return this.getOpcIntegerValue(item_storage_stock_num); - } - public int getItem_line_stock_num() { return this.getOpcIntegerValue(item_line_stock_num); } - public int getItem_open_ready_time() { - return this.getOpcIntegerValue(item_open_ready_time); - } - - public int getItem_device_running_time() { - return this.getOpcIntegerValue(item_device_running_time); - } - - public int getItem_await_time() { - return this.getOpcIntegerValue(item_await_time); - } - public int getItem_order_prod_allnum() { return this.getOpcIntegerValue(item_order_prod_allnum); } - public int getItem_empty_is_lack() { - return this.getOpcIntegerValue(item_empty_is_lack); - } - - public int getItem_device_is_running() { - return this.getOpcIntegerValue(item_device_is_running); - } - - public int getItem_empty_is_finish() { - return this.getOpcIntegerValue(item_empty_is_finish); - } - - public int getItem_full_ready_req_agv() { - return this.getOpcIntegerValue(item_full_ready_req_agv); - } - - public int getItem_full_out() { - return this.getOpcIntegerValue(item_full_out); - } - - public int getItem_device_prepare() { - return this.getOpcIntegerValue(item_device_prepare); - } - - public int getItem_device_ready() { - return this.getOpcIntegerValue(item_device_ready); - } - - public int getItem_line_ready() { - return this.getOpcIntegerValue(item_line_ready); - } - - - //是否有货 - public int hasGoods(int move) { - return move; - } - Boolean isonline; public int getOpcIntegerValue(String protocol) { @@ -219,50 +137,39 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.W82")); - list.add(new ItemDto(item_is_open, "线体是否启动", "DB1.B0.1")); - list.add(new ItemDto(item_device_is_running, "专机运行状态", "DB1.B0.3")); - list.add(new ItemDto(item_empty_is_lack, "空箱位缺箱", "DB1.B0.5")); - list.add(new ItemDto(item_running, "是否运行", "DB1.B0.6")); - list.add(new ItemDto(item_empty_is_finish, "空位完成", "DB1.B0.7")); - list.add(new ItemDto(item_full_out, "满箱已运出满箱位", "DB1.B1.1")); - list.add(new ItemDto(item_finish, "订单完成", "DB1.B1.2")); + list.add(new ItemDto(item_mode, "工作模式", "DB1.B1.7")); + list.add(new ItemDto(item_error, "故障信息", "DB1.W4")); + list.add(new ItemDto(item_now_one_box_num, "当前箱生产量(每框实时)", "DB1.D88")); + list.add(new ItemDto(item_now_order_prod_num, "当前生产总量(订单实时)", "DB1.D84")); + list.add(new ItemDto(item_line_stock_num, "线体库存数量(接料位、满料位数量和)", "DB1.D104")); + list.add(new ItemDto(item_order_prod_allnum, "订单生产总量", "DB1.D120")); + list.add(new ItemDto(item_finish, "工单完成", "DB1.B1.2")); + list.add(new ItemDto(item_order_compel_finish, "工单强制完成", "DB1.B2.0")); + list.add(new ItemDto(item_order, "工单号", "DB1.D160")); + + list.add(new ItemDto(item_line_status, "线体手自动状态", "DB1.B0.0")); + list.add(new ItemDto(item_is_open, "线体开机状态", "DB1.B0.1")); list.add(new ItemDto(item_device_prepare, "专机准备中", "DB1.B1.3")); list.add(new ItemDto(item_device_ready, "专机就绪", "DB1.B1.4")); list.add(new ItemDto(item_line_ready, "线体就绪", "DB1.B1.5")); list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.B1.6")); - list.add(new ItemDto(item_mode, "手自动状态", "DB1.B1.7", Boolean.valueOf(true))); - list.add(new ItemDto(item_order_compel_finish, "订单强制完成", "DB1.B2.0")); - list.add(new ItemDto(item_error, "报警信号", "DB1.W4")); - list.add(new ItemDto(item_now_order_prod_num, "当前生产总量", "DB1.D84")); - list.add(new ItemDto(item_now_one_box_num, "每框箱数量", "DB1.D88")); - list.add(new ItemDto(item_task, "任务号", "DB1.D92")); - list.add(new ItemDto(item_full_number, "出料口满框数量", "DB1.D96")); - list.add(new ItemDto(item_storage_stock_num, "储料仓库存数量", "DB1.D100")); - list.add(new ItemDto(item_line_stock_num, "线体库存数量", "DB1.D104")); + list.add(new ItemDto(item_device_is_running, "专机运行", "DB1.B0.3")); list.add(new ItemDto(item_open_ready_time, "开机准备时间(S)", "DB1.D108")); list.add(new ItemDto(item_device_running_time, "设备运行时间(S)", "DB1.D112")); list.add(new ItemDto(item_await_time, "待机时间(S)", "DB1.D116")); - list.add(new ItemDto(item_order_prod_allnum, "订单生产总量", "DB1.D120")); - list.add(new ItemDto(item_full_ready_req_agv, "满箱位就绪,请求AGV", "DB1.B1.0")); - list.add(new ItemDto(item_order, "工单号", "DB1.D160")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_open, "设备开关", "DB2.W4", Boolean.valueOf(true))); - list.add(new ItemDto(item_to_clear, "当前产量清零", "DB2.W12")); - list.add(new ItemDto(item_to_confirm_finished, "确认完成", "DB2.W14")); - list.add(new ItemDto(item_to_pause, "暂停", "DB2.W16")); - list.add(new ItemDto(item_to_order_compel_finished, "工单强制完成", "DB2.W82")); - list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "DB2.D84")); - list.add(new ItemDto(item_to_one_box_num, "每箱接料数量", "DB2.D88")); - list.add(new ItemDto(item_to_out_num, "倒料数量", "DB2.D96")); + list.add(new ItemDto(item_to_open, "设备开关", "DB2.W4")); list.add(new ItemDto(item_to_order, "工单号", "DB2.D160")); - list.add(new ItemDto(item_to_empty_ready, "AGV空位就绪", "DB2.W6")); - list.add(new ItemDto(item_to_full_ready, "AGV满位就绪", "DB2.W8")); - list.add(new ItemDto(item_to_pick_finish, "AGV取货完成", "DB2.W10")); - list.add(new ItemDto(item_to_task, "任务号", "DB2.D92")); + list.add(new ItemDto(item_to_one_box_num, "每箱接料数量", "DB2.D88")); + list.add(new ItemDto(item_to_order_prod_num, "订单生产总量", "DB2.D84")); + list.add(new ItemDto(item_to_pause, "暂停", "DB2.W16")); + list.add(new ItemDto(item_to_confirm_finished, "工单确认完成", "DB2.W14")); + list.add(new ItemDto(item_to_order_compel_finished, "工单强制完成", "DB2.W82")); + list.add(new ItemDto(item_to_clear, "当前产量清零", "DB2.W12")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java index 766e7aca..e84eda93 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/HailiangSpecialEmptyStationDeviceDriver.java @@ -46,24 +46,20 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr String device_code; int mode = 0; - int status = 0; int move = 0; - int finish = 0; - int allready = 0; int order = 0; int error = 0; int task = 0; - int running = 0; + int empty_start = 0; + int empty_put_finish = 0; int last_mode = 0; - int last_status = 0; int last_error = 0; int last_move = 0; int last_task = 0; - int last_all_ready = 0; int last_order = 0; - int last_finish = 0; - int last_running = 0; + int last_empty_start = 0; + int last_empty_put_finish = 0; String noFeedAgvMessage = null; @@ -84,6 +80,8 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr this.agvphase = agvphase; this.index = index; this.inst = inst; + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); + } @Override @@ -98,36 +96,26 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr device_code = this.getDeviceCode(); error = this.itemProtocol.getError(); move = this.itemProtocol.getMove(); - status = this.itemProtocol.getStatus(); task = this.itemProtocol.getTask(); - allready = this.itemProtocol.getAllReady(); mode = this.itemProtocol.getMode(); - finish = this.itemProtocol.getFinish(); order = this.itemProtocol.getOrder(); - hasGoods = this.itemProtocol.getMove(); - running = this.itemProtocol.getRunning(); + empty_put_finish = this.itemProtocol.getEmpty_put_finish(); + empty_start = this.itemProtocol.getEmpty_start(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } if (move != last_move) { logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); } - if (status != last_status) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); + if (empty_put_finish != last_empty_put_finish) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号empty_put_finish:" + last_empty_put_finish + "->" + empty_put_finish); + } + if (empty_start != last_empty_start) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号empty_start:" + last_empty_start + "->" + empty_start); } if (task != last_task) { logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); } - if (running != last_running) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号running:" + last_running + "->" + running); - } - if (allready != last_all_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号allready:" + last_all_ready + "->" + allready); - - } - if (finish != last_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); - } if (order != last_order) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); } @@ -148,27 +136,27 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "未联机"; //有报警 - } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + }/* else if (error != 0) { + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 - } else { + }*/ else { this.setIsonline(true); this.setIserror(false); message = ""; //请求放空箱 if (agvphase == 0x13 || agvphase == 0x17) { - if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst)) { + if (mode == 1 && move == 1 && ObjectUtil.isNotEmpty(inst)) { writing("to_agv_ready", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_TO_PUT_EMPTY.getCode()); instructionService.update(inst); @@ -194,8 +182,8 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr } //放空箱完成 if (agvphase == 0x15 || agvphase == 0x19) { - if (mode == 1 && move == 1 && ObjectUtil.isNotEmpty(inst)) { - writing("to_agv_finish", "1"); + if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst)) { +// writing("to_agv_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_PUT_EMPTY_FINISH.getCode()); instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); @@ -220,14 +208,12 @@ public class HailiangSpecialEmptyStationDeviceDriver extends AbstractOpcDeviceDr } } last_mode = mode; - last_status = status; last_error = error; last_move = move; last_task = task; - last_all_ready = allready; - last_finish = finish; last_order = order; - last_running = running; + last_empty_put_finish = empty_put_finish; + last_empty_start = empty_start; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/ItemProtocol.java index 06eac95a..b770d93e 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_empty_station/ItemProtocol.java @@ -13,19 +13,15 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_move = "move"; - public static String item_running = "running"; - public static String item_status = "status"; - public static String item_finish = "finish"; - public static String item_all_ready = "all_ready"; - public static String item_order = "order"; public static String item_error = "error"; + public static String item_move = "move"; + public static String item_empty_start = "empty_start"; + public static String item_empty_put_finish = "empty_put_finish"; + public static String item_order = "order"; public static String item_task = "task"; public static String item_to_agv_ready = "to_agv_ready"; - public static String item_to_agv_finish = "to_agv_finish"; - private HailiangSpecialEmptyStationDeviceDriver driver; public ItemProtocol(HailiangSpecialEmptyStationDeviceDriver driver) { @@ -35,6 +31,7 @@ public class ItemProtocol { public int getHeartbeat() { return this.getOpcIntegerValue(item_heartbeat); } + public int getMode() { return this.getOpcIntegerValue(item_mode); } @@ -43,32 +40,26 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_move); } - public int getRunning() { - return this.getOpcIntegerValue(item_running); + public int getEmpty_start() { + return this.getOpcIntegerValue(item_empty_start); } + public int getEmpty_put_finish() { + return this.getOpcIntegerValue(item_empty_put_finish); + } public int getError() { return this.getOpcIntegerValue(item_error); } - public int getFinish() { return this.getOpcIntegerValue(item_finish);} - - public int getAllReady() { return this.getOpcIntegerValue(item_all_ready);} - - public int getOrder() { return this.getOpcIntegerValue(item_order);} + public int getOrder() { + return this.getOpcIntegerValue(item_order); + } public int getTask() { return this.getOpcIntegerValue(item_task); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } - //是否有货 - public int hasGoods(int move) { - return move; - } Boolean isonline; @@ -87,13 +78,11 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.W82")); - list.add(new ItemDto(item_mode, "是否启动", "DB1.B0.1")); - list.add(new ItemDto(item_status, "手自动状态", "DB1.B0.0", Boolean.valueOf(true))); + list.add(new ItemDto(item_mode, "工作模式", "DB1.B1.7")); + list.add(new ItemDto(item_error, "故障信息", "DB1.W4")); list.add(new ItemDto(item_move, "光电开关信号(取反)", "DB1.B0.5")); - list.add(new ItemDto(item_running, "空位运行", "DB1.B0.6")); - list.add(new ItemDto(item_finish, "是否完成", "DB1.B0.7")); - list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.B1.6")); - list.add(new ItemDto(item_error, "报警信号", "DB1.W4")); + list.add(new ItemDto(item_empty_start, "空箱位移载电机启动", "DB1.B0.6")); + list.add(new ItemDto(item_empty_put_finish, "空箱位空箱补给完成", "DB1.B0.7")); list.add(new ItemDto(item_task, "任务号", "DB1.D92")); list.add(new ItemDto(item_order, "工单号", "DB1.D160")); return list; @@ -101,7 +90,7 @@ public class ItemProtocol { public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_agv_ready, "AGV就绪", "DB2.W6", Boolean.valueOf(true))); + list.add(new ItemDto(item_to_agv_ready, "AGV放空箱就绪", "DB2.W6")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java index a12d6f84..0eefbde3 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/HailiangSpecialFullStationDeviceDriver.java @@ -58,24 +58,20 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri int mode = 0; - int move = 0; - int status = 0; - int finish = 0; - int allready = 0; - int order = 0; int error = 0; - int task = 0; + int move = 0; int full_number = 0; + int agv_take_finish = 0; + int task = 0; + int order = 0; int last_mode = 0; - int last_status = 0; int last_error = 0; int last_move = 0; - int last_task = 0; - int last_all_ready = 0; - int last_order = 0; - int last_finish = 0; int last_full_number = 0; + int last_agv_take_finish = 0; + int last_task = 0; + int last_order = 0; Boolean isonline = true; int hasGoods = 0; @@ -102,7 +98,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); } @Override @@ -114,15 +110,13 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri public void execute() { try { device_code = this.getDeviceCode(); + mode = this.itemProtocol.getMode(); error = this.itemProtocol.getError(); move = this.itemProtocol.getMove(); - task = this.itemProtocol.getTask(); - allready = this.itemProtocol.getAllReady(); - mode = this.itemProtocol.getMode(); - finish = this.itemProtocol.getFinish(); - order = this.itemProtocol.getOrder(); - hasGoods = this.itemProtocol.getMove(); full_number = this.itemProtocol.getFull_number(); + agv_take_finish = this.itemProtocol.getAgv_take_finish(); + task = this.itemProtocol.getTask(); + order = this.itemProtocol.getOrder(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); @@ -133,24 +127,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri } logServer.deviceExecuteLog(this.device_code, "", "", "信号move:" + last_move + "->" + move); } - if (status != last_status) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); - } - if (full_number != last_full_number) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); - } - if (task != last_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); - } - if (allready != last_all_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号allready:" + last_all_ready + "->" + allready); - } - if (finish != last_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); - } - if (order != last_order) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); - } + if (error != last_error) { if (error != 0) { DeviceErrorLogDto dto = new DeviceErrorLogDto(); @@ -159,29 +136,42 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri dto.setError_info(ErrorUtil.getDictDetail("full_error_type", String.valueOf(error))); deviceErrorLogService.create(dto); } - logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } + if (full_number != last_full_number) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); + } + if (task != last_task) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); + } + + if (agv_take_finish != last_agv_take_finish) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号agv_take_finish:" + last_agv_take_finish + "->" + agv_take_finish); + } + if (order != last_order) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); + } + } catch (Exception var17) { var17.printStackTrace(); logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + // this.setIsonline(false); + // this.setIserror(true); message = "信号量同步异常"; //未联机 - } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); +/* } else if (mode == 0) { + // this.setIsonline(false); + // this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); - message = "有报警"; + //this.setIsonline(false); + //this.setIserror(true); + message = "有报警";*/ //无报警 } else { this.setIsonline(true); @@ -211,9 +201,9 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri //agv到达取货点 if (agvphase == 0x03 || agvphase == 0x07) { - if (mode == 1 && move == 1 && full_number > 0 && ObjectUtil.isNotEmpty(inst)) { + if (mode == 1/* && move == 1 && full_number > 0*/ && ObjectUtil.isNotEmpty(inst)) { //下发取货位agv取货就绪 - writing("to_agv_ready", "1"); + this.writing("to_agv_ready", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_TO_GET.getCode()); instructionService.update(inst); byte[] data = agvService.sendAgvTwoModeInst(agvphase, index, 0); @@ -242,8 +232,7 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri //agv取货完成 if (agvphase == 0x05 || agvphase == 0x09) { - if (mode == 1 && move == 0 && ObjectUtil.isNotEmpty(inst)) { - writing("to_agv_finish", "1"); + if (mode == 1 /*&& move == 0 */&& ObjectUtil.isNotEmpty(inst)) { this.writing("to_agv_finish", "1"); inst.setExecute_status(InstActionEnum.EXECUTE_GET_FINISH.getCode()); instructionService.update(inst); @@ -270,13 +259,12 @@ public class HailiangSpecialFullStationDeviceDriver extends AbstractOpcDeviceDri } last_mode = mode; - last_status = status; last_error = error; last_move = move; last_task = task; - last_all_ready = allready; - last_finish = finish; last_order = order; + last_agv_take_finish = agv_take_finish; + last_full_number = full_number; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/ItemProtocol.java index 8613344b..c141c630 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_full_station/ItemProtocol.java @@ -13,17 +13,15 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_move = "move"; - public static String item_status = "status"; - public static String item_finish = "finish"; - public static String item_all_ready = "all_ready"; - public static String item_order = "order"; public static String item_error = "error"; - public static String item_task = "task"; + public static String item_move = "move"; public static String item_full_number = "full_number"; + public static String item_agv_take_finish = "agv_take_finish"; + public static String item_task = "task"; + public static String item_order = "order"; + public static String item_to_task = "to_task"; public static String item_to_agv_ready = "to_agv_ready"; - public static String item_to_agv_finish = "to_agv_finish"; private HailiangSpecialFullStationDeviceDriver driver; @@ -32,43 +30,41 @@ public class ItemProtocol { this.driver = driver; } + public int getHeartbeat() { return this.getOpcIntegerValue(item_heartbeat); } - public int getMove() { - return this.getOpcIntegerValue(item_move); - } public int getMode() { return this.getOpcIntegerValue(item_mode); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } public int getError() { return this.getOpcIntegerValue(item_error); } - public int getFinish() { return this.getOpcIntegerValue(item_finish);} - - public int getAllReady() { return this.getOpcIntegerValue(item_all_ready);} - - public int getOrder() { return this.getOpcIntegerValue(item_order);} - - public int getTask() { - return this.getOpcIntegerValue(item_task); + public int getMove() { + return this.getOpcIntegerValue(item_move); } + public int getFull_number() { return this.getOpcIntegerValue(item_full_number); } - //是否有货 - public int hasGoods(int move) { - return move; + public int getAgv_take_finish() { + return this.getOpcIntegerValue(item_agv_take_finish); } + public int getTask() { + return this.getOpcIntegerValue(item_task); + } + + public int getOrder() { + return this.getOpcIntegerValue(item_order); + } + + Boolean isonline; public int getOpcIntegerValue(String protocol) { @@ -87,22 +83,21 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.W82")); - list.add(new ItemDto(item_mode, "是否启动", "DB1.B0.1")); - list.add(new ItemDto(item_move, "光电开关信号", "DB1.B1.0")); - list.add(new ItemDto(item_status, "手自动状态", "DB1.B0.0", Boolean.valueOf(true))); - list.add(new ItemDto(item_finish, "是否完成", "DB1.B0.7")); - list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.B1.6")); - list.add(new ItemDto(item_error, "报警信号", "DB1.W4")); + list.add(new ItemDto(item_mode, "工作模式", "DB1.B1.7")); + list.add(new ItemDto(item_error, "故障信息", "DB1.W4")); + list.add(new ItemDto(item_move, "光电信号", "DB1.B1.0")); + list.add(new ItemDto(item_full_number, "出料口满框数量", "DB1.D96")); + list.add(new ItemDto(item_agv_take_finish, "满箱已运出满箱位", "DB1.B1.1")); list.add(new ItemDto(item_task, "任务号", "DB1.D92")); list.add(new ItemDto(item_order, "工单号", "DB1.D160")); - list.add(new ItemDto(item_full_number, "出料口满框数量", "DB1.D96")); return list; } public static List getWriteableItemDtos() { ArrayList list = new ArrayList(); - list.add(new ItemDto(item_to_agv_ready, "AGV就绪", "DB2.W8", Boolean.valueOf(true))); - list.add(new ItemDto(item_to_agv_finish, "AGV完成", "DB2.W10", Boolean.valueOf(true))); + list.add(new ItemDto(item_to_task, "任务号", "DB2.D92")); + list.add(new ItemDto(item_to_agv_ready, "AGV取货就绪", "DB2.W8")); + list.add(new ItemDto(item_to_agv_finish, "AGV取货完成", "DB2.W10")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/HailiangSpecialPickStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/HailiangSpecialPickStationDeviceDriver.java index 4f7c6ac5..5d242a1e 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/HailiangSpecialPickStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/HailiangSpecialPickStationDeviceDriver.java @@ -1,5 +1,6 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_pick_station; +import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSONObject; import lombok.Data; import lombok.RequiredArgsConstructor; @@ -34,20 +35,14 @@ public class HailiangSpecialPickStationDeviceDriver extends AbstractOpcDeviceDri int mode = 0; - int status = 0; int error = 0; - int task = 0; - int finish = 0; int order = 0; - int full_number = 0; + int now_one_prod_num = 0; int last_mode = 0; - int last_status = 0; int last_error = 0; - int last_task = 0; - int last_finish = 0; int last_order = 0; - int last_full_number = 0; + int last_now_one_prod_num = 0; Boolean isonline = true; int hasGoods = 0; @@ -74,32 +69,19 @@ public class HailiangSpecialPickStationDeviceDriver extends AbstractOpcDeviceDri try { device_code = this.getDeviceCode(); error = this.itemProtocol.getError(); - task = this.itemProtocol.getTask(); mode = this.itemProtocol.getMode(); - status = this.itemProtocol.getStatus(); + now_one_prod_num = this.itemProtocol.getItem_now_one_box_num(); order = this.itemProtocol.getOrder(); - finish = this.itemProtocol.getFinish(); - full_number = this.itemProtocol.getFull_number(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } - if (status != last_status) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); - } - if (task != last_task) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); - - } - if (full_number != last_full_number) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); - } - if (finish != last_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); - } if (order != last_order) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); } + if (now_one_prod_num != last_now_one_prod_num) { + logServer.deviceExecuteLog(this.device_code, "", "", "信号now_one_prod_num:" + last_now_one_prod_num + "->" + now_one_prod_num); + } if (error != last_error) { if (error != 0) { DeviceErrorLogDto dto = new DeviceErrorLogDto(); @@ -112,22 +94,23 @@ public class HailiangSpecialPickStationDeviceDriver extends AbstractOpcDeviceDri } } catch (Exception var17) { - return; + var17.printStackTrace(); + logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { @@ -137,18 +120,20 @@ public class HailiangSpecialPickStationDeviceDriver extends AbstractOpcDeviceDri } last_mode = mode; - last_status = status; last_error = error; - last_task = task; - last_full_number = full_number; - last_finish = finish; last_order = order; + last_now_one_prod_num = now_one_prod_num; } @Override public JSONObject getDeviceStatusName() throws Exception { - return null; + JSONObject jo = new JSONObject(); + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("isOnline", this.getIsonline()); + jo.put("error", ErrorUtil.getDictDetail("error_type", String.valueOf(this.getError()))); + jo.put("driver_type", "hailiang_special_pick_station"); + return jo; } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/ItemProtocol.java index 8077d51f..43256fb6 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pick_station/ItemProtocol.java @@ -13,16 +13,9 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_finish = "finish"; - public static String item_order = "order"; public static String item_error = "error"; - public static String item_full_number = "full_number"; - public static String item_task = "task"; - public static String item_status = "status"; - - public static String item_to_agv_ready = "to_agv_ready"; - - public static String item_to_agv_finish = "to_agv_finish"; + public static String item_now_one_box_num = "now_one_prod_num"; + public static String item_order = "order"; private HailiangSpecialPickStationDeviceDriver driver; @@ -38,22 +31,17 @@ public class ItemProtocol { public int getMode() { return this.getOpcIntegerValue(item_mode); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } public int getError() { return this.getOpcIntegerValue(item_error); } - public int getFinish() { return this.getOpcIntegerValue(item_finish);} + public int getOrder() { + return this.getOpcIntegerValue(item_order); + } - public int getOrder() { return this.getOpcIntegerValue(item_order);} - - public int getFull_number() { return this.getOpcIntegerValue(item_full_number);} - - public int getTask() { - return this.getOpcIntegerValue(item_task); + public int getItem_now_one_box_num() { + return this.getOpcIntegerValue(item_now_one_box_num); } //是否有货 @@ -72,18 +60,14 @@ public class ItemProtocol { return value; } return 0; - } public static List getReadableItemDtos() { ArrayList list = new ArrayList(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.W82")); - list.add(new ItemDto(item_mode, "是否启动", "DB1.B0.1")); - list.add(new ItemDto(item_status, "手自动状态", "DB1.B0.0", Boolean.valueOf(true))); - list.add(new ItemDto(item_finish, "是否完成", "DB1.B0.7")); - list.add(new ItemDto(item_error, "报警信号", "DB1.W4")); - list.add(new ItemDto(item_task, "任务号", "DB1.D92")); - list.add(new ItemDto(item_full_number, "出料口满框数量", "DB1.D96")); + list.add(new ItemDto(item_mode, "工作模式", "DB1.B1.7")); + list.add(new ItemDto(item_error, "故障信息", "DB1.W4")); + list.add(new ItemDto(item_now_one_box_num, "当前箱生产量(每框实时)", "DB1.D88")); list.add(new ItemDto(item_order, "工单号", "DB1.D160")); return list; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java index 5610d32d..54f4fb82 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/HailiangSpecialPourStationDeviceDriver.java @@ -1,6 +1,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_special_pour_station; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpResponse; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -27,6 +28,9 @@ import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; +import org.nl.acs.order.service.ProduceshiftorderService; +import org.nl.acs.order.service.dto.ProduceshiftorderDto; +import org.nl.acs.order.service.impl.ProduceshiftorderServiceImpl; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -50,32 +54,22 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri NDCAgvService agvService = SpringContextHolder.getBean(NDCAgvServiceImpl.class); @Autowired DeviceErrorLogService deviceErrorLogService = SpringContextHolder.getBean(DeviceErrorLogServiceImpl.class); + @Autowired + ProduceshiftorderService produceshiftorderService = SpringContextHolder.getBean(ProduceshiftorderServiceImpl.class); private int instruction_require_time_out = 3000; int mode = 0; int error = 0; int task = 0; - int status = 0; - int running = 0; - int finish = 0; - int all_ready = 0; int storage_stock_num = 0; - int line_stock_num = 0; int order = 0; - int full_number = 0; int last_mode = 0; int last_error = 0; int last_task = 0; - int last_status = 0; - int last_running = 0; - int last_finish = 0; - int last_all_ready = 0; int last_storage_stock_num = 0; - int last_line_stock_num = 0; int last_order = 0; - int last_full_number = 0; String message = null; @@ -99,7 +93,7 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri this.agvphase = agvphase; this.index = index; this.inst = inst; - logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + inst.getLink_num()); + logServer.deviceExecuteLog(device_code, "", "", "设置phase值--->" + agvphase + ",index值--->" + index + ",指令信息关联编号--->" + (inst == null ? "" : inst.getLink_num())); } @Override @@ -115,26 +109,14 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri mode = this.itemProtocol.getMode(); error = this.itemProtocol.getError(); task = this.itemProtocol.getTask(); - status = this.itemProtocol.getStatus(); - running = this.itemProtocol.getRunning(); - finish = this.itemProtocol.getFinish(); - all_ready = this.itemProtocol.getAllReady(); storage_stock_num = this.itemProtocol.getStorage_stock_num(); - line_stock_num = this.itemProtocol.getLine_stock_num(); order = this.itemProtocol.getOrder(); - full_number = this.itemProtocol.getFull_number(); if (mode != last_mode) { logServer.deviceExecuteLog(this.device_code, "", "", "信号mode:" + last_mode + "->" + mode); } if (task != last_task) { logServer.deviceExecuteLog(this.device_code, "", "", "信号task:" + last_task + "->" + task); } - if (full_number != last_full_number) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号full_number:" + last_full_number + "->" + full_number); - } - if (finish != last_finish) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号finish:" + last_finish + "->" + finish); - } if (order != last_order) { logServer.deviceExecuteLog(this.device_code, "", "", "信号order:" + last_order + "->" + order); } @@ -149,9 +131,6 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri logServer.deviceItemValue(this.device_code, "error", String.valueOf(error)); logServer.deviceExecuteLog(this.device_code, "", "", "信号error:" + last_error + "->" + error); } - if (status != last_status) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号status:" + last_status + "->" + status); - } if (storage_stock_num != last_storage_stock_num) { if (this.itemProtocol.getIsonline()) { MonitoringLargeScreenData.deviceNumData.put(this.getDevice_code(), this.getStorage_stock_num()); @@ -161,12 +140,6 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri } logServer.deviceExecuteLog(this.device_code, "", "", "信号storage_stock_num:" + last_storage_stock_num + "->" + storage_stock_num); } - if (all_ready != last_all_ready) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号all_ready:" + last_all_ready + "->" + all_ready); - } - if (line_stock_num != last_line_stock_num) { - logServer.deviceExecuteLog(this.device_code, "", "", "信号line_stock_num:" + last_line_stock_num + "->" + line_stock_num); - } } catch (Exception var17) { var17.printStackTrace(); @@ -174,18 +147,18 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "未联机"; //有报警 } else if (error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { @@ -263,14 +236,8 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri last_mode = mode; last_error = error; last_task = task; - last_status = status; - last_running = running; - last_finish = finish; - last_all_ready = all_ready; last_storage_stock_num = storage_stock_num; - last_line_stock_num = line_stock_num; last_order = order; - last_full_number = full_number; } /** @@ -284,13 +251,16 @@ public class HailiangSpecialPourStationDeviceDriver extends AbstractOpcDeviceDri log.trace("触发时间因为小于{}毫秒,而被无视", this.instruction_require_time_out); return false; } else { - JSONObject reqParam = new JSONObject(); - reqParam.put("device_code", this.getDevice_code()); - reqParam.put("type", StatusEnum.LACK_REQ.getCode()); - reqParam.put("workorder_code", this.getOrder()); - HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); - if (httpResponse != null && httpResponse.getStatus() == 200) { - requireSucess = true; + ProduceshiftorderDto produceshiftorderDto = produceshiftorderService.findByCodeFromCache(String.valueOf(order)); + if (produceshiftorderDto != null && StrUtil.equals(produceshiftorderDto.getIs_needmove(), StatusEnum.NEED_MOVE.getCode())) { + JSONObject reqParam = new JSONObject(); + reqParam.put("device_code", this.getDevice_code()); + reqParam.put("type", StatusEnum.LACK_REQ.getCode()); + reqParam.put("workorder_code", this.getOrder()); + HttpResponse httpResponse = acsToWmsService.applyTaskToWms(reqParam); + if (httpResponse != null && httpResponse.getStatus() == 200) { + requireSucess = true; + } } } return true; diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/ItemProtocol.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/ItemProtocol.java index 35f49297..00d62284 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/ItemProtocol.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_special_pour_station/ItemProtocol.java @@ -13,18 +13,12 @@ public class ItemProtocol { public static String item_heartbeat = "heartbeat"; public static String item_mode = "mode"; - public static String item_status = "status"; - public static String item_running = "running"; - public static String item_finish = "finish"; - public static String item_all_ready = "all_ready"; public static String item_storage_stock_num = "storage_stock_num"; - public static String item_line_stock_num = "line_stock_num"; public static String item_order = "order"; public static String item_error = "error"; - public static String item_full_number = "full_number"; public static String item_task = "task"; - public static String item_to_pour_num = "to_item_pour_num"; + public static String item_to_pour_num = "to_pour_num"; private HailiangSpecialPourStationDeviceDriver driver; @@ -40,25 +34,17 @@ public class ItemProtocol { return this.getOpcIntegerValue(item_mode); } - public int getStatus() { - return this.getOpcIntegerValue(item_status); - } - public int getError() { return this.getOpcIntegerValue(item_error); } - public int getRunning() { return this.getOpcIntegerValue(item_running);} + public int getOrder() { + return this.getOpcIntegerValue(item_order); + } - public int getFinish() { return this.getOpcIntegerValue(item_finish);} - - public int getAllReady() { return this.getOpcIntegerValue(item_all_ready);} - - public int getOrder() { return this.getOpcIntegerValue(item_order);} - - public int getFull_number() { return this.getOpcIntegerValue(item_full_number);} - public int getLine_stock_num() { return this.getOpcIntegerValue(item_line_stock_num);} - public int getStorage_stock_num() { return this.getOpcIntegerValue(item_storage_stock_num);} + public int getStorage_stock_num() { + return this.getOpcIntegerValue(item_storage_stock_num); + } public int getTask() { return this.getOpcIntegerValue(item_task); @@ -86,14 +72,9 @@ public class ItemProtocol { public static List getReadableItemDtos() { ArrayList list = new ArrayList(); list.add(new ItemDto(item_heartbeat, "心跳", "DB1.W82")); - list.add(new ItemDto(item_mode, "是否启动", "DB1.B0.1")); - list.add(new ItemDto(item_status, "手自动状态", "DB1.B0.0", Boolean.valueOf(true))); - list.add(new ItemDto(item_running, "是否运行", "DB1.B0.6")); - list.add(new ItemDto(item_all_ready, "所有设备就绪", "DB1.B1.6")); - list.add(new ItemDto(item_error, "报警信号", "DB1.W4")); - list.add(new ItemDto(item_full_number, "出料口满框数量", "DB1.D96")); + list.add(new ItemDto(item_mode, "工作模式", "DB1.B1.7")); + list.add(new ItemDto(item_error, "故障信息", "DB1.W4")); list.add(new ItemDto(item_storage_stock_num, "储料仓库存数量", "DB1.D100")); - list.add(new ItemDto(item_line_stock_num, "线体库存数量", "DB1.D104")); list.add(new ItemDto(item_task, "任务号", "DB1.D92")); list.add(new ItemDto(item_order, "工单号", "DB1.D160")); return list; diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java index d539d86f..f1c331cb 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/device_driver/basedriver/hailiang_one/hailiang_stacking_station/HailiangStackingStationDriver.java @@ -1,6 +1,7 @@ package org.nl.acs.device_driver.basedriver.hailiang_one.hailiang_stacking_station; import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import lombok.Data; @@ -19,12 +20,12 @@ import org.nl.acs.history.ErrorUtil; import org.nl.acs.history.service.DeviceErrorLogService; import org.nl.acs.history.service.dto.DeviceErrorLogDto; import org.nl.acs.history.service.impl.DeviceErrorLogServiceImpl; +import org.nl.acs.instruction.service.dto.Instruction; import org.nl.acs.log.service.DeviceExecuteLogService; import org.nl.acs.monitor.DeviceStageMonitor; import org.nl.acs.opc.Device; import org.nl.acs.order.service.ProduceshiftorderService; import org.nl.acs.order.service.dto.ProduceshiftorderDto; -import org.nl.modules.common.exception.BadRequestException; import org.nl.modules.wql.util.SpringContextHolder; import org.springframework.beans.factory.annotation.Autowired; @@ -114,6 +115,8 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple String message = null; Boolean iserror = false; + private Instruction inst; + //反馈设备状态请求标记 Boolean feedDeviceStatusFlag = false; @@ -169,7 +172,7 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple DeviceErrorLogDto dto = new DeviceErrorLogDto(); dto.setDevice_code(device_code); dto.setError_code(String.valueOf(line_error)); - dto.setError_info(ErrorUtil.getDictDetail("error_type", String.valueOf(line_error))); + dto.setError_info(ErrorUtil.getDictDetail("stack_error_type", String.valueOf(line_error))); deviceErrorLogService.create(dto); } if (line_error == 1 || line_error == 51) { @@ -303,22 +306,23 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple } } catch (Exception var17) { - return; + var17.printStackTrace(); + logServer.deviceExecuteLog(this.device_code, "", "", "读取信号值时出现异常:" + var17 + ",inst == null :" + ObjectUtil.isEmpty(inst)); } if (!this.itemProtocol.getIsonline()) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "信号量同步异常"; //未联机 } else if (mode == 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "未联机"; //有报警 } else if (lane_error != 0 || line_error != 0) { - this.setIsonline(false); - this.setIserror(true); + //this.setIsonline(false); + //this.setIserror(true); message = "有报警"; //无报警 } else { @@ -374,6 +378,17 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple this.writing(map); } + /** + * 下发工单完成信息 + */ + @Override + public void issuedOrderFinish() { + Map map = new HashMap<>(); + map.put("to_compel_finish", "1"); + map.put("to_order", "0"); + this.writing(map); + } + @Override public void toStop() { @@ -386,7 +401,29 @@ public class HailiangStackingStationDriver extends AbstractOpcDeviceDriver imple @Override public JSONObject getDeviceStatusName() throws Exception { - return null; + JSONObject jo = new JSONObject(); + jo.put("device_name", this.getDevice().getDevice_name()); + jo.put("mode", mode == 1 ? "联机" : "单机"); + jo.put("lane_stock_req", lane_stock_req == 1 ? "是" : "否"); + jo.put("finish", finish == 1 ? "是" : "否"); + jo.put("lane1_tray_full", lane1_tray_full == 1 ? "是" : "否"); + jo.put("lane2_tray_full", lane2_tray_full == 1 ? "是" : "否"); + jo.put("lane1_allow_put", lane1_allow_put == 1 ? "是" : "否"); + jo.put("lane2_allow_put", lane2_allow_put == 1 ? "是" : "否"); + jo.put("lane1_tray_current_num", lane1_tray_current_num); + jo.put("lane2_tray_current_num", lane2_tray_current_num); + jo.put("lane1_tray_template", lane1_tray_template); + jo.put("lane2_tray_template", lane2_tray_template); + jo.put("order_now", order_now); + jo.put("tray_now", tray_now); + jo.put("order", order); + jo.put("error", ErrorUtil.getDictDetail("stack_error_type", String.valueOf(line_error))); + jo.put("lane_error", ErrorUtil.getDictDetail("stack_error_type", String.valueOf(lane_error))); + jo.put("isOnline", this.getMode() == 1 ? true : false); + jo.put("isError", this.getLane_error() != 0 || this.getLine_error() != 0 ? true : false); + jo.put("message", this.getMessage()); + jo.put("driver_type", "hailiang_stacking_station"); + return jo; } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java index 5cbec671..07f380ed 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/ext/wms/service/impl/WmsToAcsServiceImpl.java @@ -241,6 +241,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { String outupperlimit_qty = param.getString("outupperlimit_qty"); String device_code = param.getString("device_code"); String is_needmove = param.getString("is_needmove"); + String in_devices = param.getString("in_devices"); if (StrUtil.isEmpty(workorder_id)) { JSONObject json = new JSONObject(); json.put("workorder_id", workorder_id); @@ -302,6 +303,7 @@ public class WmsToAcsServiceImpl implements WmsToAcsService { dto.setDevice_code(device_code); dto.setIs_needmove(is_needmove); dto.setExt_order_id(workorder_id); + dto.setIn_devices(in_devices); dto.setCreate_by("mes"); try { produceshiftorderService.create(dto); diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/rest/InstructionController.java b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/rest/InstructionController.java index 43e95bb4..b632e404 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/rest/InstructionController.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/rest/InstructionController.java @@ -117,6 +117,14 @@ public class InstructionController { return new ResponseEntity<>(HttpStatus.OK); } + @Log("根据关联编号取消指令") + @ApiOperation("根据关联编号取消指令") + @PostMapping(value = "/cancelByLinkNum/{linkNum}") + public ResponseEntity cancelByLinkNum(@RequestBody String linkNum) throws Exception { + instructionService.cancelByLinkNum(linkNum); + return new ResponseEntity<>(HttpStatus.OK); + } + @Log("强制取消指令") @ApiOperation("强制取消指令") @PostMapping(value = "/forceCancel/{id}") @@ -125,6 +133,22 @@ public class InstructionController { return new ResponseEntity<>(HttpStatus.OK); } + @Log("根据关联编号强制取消指令") + @ApiOperation("根据关联编号强制取消指令") + @PostMapping(value = "/forceCancelByLinkNum/{linkNum}") + public ResponseEntity forceCancelByLinkNum(@RequestBody String linkNum) throws Exception { + instructionService.forceCancelByLinkNum(linkNum); + return new ResponseEntity<>(HttpStatus.OK); + } + + @Log("根据关联编号强制完成指令") + @ApiOperation("根据关联编号强制完成指令") + @PostMapping(value = "/finishByLinkNum/{linkNum}") + public ResponseEntity finishByLinkNum(@RequestBody String linkNum) throws Exception { + instructionService.finishByLinkNum(linkNum); + return new ResponseEntity<>(HttpStatus.OK); + } + @Log("导出指令") @ApiOperation("导出指令") @GetMapping(value = "/download") diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java index f0af810e..3fd7790a 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/InstructionService.java @@ -157,6 +157,14 @@ public interface InstructionService { */ void finish(String id) throws Exception; + /** + * 根据指令编号完成指令 + * + * @param linkNum + * @throws Exception + */ + void finishByLinkNum(String linkNum); + /** * 根据指令信息完成指令 * @@ -183,6 +191,14 @@ public interface InstructionService { */ void cancel(String id) throws Exception; + /** + * 根据指令关联编号取消指令 + * + * @param linkNum + * @throws Exception + */ + void cancelByLinkNum(String linkNum) throws Exception; + /** * 根据指令Id强制取消指令 * @@ -191,6 +207,14 @@ public interface InstructionService { */ void forceCancel(String id) throws Exception; + /** + * 根据指令关联编号强制取消指令 + * + * @param linkNum + * @throws Exception + */ + void forceCancelByLinkNum(String linkNum) throws Exception; + /** * 根据指令Id取消指令不下发AGV * @@ -307,7 +331,7 @@ public interface InstructionService { * @param to_task_type 缓存线任务类型 * @return */ - public Map issued(String inst_code, String to_priority_layer, String barcodeArr, String to_task_type); + public Map issued(String inst_code, String to_priority_layer, String barcodeArr, String to_task_type,String to_open_check_barcode); /** * 自动创建指令时,根据任务信息创建指令对象 diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java index d5d48253..c23e0658 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/instruction/service/impl/InstructionServiceImpl.java @@ -688,6 +688,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } @Override + @Transactional public void finish(String id) { Instruction entity = this.findById(id); if (entity == null) throw new BadRequestException("被删除或无权限,操作失败!"); @@ -758,6 +759,22 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } } + @Override + @Transactional + public void finishByLinkNum(String linkNum) { + List insts = this.findByLinkNum(linkNum); + if (insts != null) { + insts.stream().forEach(inst -> { + try { + this.finish(inst.getInstruction_id()); + } catch (Exception e) { + e.printStackTrace(); + throw new BadRequestException(e.getMessage()); + } + }); + } + } + @Override public void finish(Instruction dto) { String instnextdevice = dto.getNext_device_code(); @@ -876,6 +893,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu @Override + @Transactional public void cancel(String id) throws Exception { // flag= true时取消指令 boolean flag = false; @@ -883,6 +901,7 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu if (entity == null) { throw new BadRequestException("被删除或无权限,操作失败!"); } + TaskDto task = taskService.findByCodeFromCache(entity.getTask_code()); if (StrUtil.isEmpty(entity.getRoute_plan_code())) { entity.setRoute_plan_code(task.getRoute_plan_code()); @@ -943,6 +962,23 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu } @Override + @Transactional + public void cancelByLinkNum(String linkNum) { + List insts = this.findByLinkNum(linkNum); + if (insts != null) { + insts.stream().forEach(inst -> { + try { + this.cancel(inst.getInstruction_id()); + } catch (Exception e) { + e.printStackTrace(); + throw new BadRequestException(e.getMessage()); + } + }); + } + } + + @Override + @Transactional public void forceCancel(String id) throws Exception { // flag= true时取消指令 boolean flag = false; @@ -983,6 +1019,22 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu this.update(entity); } + @Override + @Transactional + public void forceCancelByLinkNum(String linkNum) throws Exception { + List insts = this.findByLinkNum(linkNum); + if (insts != null) { + insts.stream().forEach(inst -> { + try { + this.forceCancel(inst.getInstruction_id()); + } catch (Exception e) { + e.printStackTrace(); + throw new BadRequestException(e.getMessage()); + } + }); + } + } + @Override public void cancelNoSendAgv(String id) throws Exception { // flag= true时取消指令 @@ -1279,28 +1331,36 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu //下发电气单出 to_task_type = "4"; } - this.issued(dto.getInstruction_code(), to_priority_layer, barcodeArr, to_task_type); + Map issued = this.issued(dto.getInstruction_code(), to_priority_layer, barcodeArr, to_task_type, "1"); + try { + hailiangAutoCacheLineDeviceDriver.writing(issued); + } catch (Exception e) { + log.error("下发缓存线任务信息失败!指令号:{},失败原因:{}", dto.getInstruction_code(), e.getMessage()); + } } if (putDevice.getDeviceDriver() instanceof HailiangAutoCacheLineDeviceDriver) { - hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) startDevice.getDeviceDriver(); + hailiangAutoCacheLineDeviceDriver = (HailiangAutoCacheLineDeviceDriver) putDevice.getDeviceDriver(); if (tasksByLinNum.size() == 1 && hailiangAutoCacheLineDeviceDriver.getTask() == 0) { //下发电气单入 to_task_type = "2"; - to_priority_layer = ""; } if (tasksByLinNum.size() == 2 && hailiangAutoCacheLineDeviceDriver.getTask() == 0) { //下发电气双入 to_task_type = "3"; - to_priority_layer = ""; + } + Map issued = this.issued(dto.getInstruction_code(), to_priority_layer, barcodeArr, to_task_type, "1"); + try { + hailiangAutoCacheLineDeviceDriver.writing(issued); + } catch (Exception e) { + log.error("下发缓存线任务信息失败!指令号:{},失败原因:{}", dto.getInstruction_code(), e.getMessage()); } } - this.issued(dto.getInstruction_code(), to_priority_layer, barcodeArr, to_task_type); } } } @Override - public Map issued(String inst_code, String to_priority_layer, String barcodeArr, String to_task_type) { + public Map issued(String inst_code, String to_priority_layer, String barcodeArr, String to_task_type, String to_open_check_barcode) { Map map = new HashMap<>(); String[] barcodes = barcodeArr.split(","); if (StrUtil.isNotEmpty(barcodeArr)) { @@ -1318,6 +1378,9 @@ public class InstructionServiceImpl implements InstructionService, ApplicationAu if (StrUtil.isNotEmpty(to_priority_layer)) { map.put("to_priority_layer", to_priority_layer); } + if (StrUtil.isNotEmpty(to_open_check_barcode)) { + map.put("to_open_check_barcode", "1"); + } return map; } diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java index 95c31e35..3d9bd2b8 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/order/service/impl/ProduceshiftorderServiceImpl.java @@ -309,9 +309,17 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A if (isAuto) { status = WorkerOrderEnum.COMPLETE.getCode(); } else { - status = WorkerOrderEnum.COMPLETE.getCode(); + status = WorkerOrderEnum.FORCEFINISH.getCode(); + } + Device device = deviceAppService.findDeviceByCode(pdto.getDevice_code()); + if (device != null && device.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { + try { + IssuedDeviceOrderInfo issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) device.getDeviceDriver(); + issuedDeviceOrderInfo.issuedOrderFinish(); + } catch (Exception e) { + e.printStackTrace(); + } } -// this.addDeviceIsOnline(dto.getDevice_code(), pdto); pdto.setOrder_status(status); this.update(pdto); } @@ -331,12 +339,22 @@ public class ProduceshiftorderServiceImpl implements ProduceshiftorderService, A throw new BadRequestException("不存在该工单外部标识:" + ext_order_id); } // this.addDeviceIsOnline(dto.getDevice_code(), dto); + Device device = deviceAppService.findDeviceByCode(dto.getDevice_code()); + if (device != null && device.getDeviceDriver() instanceof IssuedDeviceOrderInfo) { + try { + IssuedDeviceOrderInfo issuedDeviceOrderInfo = (IssuedDeviceOrderInfo) device.getDeviceDriver(); + issuedDeviceOrderInfo.issuedOrderFinish(); + } catch (Exception e) { + e.printStackTrace(); + } + } WQLObject wo = WQLObject.getWQLObject("acs_produceshiftorder"); dto.setOrder_status(type); dto.setUpdate_time(DateUtil.now()); dto.setUpdate_by("mes"); JSONObject json = (JSONObject) JSONObject.toJSON(dto); wo.update(json); + this.order.removeIf(o -> o.getOrder_code().equals(dto.getOrder_code())); } @Override diff --git a/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java b/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java index adfb3b2c..b0933ca6 100644 --- a/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java +++ b/wcs/nladmin-system/src/main/java/org/nl/acs/task/service/impl/TaskServiceImpl.java @@ -353,8 +353,7 @@ public class TaskServiceImpl implements TaskService, ApplicationAutoInitial { dto.setTask_code(task_code); dto.setRoute_plan_code(route_plan_code); dto.setTask_status(StatusEnum.INST_READY.getCode()); - dto.setStart_device_code2(dto.getStart_point_code2()); - dto.setNext_device_code2(dto.getNext_point_code2()); + dto.setPut_device_code(dto.getPut_point_code()); String plan_code = dto.getRoute_plan_code(); if (routeLineService .getShortPathLines(dto.getStart_device_code(), dto.getNext_device_code(), plan_code) diff --git a/wcs/nladmin-system/src/main/resources/config/application-prod.yml b/wcs/nladmin-system/src/main/resources/config/application-prod.yml index e6113d90..1c45b802 100644 --- a/wcs/nladmin-system/src/main/resources/config/application-prod.yml +++ b/wcs/nladmin-system/src/main/resources/config/application-prod.yml @@ -11,7 +11,7 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:127.0.0.1}:${DB_PORT:3306}/${DB_NAME:hl_acs_test}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} password: ${DB_PWD:123456} # 初始连接数 @@ -140,7 +140,7 @@ file: avatarMaxSize: 5 logging: file: - path: D:\acs_log + path: E:\acs_log config: classpath:logback-spring.xml # Sa-Token配置 diff --git a/wcs/nladmin-system/src/main/resources/config/application-test.yml b/wcs/nladmin-system/src/main/resources/config/application-test.yml index 4a18ca47..2629923b 100644 --- a/wcs/nladmin-system/src/main/resources/config/application-test.yml +++ b/wcs/nladmin-system/src/main/resources/config/application-test.yml @@ -6,9 +6,9 @@ spring: druid: db-type: com.alibaba.druid.pool.DruidDataSource driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy - url: jdbc:log4jdbc:mysql://${DB_HOST:10.1.3.91}:${DB_PORT:3306}/${DB_NAME:acs}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true + url: jdbc:log4jdbc:mysql://${DB_HOST:192.168.81.252}:${DB_PORT:3306}/${DB_NAME:hl_one_acs2}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&useOldAliasMetadataBehavior=true username: ${DB_USER:root} - password: ${DB_PWD:123456} + password: ${DB_PWD:Root.123456} # 初始连接数 initial-size: 5 # 最小连接数 diff --git a/wcs/nladmin-system/src/main/resources/log/AcsToWms.xml b/wcs/nladmin-system/src/main/resources/log/AcsToMes.xml similarity index 96% rename from wcs/nladmin-system/src/main/resources/log/AcsToWms.xml rename to wcs/nladmin-system/src/main/resources/log/AcsToMes.xml index 07c3cc70..b3bf0623 100644 --- a/wcs/nladmin-system/src/main/resources/log/AcsToWms.xml +++ b/wcs/nladmin-system/src/main/resources/log/AcsToMes.xml @@ -6,7 +6,7 @@ - ${LOG_HOME}/ACS请求LMS/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/ACS请求MES/%d{yyyy-MM-dd}.%i.log 15 diff --git a/wcs/nladmin-system/src/main/resources/log/AgvNdcOneDeviceDriver.xml b/wcs/nladmin-system/src/main/resources/log/AgvNdcOneDeviceDriver.xml index cb94a38e..9e78afd7 100644 --- a/wcs/nladmin-system/src/main/resources/log/AgvNdcOneDeviceDriver.xml +++ b/wcs/nladmin-system/src/main/resources/log/AgvNdcOneDeviceDriver.xml @@ -6,7 +6,7 @@ - ${LOG_HOME}/AgvNdcOneDeviceDriver/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/PS20-RT20NDC驱动/%d{yyyy-MM-dd}.%i.log 15 diff --git a/wcs/nladmin-system/src/main/resources/log/AgvNdcTwoDeviceDriver.xml b/wcs/nladmin-system/src/main/resources/log/AgvNdcTwoDeviceDriver.xml index d78b2040..6c2dd301 100644 --- a/wcs/nladmin-system/src/main/resources/log/AgvNdcTwoDeviceDriver.xml +++ b/wcs/nladmin-system/src/main/resources/log/AgvNdcTwoDeviceDriver.xml @@ -6,7 +6,7 @@ - ${LOG_HOME}/AgvNdcTwoDeviceDriver/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/诺宝NDC驱动/%d{yyyy-MM-dd}.%i.log 15 diff --git a/wcs/nladmin-system/src/main/resources/log/AutoCreateInst.xml b/wcs/nladmin-system/src/main/resources/log/AutoCreateInst.xml index cf6996ba..8ca9f9b1 100644 --- a/wcs/nladmin-system/src/main/resources/log/AutoCreateInst.xml +++ b/wcs/nladmin-system/src/main/resources/log/AutoCreateInst.xml @@ -6,7 +6,7 @@ - ${LOG_HOME}/自动创建指令/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/自动创建诺宝AGV指令/%d{yyyy-MM-dd}.%i.log 15 diff --git a/wcs/nladmin-system/src/main/resources/log/AcsToLk.xml b/wcs/nladmin-system/src/main/resources/log/AutoCreateOneInst.xml similarity index 79% rename from wcs/nladmin-system/src/main/resources/log/AcsToLk.xml rename to wcs/nladmin-system/src/main/resources/log/AutoCreateOneInst.xml index c8c2d049..b0a7d883 100644 --- a/wcs/nladmin-system/src/main/resources/log/AcsToLk.xml +++ b/wcs/nladmin-system/src/main/resources/log/AutoCreateOneInst.xml @@ -3,10 +3,10 @@ - + - ${LOG_HOME}/ACS请求立库/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/自动创建RT20-PS20AGV指令/%d{yyyy-MM-dd}.%i.log 15 @@ -19,7 +19,6 @@ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n ${log.charset} - - - + + diff --git a/wcs/nladmin-system/src/main/resources/log/LkToAcs.xml b/wcs/nladmin-system/src/main/resources/log/LkToAcs.xml deleted file mode 100644 index 2df63ce0..00000000 --- a/wcs/nladmin-system/src/main/resources/log/LkToAcs.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - ${LOG_HOME}/立库请求ACS/%d{yyyy-MM-dd}.%i.log - - 15 - - 200MB - - 2GB - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - ${log.charset} - - - - - - - - - - - diff --git a/wcs/nladmin-system/src/main/resources/log/WmsToAcs.xml b/wcs/nladmin-system/src/main/resources/log/MesToAcs.xml similarity index 96% rename from wcs/nladmin-system/src/main/resources/log/WmsToAcs.xml rename to wcs/nladmin-system/src/main/resources/log/MesToAcs.xml index f26a6ef7..ef123a3e 100644 --- a/wcs/nladmin-system/src/main/resources/log/WmsToAcs.xml +++ b/wcs/nladmin-system/src/main/resources/log/MesToAcs.xml @@ -6,7 +6,7 @@ - ${LOG_HOME}/LMS下发ACS/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/MES下发ACS/%d{yyyy-MM-dd}.%i.log 15 diff --git a/wcs/nladmin-system/src/main/resources/log/NDCAgvServiceImpl.xml b/wcs/nladmin-system/src/main/resources/log/NDCAgvServiceImpl.xml index ac284320..1b118689 100644 --- a/wcs/nladmin-system/src/main/resources/log/NDCAgvServiceImpl.xml +++ b/wcs/nladmin-system/src/main/resources/log/NDCAgvServiceImpl.xml @@ -6,11 +6,11 @@ - ${LOG_HOME}/下发AGV系统数据/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/下发NDC系统数据/%d{yyyy-MM-dd}.%i.log 15 - 200MB + 100MB 2GB diff --git a/wcs/nladmin-system/src/main/resources/log/TwoNDC2SocketConnectionAutoRun.xml b/wcs/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml similarity index 84% rename from wcs/nladmin-system/src/main/resources/log/TwoNDC2SocketConnectionAutoRun.xml rename to wcs/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml index b6936e2c..2c61abcd 100644 --- a/wcs/nladmin-system/src/main/resources/log/TwoNDC2SocketConnectionAutoRun.xml +++ b/wcs/nladmin-system/src/main/resources/log/NDCSocketConnectionAutoRun.xml @@ -6,11 +6,11 @@ - ${LOG_HOME}/二楼2NDC系统/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/诺宝NDC系统/%d{yyyy-MM-dd}.%i.log 15 - 200MB + 100MB 2GB @@ -27,7 +27,7 @@ --> - + diff --git a/wcs/nladmin-system/src/main/resources/log/OneNDCSocketConnectionAutoRun.xml b/wcs/nladmin-system/src/main/resources/log/OneNDCSocketConnectionAutoRun.xml index 7387ef7a..3eda4aa7 100644 --- a/wcs/nladmin-system/src/main/resources/log/OneNDCSocketConnectionAutoRun.xml +++ b/wcs/nladmin-system/src/main/resources/log/OneNDCSocketConnectionAutoRun.xml @@ -6,11 +6,11 @@ - ${LOG_HOME}/一楼NDC系统/%d{yyyy-MM-dd}.%i.log + ${LOG_HOME}/PS20-RT20NDC系统/%d{yyyy-MM-dd}.%i.log 15 - 200MB + 100MB 2GB diff --git a/wcs/nladmin-system/src/main/resources/log/TwoNDCSocketConnectionAutoRun.xml b/wcs/nladmin-system/src/main/resources/log/TwoNDCSocketConnectionAutoRun.xml deleted file mode 100644 index db008300..00000000 --- a/wcs/nladmin-system/src/main/resources/log/TwoNDCSocketConnectionAutoRun.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - ${LOG_HOME}/二楼1NDC系统/%d{yyyy-MM-dd}.%i.log - - 15 - - 200MB - - 2GB - - - - %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n - ${log.charset} - - - - - - - - - - - diff --git a/wcs/nladmin-system/src/main/resources/logback-spring.xml b/wcs/nladmin-system/src/main/resources/logback-spring.xml index 1bbafc67..24ad7253 100644 --- a/wcs/nladmin-system/src/main/resources/logback-spring.xml +++ b/wcs/nladmin-system/src/main/resources/logback-spring.xml @@ -26,22 +26,19 @@ https://juejin.cn/post/6844903775631572999 - - + + --> + - - - - - - - + + + diff --git a/wcs/nladmin-ui/src/api/acs/instruction/instruction.js b/wcs/nladmin-ui/src/api/acs/instruction/instruction.js index df0cda54..e474b5ab 100644 --- a/wcs/nladmin-ui/src/api/acs/instruction/instruction.js +++ b/wcs/nladmin-ui/src/api/acs/instruction/instruction.js @@ -32,11 +32,11 @@ export function finish(instruction_id) { }) } -export function cancel(instruction_id) { +export function cancelByLinkNum(linkNum) { return request({ - url: 'api/instruction/cancel/' + instruction_id, + url: 'api/instruction/cancelByLinkNum/' + linkNum, method: 'post', - data: instruction_id + data: linkNum }) } @@ -78,4 +78,20 @@ export function init(instruction_id) { }) } -export default { add, edit, del, finish, cancel, forceCancel, queryUnFinish, queryByTaskId, reload, init } +export function forceCancelByLinkNum(linkNum) { + return request({ + url: 'api/instruction/forceCancelByLinkNum/' + linkNum, + method: 'post', + data: linkNum + }) +} + +export function finishByLinkNum(linkNum) { + return request({ + url: 'api/instruction/finishByLinkNum/' + linkNum, + method: 'post', + data: linkNum + }) +} + +export default { add, edit, del, finish, cancelByLinkNum, forceCancel, forceCancelByLinkNum, queryByTaskId, reload, init, finishByLinkNum } diff --git a/wcs/nladmin-ui/src/views/acs/instruction/index.vue b/wcs/nladmin-ui/src/views/acs/instruction/index.vue index 985f07dd..dd49f5a7 100644 --- a/wcs/nladmin-ui/src/views/acs/instruction/index.vue +++ b/wcs/nladmin-ui/src/views/acs/instruction/index.vue @@ -183,7 +183,7 @@