From 2d56913050a638662390da14ea65a56badf1b392 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期四, 24 七月 2025 09:42:21 +0800
Subject: [PATCH] #优化

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   44 ++++++++++++++++++++++++++++++++++++++------
 1 files changed, 38 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index facc3d0..57266a5 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -518,20 +518,52 @@
 
         OperateResult write = null;
         OperateResult write1 = null;
+        boolean flag1 = false;
+        boolean flag2 = false;
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
-            Thread.sleep(200);
-            write1 = siemensS7Net.Write("DB100." + (offset+4), staProtocol.getStaNo().shortValue());    // 鐩爣绔�
-            if(write.IsSuccess && write1.IsSuccess){
+            if (!flag1) {
+                write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                if (write.IsSuccess) {
+                    OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100." + offset, (short) 2);
+                    if (result.IsSuccess) {
+                        if (staProtocol.getWorkNo().equals(siemensS7Net.getByteTransform().TransInt16(result.Content, (short) 0))) {
+                            flag1 = true;
+                        }
+                    }
+                }
+            }
+            if (!flag2) {
+                Thread.sleep(200);
+                write1 = siemensS7Net.Write("DB100." + (offset+4), staProtocol.getStaNo().shortValue());    // 鐩爣绔�
+                if (write1.IsSuccess) {
+                    OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100." + (offset+4), (short) 2);
+                    if (result2.IsSuccess) {
+                        if (staProtocol.getStaNo().equals(siemensS7Net.getByteTransform().TransInt16(result2.Content, (short) 0))) {
+                            flag2 = true;
+                        }
+                    }
+                }
+            }
+            if (flag1 && flag2) {
                 log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                 break;
-            }
-            else {
+            } else {
                 writeCount++;
                 log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
             }
+//            write = siemensS7Net.Write("DB100." + offset, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+//            Thread.sleep(200);
+//            write1 = siemensS7Net.Write("DB100." + (offset+4), staProtocol.getStaNo().shortValue());    // 鐩爣绔�
+//            if(write.IsSuccess && write1.IsSuccess){
+//                log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+//                break;
+//            }
+//            else {
+//                writeCount++;
+//                log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+//            }
         }while (writeCount<5);
 
         if (!write.IsSuccess) {

--
Gitblit v1.9.1