From 09f634c766e8daeeb687d48fd645f225afc3c082 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期五, 25 七月 2025 16:41:22 +0800
Subject: [PATCH] #优

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   47 +++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 41 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..c6498dd 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -387,6 +387,9 @@
             if(resultIn.IsSuccess){
                 for (int i = 0; i < staNosInSize; i++) {
                     Integer siteId = staNosIns.get(i);
+                    if(siteId == 202){
+                        StaProtocol staProtocol1 = station.get(siteId);
+                    }
                     StaProtocol staProtocol = station.get(siteId);
                     staProtocol.setStamp( siemensS7Net.getByteTransform().TransInt16(resultIn.Content, i*6));
                 }
@@ -518,20 +521,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