From 35fb6b68419f266d0c73639aff8deac25ce0d31e Mon Sep 17 00:00:00 2001 From: lsh <lsh123456> Date: 星期四, 27 六月 2024 14:22:28 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensDevpThread.java | 248 ++++++++++++++++++++++++++++++++++++++++--------- 1 files changed, 202 insertions(+), 46 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index 3850d4e..0980805 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -200,6 +200,12 @@ case 9: write9((StaProtocol)task.getData()); break; + case 10: + write10((StaProtocol)task.getData()); + break; + case 11: + write11((StaProtocol)task.getData()); + break; default: break; } @@ -292,11 +298,13 @@ staProtocol.setBarcodeErr(status[6]);// 鎵爜澶辫触 } } + if (slave.getId()==2){ Thread.sleep(200); int[] staNosRgv = {623,624,625,626}; for (int i = 0; i < staNosRgv.length; i++) { OperateResultExOne<byte[]> resultRgv = siemensS7Net.Read("DB100."+(1800+i*6), (short) 5); + OperateResultExOne<byte[]> resultRgv2 = siemensS7Net.Read("DB100."+(1824+i*10), (short) 8); if (resultRgv.IsSuccess) { Integer siteId = staNosRgv[i]; // 绔欑偣缂栧彿 StaProtocol staProtocol = station.get(siteId); @@ -305,20 +313,33 @@ staProtocol.setSiteId(siteId); station.put(siteId, staProtocol); } - staProtocol.setEndRow(siemensS7Net.getByteTransform().TransInt16(result.Content, 0)); // 灏忚溅鐩爣浣� + try{ + staProtocol.setEndRow(siemensS7Net.getByteTransform().TransInt16(resultRgv2.Content, 0)); // 灏忚溅鐩爣浣� - staProtocol.setNowRow(siemensS7Net.getByteTransform().TransInt16(result.Content, 2)); // 鐩爣绔� + staProtocol.setNowRow(siemensS7Net.getByteTransform().TransInt16(resultRgv.Content, 2)); // 褰撳墠浣嶇疆 - boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, 4, 1); - staProtocol.setRGV1(status[0]); // 鑷姩 - staProtocol.setRGV2(status[1]); // 鏈夌墿 - staProtocol.setRGV3(status[2]); // 鍙叆 - staProtocol.setRGV4(status[3]);// - staProtocol.setRGV5(status[4]); // - staProtocol.setRGV6(status[5]); // 婊℃墭鐩� + boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRgv.Content, 4, 1); + staProtocol.setRGV1(status[0]); // 灏忚溅鏃犺揣绌洪棽 + staProtocol.setRGV2(status[1]); // 灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅 + staProtocol.setRGV3(status[2]); // 灏忚溅杩愯涓� + +// staProtocol.setRGV11(siemensS7Net.getByteTransform().TransInt16(resultRgv.Content, 2)); // 灏忚溅鏃犺揣绌洪棽 +// staProtocol.setRGV22(siemensS7Net.getByteTransform().TransInt16(resultRgv.Content, 2)); // 灏忚溅杈撻�佺嚎鍙栬揣鍒颁綅 +// staProtocol.setRGV33(siemensS7Net.getByteTransform().TransInt16(resultRgv.Content, 2)); //灏忚溅杩愯涓� + staProtocol.setRGV44(siemensS7Net.getByteTransform().TransInt16(resultRgv2.Content, 4));//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 + staProtocol.setRGV55(siemensS7Net.getByteTransform().TransInt16(resultRgv2.Content, 6)); //灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 + staProtocol.setRGV66(siemensS7Net.getByteTransform().TransInt16(resultRgv2.Content, 8)); // 涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡 + + staProtocol.setRGV4(staProtocol.getRGV44() != 0 && staProtocol.getRGV44() != 2);//灏忚溅鏀瑰乏渚ц揣鐗╃洰鏍囩珯 + staProtocol.setRGV5(staProtocol.getRGV55() != 0 && staProtocol.getRGV55() != 2); //灏忚溅鏀瑰彸渚ц揣鐗╃洰鏍囩珯 + staProtocol.setRGV6(staProtocol.getRGV66() != 0 && staProtocol.getRGV66() != 2); // 涓婁綅鏈烘竻闄ゅ钩绉昏溅璧勬枡 + }catch (Exception e){ + System.out.println(e.getMessage()); + } } } } + //鏉$爜鎵弿鍣� Thread.sleep(200); @@ -541,37 +562,34 @@ /** * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏� */ - private void write10(StaProtocol staProtocol) throws InterruptedException { + private void write11(StaProtocol staProtocol) throws InterruptedException { if (null == staProtocol) { return; } - boolean rgv4 = staProtocol.isRGV4(); - boolean rgv5 = staProtocol.isRGV5(); + boolean rgv6 = staProtocol.isRGV6(); OperateResult result1 = null; OperateResult result2 = null; String resultV1 = ""; - String resultV2 = ""; + short resultS1 = 1; + short resultS2 = 2; switch (staProtocol.getSiteId()){ case 623: - resultV1 = "1804"; - resultV2 = "1804"; + resultV1 = "DB100.1830"; break; case 624: - resultV1 = "1810"; - resultV2 = "1810"; + resultV1 = "DB100.1840"; break; case 625: - resultV1 = "1816"; - resultV2 = "1816"; + resultV1 = "DB100.1850"; break; case 626: - resultV1 = "1822"; - resultV2 = "1822"; + resultV1 = "DB100.1860"; break; default: return; } - result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4); + result1 = siemensS7Net.Write(resultV1, resultS1); + //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� try { Thread.sleep(200); @@ -584,27 +602,26 @@ try{ if(!result1.IsSuccess){ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); - result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4); + result1 = siemensS7Net.Write(resultV1, resultS1); Thread.sleep(100); writeCount++; continue; } OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2); if (resultRead1.IsSuccess) { - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead1.Content, 0, 1); - boolean status1 = status[rgv4? 4:3]; - if (status1 == rgv4?rgv5:rgv4){ + short status = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0); + if (status == 1){ break; } else { log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); - result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4); + result1 = siemensS7Net.Write(resultV1, resultS1); Thread.sleep(100); writeCount++; continue; } } else { log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); - result1 = siemensS7Net.Write(rgv4?resultV1+".4":resultV1+".3", rgv4?rgv5:rgv4); + result1 = siemensS7Net.Write(resultV1, resultS1); Thread.sleep(100); writeCount++; continue; @@ -615,33 +632,41 @@ writeCount++; } while (writeCount<6); - result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5); + result2 = siemensS7Net.Write(resultV1, resultS2); + + //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + writeCount = 1; do { try{ - if(!result2.IsSuccess){ + if(!result1.IsSuccess){ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); - result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5); + result2 = siemensS7Net.Write(resultV1, resultS2); + Thread.sleep(100); writeCount++; continue; } - OperateResultExOne<byte[]> resultRead2 = siemensS7Net.Read(resultV2, (short) 1); - if (resultRead2.IsSuccess) { - boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead2.Content, 0, 1); - boolean status1 = status[rgv4? 3:4]; - if (status1 == rgv4?rgv4:rgv5){ + OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2); + if (resultRead1.IsSuccess) { + short status = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0); + if (status == resultS2){ break; } else { log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); - result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5); + result2 = siemensS7Net.Write(resultV1, resultS2); Thread.sleep(100); writeCount++; continue; } } else { log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); - result2 = siemensS7Net.Write(rgv4?resultV2+".3":resultV2+".4", rgv4?rgv4:rgv5); + result2 = siemensS7Net.Write(resultV1, resultS2); Thread.sleep(100); writeCount++; continue; @@ -652,6 +677,137 @@ writeCount++; } while (writeCount<6); } + + private void write10(StaProtocol staProtocol) throws InterruptedException { + if (null == staProtocol) { + return; + } + boolean rgv4 = staProtocol.isRGV4(); + boolean rgv5 = staProtocol.isRGV5(); + OperateResult result1 = null; + OperateResult result2 = null; + String resultV1 = ""; + short resultS1 = 1; + short resultS2 = 2; + if (rgv4){ + switch (staProtocol.getSiteId()){ + case 623: + resultV1 = "DB100.1826"; + break; + case 624: + resultV1 = "DB100.1836"; + break; + case 625: + resultV1 = "DB100.1846"; + break; + case 626: + resultV1 = "DB100.1856"; + break; + default: + return; + } + } else if (rgv5){ + switch (staProtocol.getSiteId()){ + case 623: + resultV1 = "DB100.1828"; + break; + case 624: + resultV1 = "DB100.1838"; + break; + case 625: + resultV1 = "DB100.1848"; + break; + case 626: + resultV1 = "DB100.1858"; + break; + default: + return; + } + } + result1 = siemensS7Net.Write(resultV1, resultS1); + //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + int writeCount = 1; + do { + try{ + if(!result1.IsSuccess){ + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2); + if (resultRead1.IsSuccess) { +// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead1.Content, 0, 1); + short statusR1 = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0); + if (statusR1 == resultS1){ + break; + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result1 = siemensS7Net.Write(resultV1, resultS1); + Thread.sleep(100); + writeCount++; + continue; + } + }catch (Exception e){ + log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); + + + result2 = siemensS7Net.Write(resultV1, resultS2); + + writeCount = 1; + do { + try{ + if(!result2.IsSuccess){ + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(resultV1, resultS2); + Thread.sleep(100); + writeCount++; + continue; + } + OperateResultExOne<byte[]> resultRead1 = siemensS7Net.Read(resultV1, (short) 2); + if (resultRead1.IsSuccess) { +// boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRead1.Content, 0, 1); + short statusR1 = siemensS7Net.getByteTransform().TransInt16(resultRead1.Content, 0); + if (statusR1 == resultS2){ + break; + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(resultV1, resultS2); + + Thread.sleep(100); + writeCount++; + continue; + } + } else { + log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); + result2 = siemensS7Net.Write(resultV1, resultS2); + Thread.sleep(100); + writeCount++; + continue; + } + }catch (Exception e){ + log.error("鍐欏叆RGV鏁版嵁鍚庡洖璇诲嚭閿�,寮傚父锛�"+e); + } + writeCount++; + } while (writeCount<6); + } + private void write9(StaProtocol staProtocol) throws InterruptedException { if (null == staProtocol) { return; @@ -663,20 +819,20 @@ String resultV2 = ""; switch (staProtocol.getSiteId()){ case 623: - resultV1 = "1800"; - resultV2 = "1812"; + resultV1 = "DB100.1824"; + resultV2 = "DB100.1828"; break; case 624: - resultV1 = "1806"; - resultV2 = "1818"; + resultV1 = "DB100.1828"; + resultV2 = "DB100.1824"; break; case 625: - resultV1 = "1812"; - resultV2 = "1800"; + resultV1 = "DB100.1832"; + resultV2 = "DB100.1836"; break; case 626: - resultV1 = "1818"; - resultV2 = "1806"; + resultV1 = "DB100.1836"; + resultV2 = "DB100.1832"; break; default: return; -- Gitblit v1.9.1