From 190e9357e07e7119c4c139dbb2b06c98cfa9b0b4 Mon Sep 17 00:00:00 2001 From: zjj <3272660260@qq.com> Date: 星期四, 23 五月 2024 14:15:39 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 86 ++++++++++++++++++++++++++++++++++++------- 1 files changed, 72 insertions(+), 14 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 78b31bf..081789a 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -47,6 +47,7 @@ private SiemensS7Net siemensS7Net; private Map<Integer, StaProtocol> station = new ConcurrentHashMap<>(); private short heartBeatVal = 1; + private Integer rgvCount = 4; public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{ add(100);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(121);add(122);add(123); @@ -168,6 +169,19 @@ staProtocol.setPakMk(true); } } + if (slave.getId() == 2){ + for (int i = 1;i<5;i++){ + StaProtocol staProtocol = station.get(i); + if (null == staProtocol) { + staProtocol = new StaProtocol(); + staProtocol.setSiteId(i); + station.put(i, staProtocol); + } + staProtocol.setWorkNo((short) 0); + staProtocol.setNearbySta((short) 1); + staProtocol.setLoading(false); + } + } } @Override @@ -234,6 +248,30 @@ if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); + } + } + } + + if (slave.getId() == 2){ + + OperateResultExOne<byte[]> resultRgvWrkNo = siemensS7Net.Read("DB55.222", (short) 98); + OperateResultExOne<byte[]> resultRgvLocation = siemensS7Net.Read("DB43.0", (short) 8); + OperateResultExOne<byte[]> resultRgvload = siemensS7Net.Read("DB192.0", (short) 8); + if (resultRgvWrkNo.IsSuccess && resultRgvLocation.IsSuccess && resultRgvload.IsSuccess){ + for (int i = 0;i<4;i++){ + short wrkNo = siemensS7Net.getByteTransform().TransInt16(resultRgvWrkNo.Content, i * 32); + short location = siemensS7Net.getByteTransform().TransInt16(resultRgvLocation.Content, i * 2); + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRgvload.Content, i*2, 1); + StaProtocol staProtocol = station.get((i+1)); + if (null == staProtocol) { + staProtocol = new StaProtocol(); + staProtocol.setSiteId((i+1)); + station.put((i+1), staProtocol); + } + staProtocol.setWorkNo(wrkNo); + staProtocol.setAutoing(true); + staProtocol.setNearbySta(location); + staProtocol.setLoading(status[0]); } } } @@ -388,28 +426,48 @@ } } + if(slave.getId() != 2){ + OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB13.2", (short) (staNoSize*4)); + if (resultErr.IsSuccess) { + for (int i = 0; i < staNoSize; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4, 1); + StaProtocol staProtocol = station.get(siteId); + staProtocol.setBreakerErr(status[0]); + staProtocol.setInfraredErr(status[1]); + staProtocol.setOutTimeErr(status[2]); + staProtocol.setSeizeSeatErr(status[3]); + staProtocol.setWrkYgoodsN(status[4]); + staProtocol.setInverterErr(status[5]); + staProtocol.setContactErr(status[6]); + staProtocol.setUpcontactErr(status[7]); - OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB13.2", (short) (staNoSize*4)); - if (resultErr.IsSuccess) { - for (int i = 0; i < staNoSize; i++) { - Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4, 1); - StaProtocol staProtocol = station.get(siteId); - staProtocol.setBreakerErr(status[0]); - staProtocol.setInfraredErr(status[1]); - staProtocol.setOutTimeErr(status[2]); - staProtocol.setSeizeSeatErr(status[3]); - staProtocol.setWrkYgoodsN(status[4]); - staProtocol.setInverterErr(status[5]); - staProtocol.setContactErr(status[6]); - staProtocol.setUpcontactErr(status[7]); + } + } + }else { + OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB1003.2", (short) (staNoSize*4)); + if (resultErr.IsSuccess) { + for (int i = 0; i < staNoSize; i++) { + Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4, 1); + StaProtocol staProtocol = station.get(siteId); + staProtocol.setBreakerErr(status[0]); + staProtocol.setInfraredErr(status[1]); + staProtocol.setOutTimeErr(status[2]); + staProtocol.setSeizeSeatErr(status[3]); + staProtocol.setWrkYgoodsN(status[4]); + staProtocol.setInverterErr(status[5]); + staProtocol.setContactErr(status[6]); + staProtocol.setUpcontactErr(status[7]); + } } } + // //RGV鍙拌溅浣嶇疆 // Thread.sleep(200); // OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB100.0",(short)4); -- Gitblit v1.9.1