From e9152bae00b01fc80000d44f726f337084215748 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 21 五月 2025 10:19:18 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 43 ++++++++++++++++++++++++++++--------------- 1 files changed, 28 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index e3926ac..5c7b264 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -55,8 +55,8 @@ }}; public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{ - add(1);add(2);add(3);add(4); - add(5);add(6);add(7);add(8); + add(0);add(1);add(2);add(3); + add(4);add(5);add(6);add(7); }}; public static final ArrayList<Integer> staNosErrList = new ArrayList<Integer>() {{ @@ -183,7 +183,7 @@ // updateIoMode(); ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); - OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*8)); + OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize*2)); if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 @@ -193,11 +193,7 @@ staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } - staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, i*8)); // 宸ヤ綔鍙� - - staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*8 + 4)); // 鐩爣绔� - - boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*8 + 6, 2); + boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, i*2, 2); staProtocol.setAutoing(status[0]); // 鑷姩 staProtocol.setLoading(status[1]); // 鏈夌墿 staProtocol.setInEnable(status[2]); // 鍙叆 @@ -213,13 +209,29 @@ } } + OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (staNoSize*4)); + if (result1.IsSuccess) { + for (int i = 0; i < staNoSize; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + StaProtocol staProtocol = station.get(siteId); + if (null == staProtocol) { + staProtocol = new StaProtocol(); + staProtocol.setSiteId(siteId); + station.put(siteId, staProtocol); + } + staProtocol.setWorkNo((int) siemensS7Net.getByteTransform().TransInt16(result1.Content, i*4)); // 宸ヤ綔鍙� + staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result1.Content, i*4 + 2)); // 鐩爣绔� + } + } + //鏉$爜鎵弿鍣� ArrayList<Integer> barcodeList = BarcodeList; - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.100", (short) (barcodeList.size() * 8)); + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.100", (short) (barcodeList.size() * 10)); if (result2.IsSuccess) { for (int i = 0; i < barcodeList.size(); i++) { Integer barcodeId = barcodeList.get(i); - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8"); + String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*10+2,8, "UTF-8"); + barcode = barcode.trim(); BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1); if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { barcodeThread.setBarcode(barcode); @@ -303,14 +315,15 @@ ArrayList<Integer> staNos = getStaNo(); int index = staNos.indexOf(staProtocol.getSiteId()); OperateResult write = null; - OperateResult write1 = null; //浠诲姟涓嬪彂娆℃暟 int writeCount = 0; do { - write = siemensS7Net.Write("DB108." + index*6, staProtocol.getWorkNo()); // 宸ヤ綔鍙� - Thread.sleep(200); - write1 = siemensS7Net.Write("DB108." + (index*6+4), staProtocol.getStaNo().shortValue()); // 鐩爣绔� - if(write.IsSuccess && write1.IsSuccess){ + short[] data = new short[2]; + data[0] = staProtocol.getWorkNo().shortValue(); + data[1] = staProtocol.getStaNo(); + + write = siemensS7Net.Write("DB100." + index*4, data); + if(write.IsSuccess){ log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); break; } -- Gitblit v1.9.1