From 760b6e0fbc3fe32fea1aacb39b91864f57c5ebae Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期六, 24 五月 2025 12:41:40 +0800 Subject: [PATCH] #系统异常监视 --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 182 ++++++++------------------------------------ 1 files changed, 35 insertions(+), 147 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index d8f138c..cea58c7 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -56,6 +56,11 @@ add(1131);add(1132);add(1133);add(1134);add(1135); }}; + public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{ + add(1112);add(1114);add(1122);add(1124);add(1131);add(1135); + + }}; + public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{ add(1112); add(1122); }}; @@ -69,7 +74,7 @@ /** * 鏉$爜鏁伴噺 */ - private int barcodeSize = 6; + private int barcodeSize = 2; /** * 鍏ュ嚭搴撴ā寮� @@ -145,7 +150,7 @@ staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } - staProtocol.setWorkNo(0); // ID + staProtocol.setWorkNo((short) 0); // ID staProtocol.setAutoing(false); // 鑷姩 staProtocol.setLoading(false); // 鏈夌墿 staProtocol.setInEnable(false); // 鍙叆 @@ -189,7 +194,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("DB82.4", (short) (staNoSize*26)); if (result.IsSuccess) { for (int i = 0; i < staNoSize; i++) { Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 @@ -199,154 +204,38 @@ 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*26, 2); staProtocol.setAutoing(status[0]); // 鑷姩 - staProtocol.setLoading(status[1]); // 鏈夌墿 - staProtocol.setInEnable(status[2]); // 鍙叆 - staProtocol.setOutEnable(status[3]);// 鍙嚭 - staProtocol.setEmptyMk(status[4]); // 绌烘澘淇″彿 - staProtocol.setFullPlt(status[5]); // 婊℃墭鐩� - staProtocol.setHigh(status[6]); // 楂樺簱浣� - staProtocol.setLow(status[7]); // 浣庡簱浣� + staProtocol.setIdle(status[1]); //绌洪棽 + staProtocol.setLoading(status[2]); // 鏈夌墿 + staProtocol.setIn(status[3]); + staProtocol.setOut(status[4]); + staProtocol.setBackErr(status[5]); + staProtocol.setLeftErr(status[6]); + staProtocol.setRightErr(status[7]); + staProtocol.setHighErr(status[8]); + staProtocol.setWeightErr(status[9]); + staProtocol.setLow(status[10]); + staProtocol.setHigh(status[11]); + + staProtocol.setInEnable(status[13]); // 鍙叆 + staProtocol.setOutEnable(status[14]);// 鍙嚭 + + + staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+2)); // 宸ヤ綔鍙� + staProtocol.setFinishWorkNo(siemensS7Net.getByteTransform().TransInt16(result.Content, i*26+6)); //宸插畬鎴愬伐浣滃彿 + staProtocol.setBarcode(siemensS7Net.getByteTransform().TransString(result.Content,i*26+10,12, "UTF-8").trim()); //鏉$爜 + staProtocol.setWeight(siemensS7Net.getByteTransform().TransInt32(result.Content, i*26+22)); //閲嶉噺 + + + if (!staProtocol.isPakMk() && !staProtocol.isLoading()) { staProtocol.setPakMk(true); } } - } - BasRgvMapService basRgvMapService = SpringUtils.getBean(BasRgvMapService.class); - //RGV灏忚溅1 -// Thread.sleep(100); - OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB50.200",(short)10); - if (result3.IsSuccess) { - BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result3.Content, 0)); - if (!Cools.isEmpty(basRgvMap)){ - Integer siteId = 1; - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); - } - staProtocol.setAutoing(true); - staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result3.Content, 8))); - } - } - //RGV灏忚溅2 -// Thread.sleep(100); - OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB50.212",(short)10); - if (result4.IsSuccess) { - BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result4.Content, 0)); - if (!Cools.isEmpty(basRgvMap)){ - Integer siteId = 2; - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); - } - staProtocol.setAutoing(true); - staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result4.Content, 8))); - } - } - - //RGV灏忚溅3 -// Thread.sleep(100); - OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB50.224",(short)10); - if (result5.IsSuccess) { - BasRgvMap basRgvMap = basRgvMapService.selectByRgvNo((int) siemensS7Net.getByteTransform().TransInt16(result5.Content, 0)); - if (!Cools.isEmpty(basRgvMap)){ - Integer siteId = 3; - StaProtocol staProtocol = station.get(siteId); - if (null == staProtocol) { - staProtocol = new StaProtocol(); - staProtocol.setSiteId(siteId); - station.put(siteId, staProtocol); - } - staProtocol.setAutoing(true); - staProtocol.setNearbySta(String.valueOf(siemensS7Net.getByteTransform().TransInt16(result5.Content, 8))); - } - } - - //鏉$爜鎵弿鍣� - ArrayList<Integer> barcodeList = BarcodeList; - OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.840", (short) (barcodeList.size() * 8)); - 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"); - BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId + 1); - if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) { - barcodeThread.setBarcode(barcode); - } - } - } - //澶栧舰妫�娴� - ArrayList<Integer> staNoErrs = staNosErrList; - int staNoErrsSize = staNoErrs.size(); - OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8)); - if (resultErr.IsSuccess){ - for (int i = 0;i<3;i++){ - Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1); - StaProtocol staProtocol = station.get(siteId); - staProtocol.setFrontErr(status[0]); - staProtocol.setBackErr(status[1]); - staProtocol.setHighErr(status[2]); - staProtocol.setLeftErr(status[3]); - staProtocol.setRightErr(status[4]); - staProtocol.setWeightErr(status[5]); - staProtocol.setBarcodeErr(status[6]); - } - } - - OperateResultExOne<byte[]> resultErr2 = siemensS7Net.Read("DB13.2", (short) (staNoSize*4)); - if (resultErr2.IsSuccess) { - for (int i = 0; i < staNoSize; i++) { - Integer siteId = staNos.get(i); // 绔欑偣缂栧彿 - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr2.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[]> resultErr3 = siemensS7Net.Read("DB13.400", (short) 3); - if (resultErr3.IsSuccess) { - if (staError1 == null){ - staError1 = new StaError1(); - } - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr3.Content, 0, 3); - staError1.setEMERGENCY_Stop_Core(status[0]); - staError1.setEMERGENCY_STOP1(status[1]); - staError1.setEMERGENCY_STOP2(status[2]); - staError1.setEMERGENCY_STOP3(status[3]); - staError1.setEMERGENCY_STOP4(status[4]); - - staError1.setDoor_EMERGENCY_STOP1(status[5]); - staError1.setDoor_EMERGENCY_STOP2(status[6]); - staError1.setDoor_EMERGENCY_STOP3(status[7]); - staError1.setDoor_EMERGENCY_STOP4(status[8]); - staError1.setDoor_EMERGENCY_STOP5(status[9]); - staError1.setDoor_EMERGENCY_STOP6(status[10]); - - staError1.setDoor_Open_Err1(status[11]); - staError1.setDoor_Open_Err1(status[12]); - staError1.setDoor_Open_Err1(status[13]); - staError1.setDoor_Open_Err1(status[14]); - staError1.setDoor_Open_Err1(status[15]); - staError1.setDoor_Open_Err1(status[16]); - } @@ -386,16 +275,15 @@ if (null == staProtocol) { return; } - ArrayList<Integer> staNos = getStaNo(); - int index = staNos.indexOf(staProtocol.getSiteId()); + int index = staNos2.indexOf(staProtocol.getSiteId()); OperateResult write = null; OperateResult write1 = null; //浠诲姟涓嬪彂娆℃暟 int writeCount = 0; do { - write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo()); // 宸ヤ綔鍙� + write = siemensS7Net.Write("DB83." + (index*8+6), staProtocol.getWorkNo()); // 宸ヤ綔鍙� Thread.sleep(200); - write1 = siemensS7Net.Write("DB100." + (index*6+4), staProtocol.getStaNo().shortValue()); // 鐩爣绔� + write1 = siemensS7Net.Write("DB83." + (index*8+4), staProtocol.getStaNo()); // 鐩爣绔� if(write.IsSuccess && write1.IsSuccess){ log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount); break; -- Gitblit v1.9.1