From 945764de58898661a3f3197e58353141b5deaf91 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期三, 22 十月 2025 16:21:15 +0800 Subject: [PATCH] 侧面输送线出入库流程对接 --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 54 ++++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 48 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index baec76c..a1f5de1 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -164,6 +164,11 @@ write3((StaProtocol) task.getData()); read(); break; + // 渚ч潰鐮佺洏瀹屾垚涓婃姤wms鎴愬姛鍚庨噸缃畃lc + case 4: + write4((StaProtocol) task.getData()); + read(); + break; default: break; } @@ -295,6 +300,15 @@ staProtocol.setPakMk(true); } } + } + + // 璇讳晶闈㈢爜鐩樺畬鎴愪俊鍙� + OperateResultExOne<byte[]> resultMp = siemensS7Net.Read("DB79.362", (short) 4); + if (resultMp.IsSuccess) { + StaProtocol staProtocol207 = station.get(207); + StaProtocol staProtocol212 = station.get(212); + staProtocol207.setMpCompletedFlag(siemensS7Net.getByteTransform().TransInt16(resultMp.Content, 0)); + staProtocol212.setMpCompletedFlag(siemensS7Net.getByteTransform().TransInt16(resultMp.Content, 2)); } // 璇诲彇姝i潰鏉$爜 @@ -580,7 +594,7 @@ } else { String[] split = barcode.split("#"); - int offset = 48 + (staNo - 201) * 24; + int offset = (staNo - 201) * 24; byte[] bytes = new byte[(split.length + 1) * 6]; for (int j = 0, k = 0; j < split.length; j++) { String s = split[j]; @@ -684,7 +698,7 @@ OperateResult writeResult3 = siemensS7Net.Write(addressPre + lev, staProtocol.getLev()); // 鐮佺洏灞傛暟 if (writeResult1.IsSuccess && writeResult2.IsSuccess && writeResult3.IsSuccess) { writeFlag = true; - log.info("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + log.info("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔熴�恵},{},{},{}銆戯紝骞朵笖鍥炶鎴愬姛锛屽啓鍏ユ鏁�={}", staProtocol.getSiteId(),staProtocol.getMp(),staProtocol.getLx(),staProtocol.getLev(), writeCount); break; } else { writeCount++; @@ -693,10 +707,38 @@ } //鍐欏懡浠ゅ皾璇曚簡5娆¤繕鏄け璐ヤ簡 - if (!writeFlag) { - //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒� - MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol)); - log.error("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ラ噸鏂版帹閫侀槦鍒椼�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); +// if (!writeFlag) { +// //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒� +// MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol)); +// log.error("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ラ噸鏂版帹閫侀槦鍒椼�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol)); +// } + } + + private void write4(StaProtocol staProtocol){ + + int offset = 0; + + switch (staProtocol.getSiteId()) { + case 207: offset = 362;break; + case 212: offset = 364 ;break; + default: + log.error("閲嶇疆鐮佺洏淇″彿绔欑偣鏈夎锛歿}" , staProtocol.getSiteId()); + return; + } + + String addressPre = "DB79."; + + //浠诲姟涓嬪彂娆℃暟 + int writeCount = 0; + while (writeCount < 5) { + OperateResult writeResult1 = siemensS7Net.Write(addressPre + offset, (short) 0); + if (writeResult1.IsSuccess) { + log.info("渚ч潰鐮佺洏瀹屾垚涓婃姤wms鎴愬姛鍚庨噸缃俊鍙峰啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔熴�恵}銆戯紝骞朵笖鍥炶鎴愬姛锛屽啓鍏ユ鏁�={}", staProtocol.getSiteId(), writeCount); + break; + } else { + writeCount++; + log.error("渚ч潰鐮佺洏瀹屾垚涓婃姤wms鎴愬姛鍚庨噸缃俊鍙峰啓鍏ヨ緭閫佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } } } -- Gitblit v1.9.1