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 | 207 ++++++++++++++++++++++++++++++++++++++------------- 1 files changed, 154 insertions(+), 53 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java index e0961e1..0980805 100644 --- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java +++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java @@ -304,7 +304,7 @@ 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*4), (short) 4); + OperateResultExOne<byte[]> resultRgv2 = siemensS7Net.Read("DB100."+(1824+i*10), (short) 8); if (resultRgv.IsSuccess) { Integer siteId = staNosRgv[i]; // 绔欑偣缂栧彿 StaProtocol staProtocol = station.get(siteId); @@ -319,13 +319,20 @@ staProtocol.setNowRow(siemensS7Net.getByteTransform().TransInt16(resultRgv.Content, 2)); // 褰撳墠浣嶇疆 boolean[] status = siemensS7Net.getByteTransform().TransBool(resultRgv.Content, 4, 1); - boolean[] status2 = siemensS7Net.getByteTransform().TransBool(resultRgv2.Content, 2, 1); - staProtocol.setRGV1(status[0]); // 鑷姩 - staProtocol.setRGV2(status[1]); // 鏈夌墿 - staProtocol.setRGV3(status[2]); // 鍙叆 - staProtocol.setRGV4(status2[0]);// - staProtocol.setRGV5(status2[1]); // - staProtocol.setRGV6(status2[2]); // 婊℃墭鐩� + 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()); } @@ -561,24 +568,27 @@ } boolean rgv6 = staProtocol.isRGV6(); OperateResult result1 = null; + OperateResult result2 = null; String resultV1 = ""; + short resultS1 = 1; + short resultS2 = 2; switch (staProtocol.getSiteId()){ case 623: - resultV1 = "DB100.1826.2"; + resultV1 = "DB100.1830"; break; case 624: - resultV1 = "DB100.1830.2"; + resultV1 = "DB100.1840"; break; case 625: - resultV1 = "DB100.1834.2"; + resultV1 = "DB100.1850"; break; case 626: - resultV1 = "DB100.1838.2"; + resultV1 = "DB100.1860"; break; default: return; } - result1 = siemensS7Net.Write(resultV1, rgv6); + result1 = siemensS7Net.Write(resultV1, resultS1); //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� try { @@ -592,26 +602,71 @@ try{ if(!result1.IsSuccess){ log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); - result1 = siemensS7Net.Write(resultV1, rgv6); + 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); - if (status[2]){ + 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(resultV1, rgv6); + 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, rgv6); + 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); + + //纭寲缃愪换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔� + try { + Thread.sleep(200); + } catch (InterruptedException e) { + e.printStackTrace(); + } + + writeCount = 1; + do { + try{ + if(!result1.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) { + 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(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; @@ -630,72 +685,118 @@ boolean rgv4 = staProtocol.isRGV4(); boolean rgv5 = staProtocol.isRGV5(); OperateResult result1 = null; + OperateResult result2 = null; String resultV1 = ""; - switch (staProtocol.getSiteId()){ - case 623: - resultV1 = "DB100.1826"; - break; - case 624: - resultV1 = "DB100.1830"; - break; - case 625: - resultV1 = "DB100.1834"; - break; - case 626: - resultV1 = "DB100.1838"; - break; - default: - return; - } + short resultS1 = 1; + short resultS2 = 2; if (rgv4){ - result1 = siemensS7Net.Write(resultV1+".0", rgv4); - } else { - result1 = siemensS7Net.Write(resultV1+".1", rgv5); + 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); - if (rgv4){ - result1 = siemensS7Net.Write(resultV1+".0", rgv4); - } else { - result1 = siemensS7Net.Write(resultV1+".1", rgv5); - } + 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); - if (status[rgv4? 0:1]){ +// 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); - if (rgv4){ - result1 = siemensS7Net.Write(resultV1+".0", rgv4); - } else { - result1 = siemensS7Net.Write(resultV1+".1", rgv5); - } + result1 = siemensS7Net.Write(resultV1, resultS1); Thread.sleep(100); writeCount++; continue; } } else { log.error("鍐欏叆RGV鏁版嵁澶辫触锛岄噸鏂颁笅鍙戜换鍔� 鍐欏叆鐩存帴澶辫触 ===>> [id:{}],{},[鍐欏叆娆℃暟:{}]", slave.getId(), JSON.toJSON(staProtocol),writeCount); - if (rgv4){ - result1 = siemensS7Net.Write(resultV1+".0", rgv4); + 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 { - result1 = siemensS7Net.Write(resultV1+".1", rgv5); + 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; -- Gitblit v1.9.1