From 9eecd47fa15543f72df06a3b8fb47c3db9e773c3 Mon Sep 17 00:00:00 2001 From: lsh <lsh@163.com> Date: 星期四, 29 五月 2025 16:21:04 +0800 Subject: [PATCH] * --- src/main/java/com/zy/core/MainProcess.java | 175 ++++++++++++++++++----------------- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 107 ++++++++++++++++++++ 2 files changed, 194 insertions(+), 88 deletions(-) diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java index f3697d8..1e1f9f0 100644 --- a/src/main/java/com/zy/core/MainProcess.java +++ b/src/main/java/com/zy/core/MainProcess.java @@ -1,5 +1,6 @@ package com.zy.core; +import com.core.common.SpringUtils; import com.zy.asrs.service.impl.MainServiceImpl; import com.zy.core.properties.SystemProperties; import lombok.Data; @@ -24,6 +25,7 @@ private MainServiceImpl mainService; // 鎵�灞炵嚎绋� private Thread thread; + private Thread thread2; // 棰戠巼 private int i = 0; private int j = 0; @@ -34,110 +36,113 @@ * =====>> 寮�濮嬪伐浣� */ public void start(){ - thread = new Thread(() -> { - while (!Thread.currentThread().isInterrupted()) { - try { - i++; if (i>5) i=0; - j++; if (j>5) j=0; - k++; - if (k>5) { - k=0; - l++; - if (l>=3) l=0; - } + thread = new Thread(this::cenAndDevRun); + thread.start(); + + thread2 = new Thread(this::jarRun); + thread2.start(); + } - // 闂撮殧 - Thread.sleep(1000); - // 绯荤粺杩愯鐘舵�佸垽鏂� - if (!SystemProperties.WCS_RUNNING_STATUS.get()) { - continue; - } + private void cenAndDevRun() { + while (!Thread.currentThread().isInterrupted()) { + try { + i++; if (i>5) i=0; - //鍒濆鍖朢GV鍦板浘 -// mainService.initRgvMap(); - //鍒锋柊RGV鍦板浘 -// mainService.refreshRgvMap(); - // 婕旂ず -// mainService.crnDemoOfLocMove1(); - // 鍏ュ嚭搴撴ā寮忓垏鎹㈠嚱鏁� -// mainService.ioConvert(); - // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。 + // 闂撮殧 + Thread.sleep(1000); - mainService.generateStoreWrkFile(); // 缁勬墭 - mainService.generateStoreWrkFile464(); // 缁勬墭464 - mainService.generateStoreWrkFileSingle(); // 缁勬墭 鍙屽伐浣嶅崟浼� 灏忔枡绠� - mainService.generateStoreWrkFileLarge(); // 缁勬墭 鍙屽伐浣嶅崟浼� 澶ф枡绠� + // 绯荤粺杩愯鐘舵�佸垽鏂� + if (!SystemProperties.WCS_RUNNING_STATUS.get()) { + continue; + } + // 鍏ュ簱 ===>> 鍏ュ簱绔欏埌鍫嗗灈鏈虹珯锛屾牴鎹潯鐮佹壂鎻忕敓鎴愬叆搴撳伐浣滄。 + + mainService.generateStoreWrkFile(); // 缁勬墭 + mainService.generateStoreWrkFile464(); // 缁勬墭464 + mainService.generateStoreWrkFileSingle(); // 缁勬墭 鍙屽伐浣嶅崟浼� 灏忔枡绠� + mainService.generateStoreWrkFileLarge(); // 缁勬墭 鍙屽伐浣嶅崟浼� 澶ф枡绠� // mainService.generateStoreWrkFile0(); // WMS鍏ュ簱 - // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 - mainService.crnStnToOutStn(); - // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 宸ヤ綅2 - mainService.crnStnToOutStnTwo(); - // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 - mainService.crnIoExecute(); - // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 鍙屽伐浣嶅爢鍨涙満 - mainService.crnIoExecuteTwo(); - // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 鍙屽伐浣嶅爢鍨涙満 鎷嗗垎鎵ц浠诲姟涓嬪彂 - mainService.crnIoExecuteTwoExecute(i);//Execute - if (i%2==0){ - // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� - mainService.storeFinished(); - }else { - // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� 宸ヤ綅2 - mainService.storeFinishedTwo(); - } - + // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 + mainService.crnStnToOutStn(); + // 鍑哄簱 ===>> 鍫嗗灈鏈哄嚭搴撶珯鍒板嚭搴撶珯 宸ヤ綅2 + mainService.crnStnToOutStnTwo(); + // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 + mainService.crnIoExecute(); + // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 鍙屽伐浣嶅爢鍨涙満 + mainService.crnIoExecuteTwo(); + // 鍏ュ嚭搴� ===>> 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂 鍙屽伐浣嶅爢鍨涙満 鎷嗗垎鎵ц浠诲姟涓嬪彂 + mainService.crnIoExecuteTwoExecute(i);//Execute + if (i%2==0){ + // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� + mainService.storeFinished(); + }else { + // 鍏ュ簱 ===>> 鎵ц瀵瑰伐浣滄。鐨勫畬鎴愭搷浣� 宸ヤ綅2 + mainService.storeFinishedTwo(); + } // // 寮傚父淇℃伅璁板綍 // mainService.recErr(); - // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱 - mainService.storeEmptyPlt(); - // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱 鍙屽伐浣嶅崟浼� 灏忔枡绠� - mainService.storeEmptyPltSingle(); - // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱 鍙屽伐浣嶅崟浼� 澶ф枡绠� - mainService.storeEmptyPltLarge(); - // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� - mainService.ledExecute(); - // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 - mainService.ledReset(); + // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱 + mainService.storeEmptyPlt(); + // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱 鍙屽伐浣嶅崟浼� 灏忔枡绠� + mainService.storeEmptyPltSingle(); + // 鍏ュ簱 ===>> 绌烘爤鏉垮垵濮嬪寲鍏ュ簱 鍙屽伐浣嶅崟浼� 澶ф枡绠� + mainService.storeEmptyPltLarge(); + // 鍑哄簱 ===>> 宸ヤ綔妗d俊鎭啓鍏ed鏄剧ず鍣� + mainService.ledExecute(); + // 鍏朵粬 ===>> LED鏄剧ず鍣ㄥ浣嶏紝鏄剧ず榛樿淇℃伅 + mainService.ledReset(); - /************************************JAR璋冨害************************************/ - mainService.stackingCompletionDriveTray();//鍒嗛厤纭寲缃� - mainService.stackingCompletionDriveTray2();//鍒嗛厤纭寲缃� - - //Jar鍏呯數浠诲姟瀹屾垚 - mainService.jarChargeComplete(); - //JarWrkMastExecute浠诲姟瀹屾垚 - mainService.jarWrkMastExecuteGenerateComplete(k); - //JarWrkMastExecute浠诲姟鍒涘缓 //纭寲缃� - mainService.jarWrkMastExecuteGenerate(k); - //JarWrkMastExecute浠诲姟鎵ц - mainService.jarWrkMastExecuteAction(k,l); - //Jar浠诲姟鍒涘缓 - mainService.jarMastGenerate(); - //Jar浠诲姟瀹屾垚 - mainService.jarMastGenerateComplete(); - //Jar鍏呯數浠诲姟鍒涘缓 - mainService.jarChargeGenerate(); - - /************************************JAR璋冨害************************************/ - - mainService.signTrunBig(); + mainService.signTrunBig(); - } catch (Exception e) { - e.printStackTrace(); - } + } catch (Exception e) { + e.printStackTrace(); } - }); - thread.start(); + } + } + private void jarRun() { + while (!Thread.currentThread().isInterrupted()) { + try { + k++; + if (k>5) { + k=0; + l++; + if (l>=3) l=0; + } + /************************************JAR璋冨害************************************/ + mainService.stackingCompletionDriveTray();//鍒嗛厤纭寲缃� + mainService.stackingCompletionDriveTray2();//鍒嗛厤纭寲缃� + + //Jar鍏呯數浠诲姟瀹屾垚 + mainService.jarChargeComplete(); + //JarWrkMastExecute浠诲姟瀹屾垚 + mainService.jarWrkMastExecuteGenerateComplete(k); + //JarWrkMastExecute浠诲姟鍒涘缓 //纭寲缃� + mainService.jarWrkMastExecuteGenerate(k); + //JarWrkMastExecute浠诲姟鎵ц + mainService.jarWrkMastExecuteAction(k,l); + //Jar浠诲姟鍒涘缓 + mainService.jarMastGenerate(); + //Jar浠诲姟瀹屾垚 + mainService.jarMastGenerateComplete(); + //Jar鍏呯數浠诲姟鍒涘缓 + mainService.jarChargeGenerate(); + + /************************************JAR璋冨害************************************/ + } catch (Exception e) { + e.printStackTrace(); + } + } } @PreDestroy public void shutDown(){ if (thread != null) thread.interrupt(); + if (thread2 != null) thread2.interrupt(); } } diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index db5ca80..efdafb7 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -134,6 +134,9 @@ add(696);add(697);add(698);add(699); }}; + private boolean connectDev = false; + + /** * 鏉$爜鏁伴噺 */ @@ -167,10 +170,85 @@ } } + + /** + * 鍒濆鍖栫珯鐐圭姸鎬� + */ + private void initSite() { + try{ + ArrayList<Integer> staNos = getStaNo(); + // 绔欑偣缂栧彿 + for (Integer siteId : staNos) { + StaProtocol staProtocol = station.get(siteId); + if (null == staProtocol) { + staProtocol = new StaProtocol(); + staProtocol.setSiteId(siteId); + station.put(siteId, staProtocol); + } + staProtocol.setSiteId(siteId); + staProtocol.setWorkNo(0); // ID + staProtocol.setAutoing(false); // 鑷姩 + staProtocol.setLoading(false); // 鏈夌墿 + staProtocol.setInEnable(false); // 鍙叆 + staProtocol.setOutEnable(false); // 鍙嚭 + staProtocol.setEmptyMk(false); // 绌烘澘淇″彿 + staProtocol.setStaNo(0); // 鐩爣绔� + + if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { + staProtocol.setPakMk(true); + } + } + } catch (Exception e){ + try{ + log.error(e.getMessage()); + } catch (Exception e1){ + + } + log.error("鍒濆鍖栫珯鐐圭姸鎬佸紓甯�"); + } + } + @Override @SuppressWarnings("InfiniteLoopStatement") public void run() { - connect(); + connectDev = connect(); + while(!connectDev){ + try { + connectDev = this.connect(); + Thread.sleep(100); + } catch (Exception e){ + + } + } + + // 鍚姩绾跨▼鑷姩閲嶈繛 + new Thread(this::devConnect).start(); + new Thread(this::readStatusDev).start(); + new Thread(this::writeStatusDev).start(); + } + + private void devConnect() { + while (true) { + try { + Thread.sleep(1000); + + if(!connectDev){ + try { + connectDev = this.connect(); + Thread.sleep(100); + } catch (Exception e){ + + } + } + } catch (Exception e) { + log.info("dev杩炴帴澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + initSite(); +// e.printStackTrace(); + } + } + } + + private void writeStatusDev() { while (true) { try { int step = 1; @@ -181,7 +259,7 @@ switch (step) { // 璇绘暟鎹� case 1: - read(); +// read(); break; // 鍐欐暟鎹� ID+鐩爣绔� case 2: @@ -220,10 +298,33 @@ // heartbeat(); Thread.sleep(400); } catch (Exception e) { - e.printStackTrace(); +// e.printStackTrace(); + try{ + log.error(e.getMessage()); + } catch (Exception e1){ + + } + log.error("DEV鏁版嵁鍐欏叆绾跨▼寮傚父锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + } } + + } + + private void readStatusDev() { + while (true) { + try { + Thread.sleep(50); + read(); + + } catch (Exception e) { + log.error("Dev鏁版嵁璇诲彇绾跨▼寮傚父锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort()); + initSite(); + } + + } + } @Override -- Gitblit v1.9.1