From a6f6f82ccb56c168ecd564eca377b41f25a901bb Mon Sep 17 00:00:00 2001 From: ZY <zc857179121@qq.com> Date: 星期一, 07 四月 2025 17:20:44 +0800 Subject: [PATCH] 还没有写完 --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 309 +++++++++++---------------------------------------- 1 files changed, 67 insertions(+), 242 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 78930dd..a245b82 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -40,7 +40,6 @@ public class SiemensDevpThread implements Runnable, DevpThread { public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ - add(100); add(101); add(102); add(103); @@ -61,15 +60,35 @@ add(118); add(119); add(120); - add(121); - add(122); - add(123); - add(124); - add(125); - add(1001); - add(1002); - add(1003); - add(1004); + + 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); + }}; + + 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); }}; /** * 鍏ュ嚭搴撴ā寮� @@ -79,35 +98,24 @@ * 3.鍑哄簱鍚姩涓� 锛堜笉鑳界敓鎴愬叆搴撳伐浣滄。锛� * 4.鍑哄簱妯″紡 */ - public IoModeType ioModeOf2F = IoModeType.NONE; - public IoModeType ioModeOf4F = IoModeType.NONE; + public IoModeType ioModeOf1F1 = IoModeType.NONE; + public IoModeType ioModeOf1F2 = IoModeType.NONE; + public IoModeType ioModeOf1F3 = IoModeType.NONE; + public IoModeType ioModeOf1F4 = IoModeType.NONE; + public IoModeType ioModeOf1F5 = IoModeType.NONE; + + public IoModeType ioModeOf2F1 = IoModeType.NONE; + public IoModeType ioModeOf2F2 = IoModeType.NONE; + public IoModeType ioModeOf2F3 = IoModeType.NONE; + private DevpSlave slave; private SiemensS7Net siemensS7Net; private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); - /*public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ - 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(223); - add(224);add(225);add(226);add(227); - add(228);add(229);add(230);add(231); - add(232);add(233);add(234);add(235); - }}; - public static final ArrayList<Integer> staNos3 = new ArrayList<Integer>() {{ - add(300);add(301);add(302);add(303); - add(304);add(305);add(306);add(307); - }}; - public static final ArrayList<Integer> staNos4 = new ArrayList<Integer>() {{ - add(400);add(401);add(402);add(403); - add(404);add(405);add(406);add(407); - }};*/ - private short heartBeatVal = 1; + /** * 鏉$爜鏁伴噺 */ - private int barcodeSize = 1; + private int barcodeSize = 8; public SiemensDevpThread(DevpSlave slave) { this.slave = slave; @@ -127,17 +135,13 @@ System.out.println(index * 2 + 200); } - // public IoModeType ioMode = IoModeType.NONE; + private ArrayList<Integer> getStaNo() { switch (slave.getId()) { case 1: return staNos1; - /*case 2: + case 2: return staNos2; - case 3: - return staNos3; - case 4: - return staNos4;*/ default: throw new CoolException("鏈嶅姟鍣ㄥ紓甯�"); } @@ -164,20 +168,9 @@ write((StaProtocol) task.getData()); read(); break; - // 鍐欐暟鎹� ID+鐩爣绔� - case 4: - writeAgvOk((StaProtocol) task.getData()); - read(); - break; - /* case 3: - write2((StaProtocol)task.getData()); - read(); - break;*/ default: break; } - // 蹇冭烦 -// heartbeat(); Thread.sleep(400); } catch (Exception e) { e.printStackTrace(); @@ -239,7 +232,7 @@ * 璇诲彇鐘舵�� ====> 鏁村潡plc */ private void read() throws InterruptedException { -// // 鏇存柊鍏ュ嚭搴撴ā寮� + // 鏇存柊鍏ュ嚭搴撴ā寮� // updateIoMode(); ArrayList<Integer> staNos = getStaNo(); int staNoSize = staNos.size(); @@ -272,72 +265,6 @@ } } } - -// OperateResultExOne<byte[]> resultAgvAndPlc = siemensS7Net.Read("DB102.0", (short) 30); -// if (resultAgvAndPlc.IsSuccess) { -// for (int i = 0; i < staNoSize; i++) { -// int sign =(i+2)/2-1; -// if ((i+2)%2!=0){ -// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 -// StaProtocol staProtocol = station.get(siteId); -// if (null == staProtocol) { -// staProtocol = new StaProtocol(); -// staProtocol.setSiteId(siteId); -// station.put(siteId, staProtocol); -// } -// staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6+4)); // 鍏佽鍙栬揣 -// staProtocol.setAgvStartPlace((short)0); // 鍏佽鏀捐揣 -// continue; -// } -// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 -// StaProtocol staProtocol = station.get(siteId); -// if (null == staProtocol) { -// staProtocol = new StaProtocol(); -// staProtocol.setSiteId(siteId); -// station.put(siteId, staProtocol); -// } -// staProtocol.setAgvStartPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6)); // 鍏佽鍙栬揣 -// staProtocol.setAgvStartPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlc.Content, sign*6 + 2)); // 鍏佽鏀捐揣 -// } -// } - -// OperateResultExOne<byte[]> resultAgvAndPlcOk = siemensS7Net.Read("DB132.0", (short) 30); -// if (resultAgvAndPlcOk.IsSuccess) { -// for (int i = 0; i < staNoSize; i++) { -// int sign =(i+2)/2-1; -// if ((i+2)%2!=0){ -// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 -// StaProtocol staProtocol = station.get(siteId); -// if (null == staProtocol) { -// staProtocol = new StaProtocol(); -// staProtocol.setSiteId(siteId); -// station.put(siteId, staProtocol); -// } -// staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6+4)); // 鍏佽鍙栬揣 -// staProtocol.setAgvTargetPlace((short)0); // 鍏佽鏀捐揣 -// continue; -// } -// Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 -// StaProtocol staProtocol = station.get(siteId); -// if (null == staProtocol) { -// staProtocol = new StaProtocol(); -// staProtocol.setSiteId(siteId); -// station.put(siteId, staProtocol); -// } -// try{ -// staProtocol.setAgvTargetPick(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6)); // 鍙栬揣瀹屾垚 -// if (staProtocol.getAgvTargetPick()!=0){ -// System.out.println(staProtocol.getAgvTargetPick()); -// } -// staProtocol.setAgvTargetPlace(siemensS7Net.getByteTransform().TransInt16(resultAgvAndPlcOk.Content, sign*6 + 2)); // 鏀捐揣瀹屾垚 -// if (staProtocol.getAgvTargetPlace()!=0){ -// System.out.println(staProtocol.getAgvTargetPlace()); -// } -// }catch (Exception e){ -// log.error(""+e); -// } -// } -// } if (slave.getId() == 1) { @@ -387,29 +314,6 @@ } -// //RGV鍙拌溅浣嶇疆 -// Thread.sleep(200); -// OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4); -// if (result3.IsSuccess) { -// for (int i = 0; i < 2; i++) { -// Integer siteId = i==0 ? 1 : 2; // 绔欑偣缂栧彿 -// StaProtocol staProtocol = station.get(siteId); -// if (null == staProtocol) { -// staProtocol = new StaProtocol(); -// staProtocol.setSiteId(siteId); -// station.put(siteId, staProtocol); -// } -// staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, i*2))); -//// String aa = staProtocol.getNearbySta(); -//// System.out.println(siteId + "===>>" + staProtocol.getNearbySta()); -// } -// } - -// OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0"); -// if (result2.IsSuccess) { -// this.ioMode = IoModeType.get(result2.Content); -// } - if (result.IsSuccess) { OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId())); @@ -442,90 +346,6 @@ } } - /** - * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� - */ - private void writeAgvOk(StaProtocol staProtocol) throws InterruptedException { - if (null == staProtocol) { - return; - } - ArrayList<Integer> staNos = getStaNo(); - int index = staNos.indexOf(staProtocol.getSiteId()); - if (staProtocol.getAgvTypeSign() == 0 || staProtocol.getAgvTypeSign() == 2) { //0鍙栬揣 - switch (staProtocol.getSiteId()) { - case 100: - index = 32; - break; - case 101: - index = 34; - break; - case 102: - index = 38; - break; - case 103: - index = 40; - break; - case 104: - index = 44; - break; - case 105: - index = 46; - break; - case 106: - index = 50; - break; - case 107: - index = 52; - break; - default: - return; - } - } else { - switch (staProtocol.getSiteId()) { - case 100: - index = 30; - break; - case 102: - index = 36; - break; - case 104: - index = 42; - break; - case 106: - index = 48; - break; - default: - return; - } - } - - OperateResult write = null; - //浠诲姟涓嬪彂娆℃暟 - int writeCount = 0; - do { - short textWrite = 1;// 浠诲姟瀹屾垚 - if (staProtocol.getAgvTypeSign() > 1) { - textWrite = 0;// 浠诲姟澶嶄綅 - } - write = siemensS7Net.Write("DB102." + index, textWrite); - if (write.IsSuccess) { - writeCount = 6; - } else { - writeCount++; - log.error("鍐欏叆杈撻�佺嚎鍙栨斁璐у畬鎴愬懡浠ゅ悗璇诲彇澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); - } - } while (writeCount < 5); - - if (!write.IsSuccess) { - 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)); - } - - - } private void write(StaProtocol staProtocol) throws InterruptedException { if (null == staProtocol) { @@ -720,30 +540,35 @@ } + // 鏇存柊鍏ュ嚭搴撴ā寮� private void updateIoMode() throws InterruptedException { - if (this.ioModeOf2F != IoModeType.NONE) { - if (!siemensS7Net.Write("DB100.180", this.ioModeOf2F.id).IsSuccess) { - OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId())); - log.error("鍐欏叆杈撻�佺嚎2F鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + if (slave.getId() == 1 && this.ioModeOf1F1 != null) { + if (!siemensS7Net.Write("DB4.2", this.ioModeOf1F1.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎21F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={2}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎2F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + if (slave.getId() == 1 && this.ioModeOf1F2 != null) { + if (!siemensS7Net.Write("DB4.4", this.ioModeOf1F2.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={3}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + if (slave.getId() == 1 && this.ioModeOf1F2 != null) { + if (!siemensS7Net.Write("DB4.2", this.ioModeOf1F2.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={2}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); + } + } + if (slave.getId() == 1 && this.ioModeOf1F2 != null) { + if (!siemensS7Net.Write("DB4.4", this.ioModeOf1F2.id).IsSuccess) { + OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={3}", slave.getId())); + log.error("鍐欏叆杈撻�佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId()); } } } - /** - * 蹇冭烦 - */ - private void heartbeat() { - if (heartBeatVal == 1) { - heartBeatVal = 2; - } else { - heartBeatVal = 1; - } - OperateResult write = siemensS7Net.Write("DB100.50", heartBeatVal); - if (!write.IsSuccess) { - log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId()); - } - } /** * 璁剧疆鍏ュ簱鏍囪 -- Gitblit v1.9.1