From 0bdf2da5b1407d7d0dbb90ba11a6ba0f18856ac0 Mon Sep 17 00:00:00 2001 From: pang.jiabao <pang_jiabao@163.com> Date: 星期五, 09 五月 2025 16:55:17 +0800 Subject: [PATCH] 单机调试完成 --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 134 ++++++++++++++++++-------------------------- 1 files changed, 54 insertions(+), 80 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 77c318a..25b99fe 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -40,55 +40,13 @@ public class SiemensDevpThread implements Runnable, DevpThread { public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ - add(101); - add(102); - add(103); - add(104); - add(105); - add(106); - add(107); - add(108); - add(109); - add(110); - add(111); - add(112); - add(113); - add(114); - add(115); - add(116); - add(117); - add(118); - add(119); - add(120); - - 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(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);add(109);add(110); + add(111);add(112);add(113);add(114);add(115);add(116); + add(201);add(202);add(203);add(205);add(206);add(207);add(210);add(211);add(212); }}; public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ - add(301); - add(302); - add(303); - add(304); - add(305); - add(306); - add(307); - add(308); + add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308); }}; /** * 鍏ュ嚭搴撴ā寮� @@ -218,10 +176,11 @@ * 璇诲彇鐘舵�� ====> 鏁村潡plc */ private void read() throws InterruptedException { - // 鏇存柊鍏ュ嚭搴撴ā寮� -// updateIoMode(); + ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); + + // 璇昏揣浣嶄俊鎭弽棣� OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8)); if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { @@ -252,32 +211,47 @@ } } - if (slave.getId() == 1) { - //鏉$爜 //Thread.sleep(200); - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.848.0", (short) 8); + // 璇诲彇鏉$爜 + OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (staNoSize*8)); if (result2.IsSuccess) { - for (int i = 0; i < 1; i++) { - String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8"); - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1); - if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { - barcodeThread.setBarcode(barcode); + for (int i =0; i <staNoSize; i++) { + int barcodeId = 0; + switch (i){ + case 1:barcodeId=1;break; + case 4:barcodeId=2;break; + case 7:barcodeId=3;break; + case 10:barcodeId=4;break; + case 13:barcodeId=5;break; + default: + } + if (barcodeId != 0) { + String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8"); + BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId); + if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { + barcodeThread.setBarcode(barcode); + } } } } - //澶栧舰妫�娴� - OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.810.0", (short) (barcodeSize * 1)); - StaProtocol staProtocol1 = station.get(116); - boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, 0, 1); - staProtocol1.setFrontErr(status1[0]); - staProtocol1.setBackErr(status1[1]); - staProtocol1.setHighErr(status1[2]); - staProtocol1.setLeftErr(status1[3]); - staProtocol1.setRightErr(status1[4]); - staProtocol1.setWeightErr(status1[5]); - staProtocol1.setBarcodeErr(status1[6]); + // 璇诲彇澶栧舰妫�娴� + OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.936", (short) (staNoSize * 8)); + if (resultErr1.IsSuccess) { + for (int i = 0; i < staNoSize; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + StaProtocol staProtocol = station.get(siteId); + boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i * 2, 1); + staProtocol.setFrontErr(status1[0]); + staProtocol.setBackErr(status1[1]); + staProtocol.setHighErr(status1[2]); + staProtocol.setLeftErr(status1[3]); + staProtocol.setRightErr(status1[4]); + staProtocol.setWeightErr(status1[5]); + staProtocol.setBarcodeErr(status1[6]); + } + } OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4)); if (resultErr.IsSuccess) { @@ -347,25 +321,25 @@ //浠诲姟涓嬪彂鎴愬姛鏍囪瘑 boolean writeFlag = false; while (writeCount < 5) { - OperateResult writeResult1 = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo().intValue()); // 宸ヤ綔鍙� - OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo()); // 鐩爣绔� + OperateResult writeResult1 = siemensS7Net.Write("DB100." + index * 4, staProtocol.getWorkNo()); // 宸ヤ綔鍙� + OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index * 4 + 2), staProtocol.getStaNo()); // 鐩爣绔� if (writeResult1.IsSuccess && writeResult2.IsSuccess) { Thread.sleep(200); - OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 6); + OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 2); if (readResult.IsSuccess) { - Integer workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0); - short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4); - if (workNo.equals(staProtocol.getWorkNo().intValue()) && staProtocol.getStaNo().equals(staNo)) { - //浠诲姟鍛戒护鍐欏叆鎴愬姛 +// short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0); +// short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2); +// if (staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)) { +// //浠诲姟鍛戒护鍐欏叆鎴愬姛 writeFlag = true; log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); break; - } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 - writeCount++; - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", - slave.getId(), JSON.toJSON(staProtocol), writeCount)); - log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } +// } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓 +// writeCount++; +// OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", +// slave.getId(), JSON.toJSON(staProtocol), writeCount)); +// log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); +// } } else { writeCount++; OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}", -- Gitblit v1.9.1