From 9f981b542e85a6ec4acffe40c6fab60756e2b486 Mon Sep 17 00:00:00 2001 From: zhangchao <zc857179121@qq.com> Date: 星期六, 07 九月 2024 09:30:34 +0800 Subject: [PATCH] 输送线指令优化 --- src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 79 ++++++++++--------- src/main/java/com/zy/core/MainProcess.java | 5 src/main/java/com/zy/core/thread/SiemensDevpThread.java | 100 +++++++++++++++++------- src/main/resources/application.yml | 4 4 files changed, 117 insertions(+), 71 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 5283bde..b7c47d0 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -489,12 +489,18 @@ if (staProtocol.isAutoing() && staProtocol.isLoading() && staProtocol.isInEnable() && staProtocol.isPakMk()) { News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛�"); WrkMast wrkMast = wrkMastMapper.selectPickStep(barcode); -// WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue()); + // WrkMast wrkMast = wrkMastMapper.selectPakInStep3(staProtocol.getWorkNo().intValue()); if (wrkMast == null) { - // 鏃犳嫞鏂欐暟鎹� - continue; + WrkMast wrkMast1 = wrkMastMapper.selectPakInStepBarcode(barcode); + if (!(wrkMast1 != null && wrkMast1.getWrkSts() == 2 && wrkMast1.getIoType() == 53)) { + // 鏃犳嫞鏂欐暟鎹� + continue; + } else { + wrkMast1.setIoType(103); + wrkMast = wrkMast1; + } } - if ((wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) { + if (( wrkMast.getIoType() != 103 && wrkMast.getIoType() != 104 && wrkMast.getIoType() != 107) || Cools.isEmpty(wrkMast.getStaNo()) || Cools.isEmpty(wrkMast.getSourceStaNo())) { continue; } @@ -508,6 +514,7 @@ // log.error("{}鍙蜂换鍔℃暟鎹紓甯革紒", wrkMast.getWrkNo()); // } // 鑾峰彇鐩爣绔� + Wrapper<StaDesc> wrapper = new QueryWrapper<StaDesc>().eq("type_no", wrkMast.getIoType() - 50).eq("stn_no", pickSta.getStaNo()) // 浣滀笟绔欑偣 = 鎷f枡鍑哄簱鐨勭洰鏍囩珯 .eq("crn_no", wrkMast.getCrnNo()); // 鍫嗗灈鏈哄彿 StaDesc staDesc = staDescService.getOne(wrapper); @@ -1330,8 +1337,36 @@ // 鐘舵�侊細绛夊緟纭 骞朵笖 浠诲姟瀹屾垚浣� = 1 if (wait && crnProtocol.getTaskNo() != 0) { News.warnNoLog("" + mark + " - 0" + " - 寮�濮嬫墽琛屽宸ヤ綔妗g殑瀹屾垚鎿嶄綔"); - if (crnProtocol.getTaskNo() == 9999) { +// if (crnProtocol.getTaskNo() == 9999) { +// // 鍫嗗灈鏈哄浣� +// if (statusType == CrnStatusType.WAITING_ONE) { +// crnThread.setResetFlag(true); +// } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { +// crnThread.setResetFlagTwo(true); +// } else { +// crnThread.setResetFlag(true); +// crnThread.setResetFlagTwo(true); +// } +// } else { + // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 + WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); + if (wrkMast == null) { + News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); + continue; + } + // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚 + if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) { + wrkMast.setWrkSts(4L); + } else { + continue; + } + Date now = new Date(); + wrkMast.setCrnEndTime(now); + wrkMast.setModiTime(now); + // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 + if (wrkMastMapper.updateById(wrkMast) > 0) { // 鍫嗗灈鏈哄浣� + News.info("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo()); if (statusType == CrnStatusType.WAITING_ONE) { crnThread.setResetFlag(true); } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { @@ -1341,39 +1376,11 @@ crnThread.setResetFlagTwo(true); } } else { - // 鑾峰彇鍏ュ簱寰呯‘璁ゅ伐浣滄。 - WrkMast wrkMast = wrkMastMapper.selectPakInStep3(crnProtocol.getTaskNo().intValue()); - if (wrkMast == null) { - News.error("" + mark + " - 1" + " - 鍫嗗灈鏈哄浜庣瓑寰呯‘璁や笖浠诲姟瀹屾垚鐘舵�侊紝浣嗘湭鎵惧埌宸ヤ綔妗c�傚爢鍨涙満鍙�={}锛屽伐浣滃彿={}", crn.getId(), crnProtocol.getTaskNo()); - continue; - } - // 鍏ュ簱 + 搴撲綅杞Щ ==> 4.鍏ュ簱瀹屾垚 - if (wrkMast.getWrkSts() == 3 || (wrkMast.getWrkSts() == 12 && wrkMast.getIoType() == 11)) { - wrkMast.setWrkSts(4L); - } else { - continue; - } - Date now = new Date(); - wrkMast.setCrnEndTime(now); - wrkMast.setModiTime(now); - // 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 - if (wrkMastMapper.updateById(wrkMast) > 0) { - // 鍫嗗灈鏈哄浣� - News.info("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 : 鍫嗗灈鏈哄彿={}", crnThread.getCrnProtocol().getCrnNo()); - if (statusType == CrnStatusType.WAITING_ONE) { - crnThread.setResetFlag(true); - } else if (statusTypeTwo == CrnStatusType.WAITING_TWO) { - crnThread.setResetFlagTwo(true); - } else { - crnThread.setResetFlag(true); - crnThread.setResetFlagTwo(true); - } - } else { - News.error("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 澶辫触锛侊紒锛屽爢鍨涙満鍙�={}", crnThread.getCrnProtocol().getCrnNo()); - } + News.error("" + mark + " - 2" + " - 淇敼鎴愬姛鍚庡浣嶅爢鍨涙満 澶辫触锛侊紒锛屽爢鍨涙満鍙�={}", crnThread.getCrnProtocol().getCrnNo()); } - } + + //} } News.infoNoLog("" + mark + " - 0" + " - 瀵瑰伐浣滄。鐨勫畬鎴愭搷浣滄墽琛屽畬鎴�"); } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 347fbbd..1f1ec7f 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -42,6 +42,8 @@ if (!SystemProperties.WCS_RUNNING_STATUS.get()) { continue; } + // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 + mainService.stnToCrnStnPick(3); // 婕旂ず //mainService.crnDemoOfLocMove1(); @@ -51,8 +53,7 @@ mainService.generateStoreWrkFile(1); // 缁勬墭 //mainService.generateStoreWrkFile0(2); // WMS鍏ュ簱 Thread.sleep(500); - // 鎷f枡銆佸苟鏉裤�佺洏鐐瑰啀鍏ュ簱 - mainService.stnToCrnStnPick(3); + // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 mainService.crnStnToOutStn(4); // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index e259358..b2ff97d 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -295,15 +295,16 @@ Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.Content, i * 4, 1); StaProtocol staProtocol = station.get(siteId); - staProtocol.setBreakerErr(status[0]); - staProtocol.setInfraredErr(status[1]); - staProtocol.setOutTimeErr(status[2]); - staProtocol.setSeizeSeatErr(status[3]); - staProtocol.setWrkYgoodsN(status[4]); - staProtocol.setInverterErr(status[5]); - staProtocol.setContactErr(status[6]); - staProtocol.setUpcontactErr(status[7]); - + if (staProtocol != null) { + staProtocol.setBreakerErr(status[0]); + staProtocol.setInfraredErr(status[1]); + staProtocol.setOutTimeErr(status[2]); + staProtocol.setSeizeSeatErr(status[3]); + staProtocol.setWrkYgoodsN(status[4]); + staProtocol.setInverterErr(status[5]); + staProtocol.setContactErr(status[6]); + staProtocol.setUpcontactErr(status[7]); + } } } @@ -340,39 +341,64 @@ if (null == staProtocol) { return; } - System.out.println(staProtocol); int index = staNosAll.indexOf(staProtocol.getSiteId()); OperateResult write = null; OperateResult write1 = null; //浠诲姟涓嬪彂娆℃暟 int writeCount = 0; + boolean wrkNoFlag = false; + boolean staNoFlag = false; do { - write = siemensS7Net.Write("DB100." + index * 6, (int) staProtocol.getWorkNo()); // 宸ヤ綔鍙� - Thread.sleep(300); - write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo()); // 鐩爣绔� - Thread.sleep(100); - if (write.IsSuccess && write1.IsSuccess) { - Thread.sleep(200); - OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 4); - OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4), (short) 2); - if (readResult.IsSuccess && readResult1.IsSuccess) { - short workNo = (short) siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0); - short staNo = siemensS7Net.getByteTransform().TransInt16(readResult1.Content, 0); - if (staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)) { - //浠诲姟鍛戒护鍐欏叆鎴愬姛 - log.info("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗杩斿洖鎴愬姛锛屽苟涓斿洖璇绘垚鍔熴�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - break; - } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 + if (!wrkNoFlag) { + write = siemensS7Net.Write("DB100." + index * 6, (int) staProtocol.getWorkNo()); // 宸ヤ綔鍙� + Thread.sleep(300); + if (write.IsSuccess) { + OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 4); + if (readResult.IsSuccess) { + short workNo = (short) siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0); + if (staProtocol.getWorkNo().equals(workNo)) { + //浠诲姟鍛戒护鍐欏叆鎴愬姛 + log.info("鍐欏叆宸ヤ綔鍙峰懡浠ゅ悗杩斿洖鎴愬姛锛屽苟涓斿洖璇绘垚鍔熴�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + wrkNoFlag = true; + } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 + writeCount++; + log.error("鍐欏叆宸ヤ綔鍙峰懡浠ゅ悗杩斿洖鎴愬姛锛屼絾鏄鍙栦换鍔″�间笉涓�鑷淬�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } + } else { writeCount++; - log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗杩斿洖鎴愬姛锛屼絾鏄鍙栦换鍔″�间笉涓�鑷淬�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + log.error("鍐欏叆宸ヤ綔鍙峰懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); } } else { writeCount++; - log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + log.error("鍐欏叆宸ヤ綔鍙峰懡浠ゅけ璐ャ�傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); } - } else { - writeCount++; - log.error("鍐欏叆鍫嗗灈鏈哄懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } + if (!staNoFlag) { + write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo()); // 鐩爣绔� + Thread.sleep(300); + if (write1.IsSuccess) { + OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4), (short) 2); + if (readResult1.IsSuccess) { + short staNo = siemensS7Net.getByteTransform().TransInt16(readResult1.Content, 0); + if (staProtocol.getStaNo().equals(staNo)) { + //浠诲姟鍛戒护鍐欏叆鎴愬姛 + log.info("鍐欏叆鐩爣绔欏懡浠ゅ悗杩斿洖鎴愬姛锛屽苟涓斿洖璇绘垚鍔熴�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + staNoFlag = true; + } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 + writeCount++; + log.error("鍐欏叆鐩爣绔欏懡浠ゅ悗杩斿洖鎴愬姛锛屼絾鏄鍙栦换鍔″�间笉涓�鑷淬�傚爢鍨涙満plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } + } else { + writeCount++; + log.error("鍐欏叆鐩爣绔欏懡浠ゅ悗璇诲彇澶辫触銆傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } + } else { + writeCount++; + log.error("鍐欏叆鐩爣绔欏懡浠ゅけ璐ャ�傚爢鍨涙満plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } + } + if (wrkNoFlag && staNoFlag) { + break; } } while (writeCount < 5); @@ -387,6 +413,18 @@ OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); News.info("SiemensDevp" + " - 5" + " - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); } + + if (!write1.IsSuccess) { + staProtocol = station.get(staProtocol.getSiteId()); + if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() == 0) { + staProtocol.setPakMk(true); + } + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol))); + News.error("SiemensDevp" + " - 4" + " - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); + } else { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol))); + News.info("SiemensDevp" + " - 5" + " - 杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); + } } // 鏇存柊鍏ュ嚭搴撴ā寮� diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 6ef10df..5baef83 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -26,7 +26,7 @@ # field-strategy: 0 logging: - path: /stock/out/@pom.build.finalName@/logs + path: stock/out/@pom.build.finalName@/logs super: pwd: xltys1995 @@ -35,7 +35,7 @@ enable: false wms: - url: 127.0.0.1:8088/bjycwms + url: 10.10.10.200:8088/bjycwms # 涓嬩綅鏈洪厤缃� wcs-slave: -- Gitblit v1.9.1