From fe52cfc67bf7e24fdc7626d06c4f2b928101e9a2 Mon Sep 17 00:00:00 2001 From: lsh <1> Date: 星期六, 13 一月 2024 19:52:13 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 112 +++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 102 insertions(+), 10 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index f446c91..a05385d 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -20,6 +20,7 @@ import com.zy.core.model.DevpSlave; import com.zy.core.model.Task; import com.zy.core.model.protocol.StaProtocol; +import io.swagger.models.auth.In; import lombok.Data; import lombok.extern.slf4j.Slf4j; @@ -62,16 +63,15 @@ add(200);add(201);add(202);add(203); add(204);add(205);add(206);add(207); add(208);add(209);add(210);add(211); - add(212); - add(213);add(214);add(215);add(216); - add(217);add(218);add(219);add(220); - add(221);add(222);add(2000); + add(212);add(213);add(214);add(215); + add(216);add(217);add(218);add(219); + add(220);add(221);add(222);add(2000); }}; /** * 鏉$爜鏁伴噺 */ - private int barcodeSize = 1; + private int barcodeSize = 3; /** * 鍏ュ嚭搴撴ā寮� @@ -119,11 +119,26 @@ break; // 鍐欐暟鎹� ID+鐩爣绔� case 2: +// write3((StaProtocol)task.getData()); +// Thread.sleep(400); +// write4((StaProtocol)task.getData()); +// Thread.sleep(400); write((StaProtocol)task.getData()); break; // 鍐欐暟鎹� ID+鐩爣绔� 鐮佸灈瀹屾垚 缁欒緭閫佺嚎鍐欎换鍔″畬鎴� case 3: write3((StaProtocol)task.getData()); + break; + // 鍐欐暟鎹� ID+鐩爣绔� 鐮佸灈瀹屾垚 缁欒緭閫佺嚎鍐欎换鍔″畬鎴愬浣� + case 4: + write4((StaProtocol)task.getData()); + break; + case 5: + write3((StaProtocol)task.getData()); + Thread.sleep(400); + write4((StaProtocol)task.getData()); + Thread.sleep(400); + write((StaProtocol)task.getData()); break; default: break; @@ -232,7 +247,7 @@ //鏉$爜鎵弿鍣� Thread.sleep(200); - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.102",(short)(barcodeSize*10)); + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.288",(short)(barcodeSize*10)); if (result2.IsSuccess) { for (int i = 0; i < barcodeSize; i++) { String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10,6, "UTF-8"); @@ -338,14 +353,36 @@ if (null == staProtocol) { return; } - ArrayList<Integer> staNos = getStaNo(); - int index = staNos.indexOf(staProtocol.getSiteId()); + Integer siteId = staProtocol.getSiteId(); + Integer index =0; + switch (siteId){ + case 118: + index=0; + break; + case 119: + index=1; + break; + case 120: + index=2; + break; + case 121: + index=3; + break; + case 131: + index=4; + break; + case 135: + index=5; + break; + default: + return; + } OperateResult write = null; //浠诲姟涓嬪彂娆℃暟 int writeCount = 0; do { - write = siemensS7Net.Write("DB100." + index*6, (short)1); // 宸ヤ綔鍙� + write = siemensS7Net.Write("DB100.600." + index, true); // 浠诲姟瀹屾垚 if(write.IsSuccess){ writeCount=6; }else { @@ -363,7 +400,62 @@ log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎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))); - log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); + log.info("杈撻�佺嚎鍛戒护涓嬪彂鐮佸灈瀹屾垚 缁欒緭閫佺嚎鍐欎换鍔″畬鎴� [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); + } + } + + private void write4(StaProtocol staProtocol) throws InterruptedException { + if (null == staProtocol) { + return; + } + Integer siteId = staProtocol.getSiteId(); + Integer index =0; + switch (siteId){ + case 118: + index=0; + break; + case 119: + index=1; + break; + case 120: + index=2; + break; + case 121: + index=3; + break; + case 131: + index=4; + break; + case 135: + index=5; + break; + default: + return; + } + + OperateResult write = null; + //浠诲姟涓嬪彂娆℃暟 + int writeCount = 0; + do { + write = siemensS7Net.Write("DB100.600." + index, false); // 浠诲姟瀹屾垚澶嶄綅 + if(write.IsSuccess){ + writeCount=6; + }else { + writeCount++; + log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); + } + }while (writeCount<5); + + if (!write.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))); + log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎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))); + log.info("杈撻�佺嚎鍛戒护涓嬪彂鐮佸灈瀹屾垚 缁欒緭閫佸浣� [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}", slave.getId(), JSON.toJSON(staProtocol)); } } // 鏇存柊鍏ュ嚭搴撴ā寮� -- Gitblit v1.9.1