From 9aefce26355af7cd43bc958c045b196b355693b8 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期五, 10 五月 2024 19:49:46 +0800 Subject: [PATCH] #一楼rgv --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 161 ++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 144 insertions(+), 17 deletions(-) diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java index d2181a2..d33e81d 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -2507,6 +2507,8 @@ short sta1 = 0; short souSta2 = 0; short sta2 = 0; + short matnr = 0; + short matnr2 = 0; //宸ヤ綅涓�浠诲姟 for (RgvSlave.Sta inStn : rgvSlave.getInStn()){ @@ -2534,9 +2536,19 @@ } workNo1 = workNo++; souSta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getSourceStaNo()); - sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo()); + if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 1){ + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2103); + } else if (inStn.getSourceStaNo() == 4007 && staProtocol.getTongType() == 2) { + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),2002); + }else { + sta1 = Utils.getRgvStaNo(rgvSlave.getId(),inStn.getStaNo()); + } work1 = true; + if (inStn.getSourcePlcId() == 4){ + matnr = staProtocol.getMatnr(); + } devpThread.setPakMk(inStn.getSourceStaNo(),false); + break; } } @@ -2573,6 +2585,9 @@ souSta2 = inStn.getSourceStaNo().shortValue(); sta2 = inStn.getStaNo().shortValue(); work2 = true; + if (inStn.getSourcePlcId() == 4){ + matnr2 = staProtocol.getMatnr(); + } devpThread.setPakMk(inStn.getSourceStaNo(),false); break; } @@ -2594,12 +2609,15 @@ command.setDestinationStaNo2(sta2); // 鐩爣绔� command.setAckFinish2(false); // 浠诲姟瀹屾垚纭浣� + command.setMatnr(matnr); + command.setMatnr2(matnr2); + if (workNo1 == 0 && workNo2 !=0){ - command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 鍙栨斁璐� + command.setTaskMode(RgvTaskModeType.FETCH_PUT2); // 浠诲姟妯″紡: 2鍙栨斁璐� } else if (workNo1 != 0 && workNo2 ==0) { - command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 鍙栨斁璐� + command.setTaskMode(RgvTaskModeType.FETCH_PUT1); // 浠诲姟妯″紡: 1鍙栨斁璐� }else { - command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: 鍙栨斁璐� + command.setTaskMode(RgvTaskModeType.FETCH_PUT_ALL); // 浠诲姟妯″紡: all鍙栨斁璐� } command.setCommand(false); rgvTaskSave(command); @@ -2627,23 +2645,24 @@ } //宸ヤ綅涓�浠诲姟瀹屾垚 - if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 1) { + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) { WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1()); if (Cools.isEmpty(wrkMastSta)){ log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); continue; } for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getSourcePlcId()); - StaProtocol staProtocol = devpThread.getStation().get(outStn.getSourceStaNo()); + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo()); if (staProtocol == null) { continue; } else { staProtocol = staProtocol.clone(); } + if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()){ -// staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); -// staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); + staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue()); + staProtocol.setStaNo(wrkMastSta.getWrkEnd().shortValue()); if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { continue; } @@ -2656,15 +2675,15 @@ } //宸ヤ綅浜屼换鍔″畬鎴� - if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 1) { - WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 0) { + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo2(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); if (Cools.isEmpty(wrkMastSta)){ log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); continue; } for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ - SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getSourcePlcId()); - StaProtocol staProtocol = devpThread.getStation().get(outStn.getSourceStaNo()); + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo()); if (staProtocol == null) { continue; } else { @@ -2672,16 +2691,122 @@ } if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isPakMk()){ // staProtocol.setWorkNo(wrkMast.getWrkNo().shortValue()); -// staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); - if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { - continue; - } +//// staProtocol.setStaNo(wrkMast.getStaNo().shortValue()); +// if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { +// continue; +// } } } MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand())); log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),wrkMastSta.getWrkNo2()); + } + } + } + + //浜屽彿rgv杈撻�佺嚎鍛戒护涓嬪彂 + public synchronized void RGV2Taskput() { + for (RgvSlave rgvSlave:slaveProperties.getRgv()) { + if (rgvSlave.getId() !=2){ + continue; + } + ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (Cools.isEmpty(rgvProtocol)){ + continue; + }else { + rgvProtocol = rgvProtocol.clone(); + } + + //宸ヤ綅涓�浠诲姟瀹屾垚 + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN1 && rgvProtocol.getLoaded1() == 1) { + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo1()); + if (Cools.isEmpty(wrkMastSta)){ + log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo1()); + continue; + } + for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + + if (outStn.getStaPlcId() == 2){ + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){ + staProtocol.setWorkNo(wrkMastSta.getWrkNo().shortValue()); + staProtocol.setStaNo((short) 2106); + staProtocol.setMatnr(wrkMastSta.getMatnr1().shortValue()); + + if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { + continue; + } + } + } + + } + } + + //宸ヤ綅浜屼换鍔″畬鎴� + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.OUTSTN8 && rgvProtocol.getLoaded1() == 1) { + WrkMastSta wrkMastSta = wrkMastStaService.selectByRgvNoandWrkNo(rgvProtocol.getRgvNo(), rgvProtocol.getTaskNo2()); + if (Cools.isEmpty(wrkMastSta)){ + log.error("鏈煡璇㈠埌rgv宸ヤ綔浠诲姟锛宺gv缂栧彿{},宸ヤ綔鍙穥}",rgvProtocol.getRgvNo(),rgvProtocol.getTaskNo2()); + continue; + } + for (RgvSlave.Sta outStn :rgvSlave.getOutStn()){ + SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, outStn.getStaPlcId()); + StaProtocol staProtocol = devpThread.getStation().get(outStn.getStaNo()); + if (staProtocol == null) { + continue; + } else { + staProtocol = staProtocol.clone(); + } + if (outStn.getStaPlcId() == 2){ + if (staProtocol.isAutoing() && !staProtocol.isLoading() && staProtocol.isPakMk()){ + staProtocol.setWorkNo(wrkMastSta.getWrkNo2().shortValue()); + staProtocol.setStaNo((short) 2106); + staProtocol.setMatnr(wrkMastSta.getMatnr2().shortValue()); + + if (!MessageQueue.offer(SlaveType.Devp, outStn.getStaPlcId(), new Task(2, staProtocol))) { + continue; + } + } + } + } + } + } + } + + public synchronized void RGV2TaskOver() { + for (RgvSlave rgvSlave:slaveProperties.getRgv()) { + if (rgvSlave.getId() !=2){ + continue; + } + ZyRgvThread rgvThread = (ZyRgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId()); + RgvProtocol rgvProtocol = rgvThread.getRgvProtocol(); + if (Cools.isEmpty(rgvProtocol)){ + continue; + }else { + rgvProtocol = rgvProtocol.clone(); + } + + //宸ヤ綅涓�浠诲姟瀹屾垚 + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING && rgvProtocol.getLoaded1() == 0) { + + MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(3,new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅涓�宸ヤ綔瀹屾垚澶嶄綅,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo1()); + } + + //宸ヤ綅浜屼换鍔″畬鎴� + if (rgvProtocol.getModeType() == RgvModeType.AUTO && rgvProtocol.getStatusType() == RgvStatusType.WAITING2 && rgvProtocol.getLoaded1() == 0) { + + + MessageQueue.offer(SlaveType.Rgv, rgvSlave.getId(), new Task(4,new RgvCommand())); + log.info("{}鍙穜gv宸ヤ綅浜屽伐浣滃畬鎴愬浣�,宸ヤ綔鍙�:{}",rgvSlave.getId(),rgvProtocol.getTaskNo2()); } } } @@ -2705,6 +2830,8 @@ wrkMastSta.setUpdateTime(now); wrkMastSta.setWrkCrn(command.getRgvNo()); wrkMastSta.setWrkType(command.getTaskMode().intValue()); + wrkMastSta.setMatnr1(command.getMatnr().intValue()); + wrkMastSta.setMatnr2(command.getMatnr2().intValue()); return wrkMastStaService.insert(wrkMastSta); } -- Gitblit v1.9.1