From 0fe2f60a5f2018fa97ead4727e04b055d4907e99 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期六, 17 五月 2025 08:50:37 +0800 Subject: [PATCH] 初始化 --- src/main/java/com/zy/core/thread/LedThread.java | 10 ++ src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 92 +++++++++++++++++----- src/main/webapp/static/wcs/js/console.map.js | 2 src/main/java/com/zy/asrs/controller/MonitorController.java | 68 +++++------------ src/main/resources/application-prod.yml | 10 +- src/main/java/com/zy/core/MainProcess.java | 8 + src/main/java/com/zy/core/thread/SiemensDevpThread.java | 34 ++++---- 7 files changed, 128 insertions(+), 96 deletions(-) diff --git a/src/main/java/com/zy/asrs/controller/MonitorController.java b/src/main/java/com/zy/asrs/controller/MonitorController.java index 508f0d0..f689993 100644 --- a/src/main/java/com/zy/asrs/controller/MonitorController.java +++ b/src/main/java/com/zy/asrs/controller/MonitorController.java @@ -12,7 +12,9 @@ import com.zy.core.CrnThread; import com.zy.core.cache.SlaveConnection; import com.zy.core.enums.SlaveType; +import com.zy.core.model.LedSlave; import com.zy.core.model.protocol.CrnProtocol; +import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.LedThread; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; @@ -34,6 +36,8 @@ @Autowired private ReportQueryMapper reportQueryMapper; + @Autowired + private SlaveProperties slaveProperties; /** * 鑾峰彇褰撳墠鏃堕棿 @@ -232,50 +236,6 @@ .add("usedPr", usedPr) ); } - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - /** * 鑷姩琛ラ浂 */ @@ -347,8 +307,20 @@ } } - - - - + /** + * 寮傚父閫氱煡 + */ + @GetMapping("/led/error") + public R monitorLedError(@RequestParam("ledId") Integer ledId) { + String errorMsg = ""; + for (LedSlave slave : slaveProperties.getLed()) { + if (slave.getStaArr().contains(ledId)) { + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, slave.getId()); + if (null != ledThread) { + errorMsg = ledThread.getErrorMsg().toString(); + } + } + } + return R.ok().add(errorMsg); + } } 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 0d945f2..68bbb31 100644 --- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java +++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java @@ -29,6 +29,7 @@ import com.zy.core.enums.*; import com.zy.core.model.CrnSlave; import com.zy.core.model.DevpSlave; +import com.zy.core.model.LedSlave; import com.zy.core.model.Task; import com.zy.core.model.command.CommandPackage; import com.zy.core.model.command.CrnCommand; @@ -36,6 +37,7 @@ import com.zy.core.model.protocol.StaProtocol; import com.zy.core.properties.SlaveProperties; import com.zy.core.thread.BarcodeThread; +import com.zy.core.thread.LedThread; import com.zy.core.thread.SiemensDevpThread; import com.zy.system.entity.Config; import com.zy.system.service.ConfigService; @@ -343,27 +345,29 @@ && staProtocol.isPakMk()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, inSta.getBarcode()); - if (barcodeThread == null) { - continue; - } - String BoxNo = barcodeThread.getBarcode(); - TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo)); - if (!Cools.isEmpty(taskWrk1)) { - log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�"); - if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { - StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() - .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); - if (Cools.isEmpty(staDesc)) { - return; - } else { - continue; + String BoxNo = ""; + if (barcodeThread != null) { + BoxNo = barcodeThread.getBarcode(); + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("barcode", BoxNo)); + if (!Cools.isEmpty(taskWrk1)) { + log.info("鎵樼洏鐮侊細" + BoxNo + "浠诲姟妗e瓨鍦�"); + if (taskWrk1.getIoType() == 1 && taskWrk1.getStartPoint().equals(staProtocol.getSiteId().toString())) { + StaDesc staDesc = staDescService.selectOne(new EntityWrapper<StaDesc>() + .eq("crn_no", taskWrk1.getCrnNo()).eq("type_no", 1).eq("stn_no", staProtocol.getSiteId())); + if (Cools.isEmpty(staDesc)) { + return; + } else { + continue; + } } } + if (back) { + storageEscalationParam.setWCSStatus(1); + storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg); + } } - if (back) { - storageEscalationParam.setWCSStatus(1); - storageEscalationParam.setWCSErrorMessage(storageEscalationParam.getWCSErrorMessage() + errMsg); - } + + storageEscalationParam.setBoxNo(BoxNo); //鏄惁婊℃澘 1婊℃澘 0绌烘澘 storageEscalationParam.setStaType(staProtocol.isEmptyMk() ? 0 : 1); @@ -504,13 +508,19 @@ && staProtocol.isPakMk()) { // 鑾峰彇鏉$爜鎵弿浠俊鎭� String BoxNo = ""; + //绔欑偣鎷f枡鍥炲簱浠诲姟鏄細鏈変竴鏉� + TaskWrk taskWrkk =taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("start_point",staProtocol.getSiteId())); + if (!Cools.isEmpty(taskWrkk)) { + continue; + } if(!staProtocol.isEmptyMk()&&staProtocol.getWorkNo()<9990){ - TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("task_no", workNo)); + + TaskWrk taskWrk1 = taskWrkService.selectOne(new EntityWrapper<TaskWrk>().eq("wrk_no", workNo)); if (!Cools.isEmpty(taskWrk1)) { BoxNo = taskWrk1.getBarcode(); } else { - TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("task_no", workNo).orderBy("modi_time", false)); + TaskWrkLog taskWrkLog = taskWrkLogService.selectOne(new EntityWrapper<TaskWrkLog>().eq("wrk_no", workNo).orderBy("modi_time", false)); if (taskWrkLog != null) { BoxNo = taskWrkLog.getBarcode(); } @@ -536,6 +546,7 @@ if (!Cools.isEmpty(response) && !Cools.isEmpty(jsonObject.get("ReturnStatus")) && jsonObject.get("ReturnStatus").equals(0) && !Cools.isEmpty(jsonObject.get("Result").toString())) { Result result = JSON.parseObject(jsonObject.get("Result").toString(), Result.class); + // 鍒涙柊涓�涓叆搴撳伐浣滄。 TaskWrk taskWrk = taskWrkService.selectByTaskNo(result.getTaskNo()); if (Cools.isEmpty(taskWrk)) { @@ -932,7 +943,7 @@ staProtocol.setStaNo(staDesc.getStnNo().shortValue()); boolean offer = false; try { - offer = MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol)); + offer = MessageQueue.offer(SlaveType.Devp, crnStn.getDevpPlcId(), new Task(2, staProtocol)); } catch (Exception e) { log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:" + e); log.error("涓嬪彂杈撻�佺嚎浠诲姟澶辫触锛氬紓甯�:offer:" + offer); @@ -1836,4 +1847,43 @@ return taskWrk; } + //----------------------------------------------------------鐢佃鏈烘樉绀哄鐞�---------------------------------------- + /** + * 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 + */ + public synchronized void ledReset(Integer mark) { + +// log.info(""+mark+" - 0"+" - 寮�濮嬫墽琛�:鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅"); + for (LedSlave led : slaveProperties.getLed()) { + + // 鑾峰彇杈撻�佺嚎plc绾跨▼ + DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, led.getDevpPlcId()); + // 鍛戒护闆嗗悎 + boolean reset = true; + for (Integer staNo : led.getStaArr()) { + // 鑾峰彇鍙夎溅绔欑偣 + StaProtocol staProtocol = devpThread.getStation().get(staNo); + if (staProtocol == null) { + continue; + } + if (staProtocol.getWorkNo() != 0 && staProtocol.isLoading()) { + reset = false; + break; + } + } + // 鑾峰彇led绾跨▼ + LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, led.getId()); + // led鏄剧ず榛樿鍐呭 + if (reset && !ledThread.isLedMk()) { + ledThread.setLedMk(true); + if (!MessageQueue.offer(SlaveType.Led, led.getId(), new Task(4, new ArrayList<>()))) { + log.error(""+mark+" - 1"+" - {}鍙稬ED鍛戒护涓嬪彂澶辫触锛侊紒锛乕ip锛歿}] [port锛歿}]", led.getId(), led.getIp(), led.getPort()); + } else { + + } + } + } +// log.info(""+mark+" - 0"+" - 鎵ц瀹屾垚锛氬叾浠� ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅"); + } + } diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index 99398a8..51c67c8 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -50,6 +50,8 @@ mainService.crnDemoOfLocMove1(); // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。 mainService.generateStoreWrkFile1(); // 缁勬墭 + // 鍏ュ簱 ===>> 鎷f枡鐩樼偣鍥炲簱锛岃緭閫佺嚎宸ヤ綔鍙蜂繚鐣欑殑鎯呭喌涓嬪叆搴� + mainService.PickingAndReturningToTheWarehouse(); // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 mainService.crnStnToOutStn(); // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 @@ -59,8 +61,10 @@ // 鍫嗗灈鏈哄紓甯镐俊鎭褰� mainService.recCrnErr(); - // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐� -// mainService.storeEmptyPlt(); + + // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 + mainService.ledReset(10); + // mainService.outOfDevp(); diff --git a/src/main/java/com/zy/core/thread/LedThread.java b/src/main/java/com/zy/core/thread/LedThread.java index 056c0e8..a0995f5 100644 --- a/src/main/java/com/zy/core/thread/LedThread.java +++ b/src/main/java/com/zy/core/thread/LedThread.java @@ -48,6 +48,7 @@ private Set<Integer> workNos = new HashSet<>(); private boolean ledMk = false; private boolean resetStatus = false; // 澶嶄綅鐘舵�� + private StringBuffer errorMsg = new StringBuffer(); public LedThread(Slave slave) { this.slave = slave; @@ -77,6 +78,9 @@ // 澶嶄綅 case 2: reset(); + break; + case 5: + error((String) task.getData()); break; default: break; @@ -459,8 +463,10 @@ // // 缁у紑涓庢帶鍒跺櫒涔嬮棿鐨勯摼鎺� screen.disconnect(); - - + } + private void error(String msg) { + errorMsg.delete(0, errorMsg.length()); + errorMsg.append(msg); } } diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 1c7f818..b81bb55 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -324,23 +324,23 @@ } - OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4)); - if (resultErr.IsSuccess) { - for (int i = 0; i < staNoSize; i++) { - Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.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]); - - } - } +// OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4)); +// if (resultErr.IsSuccess) { +// for (int i = 0; i < staNoSize; i++) { +// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 +// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.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]); +// +// } +// } // //RGV鍙拌溅浣嶇疆 diff --git a/src/main/resources/application-prod.yml b/src/main/resources/application-prod.yml index 9fc070b..bec2f22 100644 --- a/src/main/resources/application-prod.yml +++ b/src/main/resources/application-prod.yml @@ -1,10 +1,10 @@ wcs-slave: doubleDeep: true #鍙屾繁 - doubleLocs: 1,4 #鍙屾繁搴撲綅鎺掑彿 1,4 + doubleLocs: 5,8 #鍙屾繁搴撲綅鎺掑彿 1,4 groupCount: 4 #涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁� crn[0]: #鍫嗗灈鏈�1 id: 1 - ip: 10.10.10.110 + ip: 192.168.110.100 slot: 0 demo: false rack: 0 @@ -38,7 +38,7 @@ devpPlcId: ${wcs-slave.devp[1].id} crn[1]: #鍫嗗灈鏈�2 id: 2 - ip: 10.10.10.120 + ip: 192.168.110.90 slot: 0 demo: false rack: 0 @@ -196,12 +196,12 @@ rack: 0 port: 102 slot: 0 - emptyInSta[0]: #绌烘澘鍏ュ簱鍙�0 - staNo: 1058 inSta[0]: #鍏ュ簱鍙�1 staNo: 1052 backSta: 1051 barcode: ${wcs-slave.barcode[2].id} + inSta[1]: #绌烘澘鍏ュ簱鍙�0 + staNo: 1058 outSta[0]: #鍑哄簱鍙�1 staNo: 1053 devp[3]: #杈撻�佺嚎--鎴愬搧2F diff --git a/src/main/webapp/static/wcs/js/console.map.js b/src/main/webapp/static/wcs/js/console.map.js index 792a4fd..e041664 100644 --- a/src/main/webapp/static/wcs/js/console.map.js +++ b/src/main/webapp/static/wcs/js/console.map.js @@ -14,7 +14,7 @@ "width": 795, "height": 23, "minBayNo": 1, - "maxBayNo": 22, + "maxBayNo": 50, "hiddenArr": [1,22] }, { "type": "rack", -- Gitblit v1.9.1