From 8980782bebfd40b2a56169e4fb53686882e87a97 Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期五, 26 十二月 2025 14:20:44 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |  136 +++++++++++++++++++++++---------------------
 1 files changed, 71 insertions(+), 65 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 194a78e..2dc0858 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -84,7 +84,7 @@
         add(2022);add(2024);
         add(2028);add(2030);
         add(2025);add(2027);
-        add(2031);add(2033);
+        add(2031);add(2032);add(2033);
         add(2034);add(2035);add(2037);
 //        add(2041);add(2042);add(2043);add(2044);
 //        add(2045);add(2046);add(2047);add(2048);
@@ -613,7 +613,9 @@
                     boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 4, 3);
                     boolean[] statusErr = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 8, 3);
                     boolean[] statusSign = siemensS7Net.getByteTransform().TransBool(resultErr.Content, offsetSign, 3);
+                    if(siteId == 2032){
 
+                    }
                     boolean loading = false;
                     if(!status1[0])
                     {
@@ -895,79 +897,83 @@
         Integer offset = siteOffsetMap.get(siteId);
         Integer offset2 = getOffsetBySiteId(siteId);
         Integer offset3 = getOffsetBySiteId2(siteId);
-        //浠诲姟涓嬪彂娆℃暟
         OperateResult write = null;
         OperateResult write1 = null;
+        //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
 
-            String workNoAddress = "";
-            String staNoAddress = "";
-
-            // 鏍规嵁绔欑偣鍒ゆ柇鍦板潃
-            if (siteId < 1029) {
-                workNoAddress = "DB100." + (offset + offset2);
-                staNoAddress = "DB100." + (offset + offset2 + 12);
-            } else if (siteId < 1042) {
-                workNoAddress = "DB101." + (offset + offset2);
-                staNoAddress = "DB101." + (offset + offset2 + 12);
-            } else if (siteId < 1054) {
-                workNoAddress = "DB104." + (offset + offset2);
-                staNoAddress = "DB104." + (offset + offset2 + (specialSites2.contains(siteId) ? 48 : 12));
-            } else if (siteId < 1080) {
-                workNoAddress = "DB103." + (offset + offset2);
-                staNoAddress = "DB103." + (offset + offset2 + (specialSites2.contains(siteId) ? 48 : 12));
-            } else if (siteId < 1111) {
-                workNoAddress = "DB102." + (offset + offset2);
-                staNoAddress = "DB102." + (offset + offset2 + (specialSites2.contains(siteId) ? 48 : 12));
-            } else if (siteId < 2031) {
-                workNoAddress = "DB200." + (offset + offset2);
-                staNoAddress = "DB200." + (offset + offset2 + (specialSites2.contains(siteId) ? 48 : 12));
-            } else if (siteId < 2121) {
-                workNoAddress = "DB201." + (offset + offset2);
-                staNoAddress = "DB201." + (offset + offset2 + (specialSites2.contains(siteId) ? 48 : 12));
-            } else if (siteId < 4000) {
-                Integer offsetBarcode = site2lBarcodeOffsetMap.get(siteId);
-                workNoAddress = "DB202." + offsetBarcode;
-                staNoAddress = "DB202." + offsetBarcode;  // For barcode site, only one address used
-            } else {
-                workNoAddress = "DB400." + (offset + offset2);
-                staNoAddress = "DB400." + (offset + offset2 + (specialSites2.contains(siteId) ? 48 : 12));
-            }
-
-            // 鎵ц鍐欏叆
-            write = siemensS7Net.Write(workNoAddress, staProtocol.getWorkNo()); // 鍐欏叆宸ヤ綔鍙�
-            Thread.sleep(200);
-            write1 = siemensS7Net.Write(staNoAddress, staProtocol.getStaNo().intValue()); // 鍐欏叆鐩爣绔�
-
-            // 璇诲彇骞堕獙璇�
-            if (write.IsSuccess && write1.IsSuccess) {
-                // 鍋囪浣跨敤 ReadInt() 鏂规硶璇诲彇 Int32 鏁版嵁
-                OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read(workNoAddress, (short) 4); // 璇诲彇宸ヤ綔鍙�
-                OperateResultExOne<byte[]> readResult2 = siemensS7Net.Read(staNoAddress,(short) 4); // 璇诲彇鐩爣绔�
-                if (readResult1.IsSuccess && readResult2.IsSuccess) {
-                    Integer writtenWorkNo = staProtocol.getWorkNo();
-                    Integer writtenStaNo = staProtocol.getStaNo().intValue();
-                    Integer workNo = siemensS7Net.getByteTransform().TransInt32(readResult1.Content, 0);
-                    Integer staNo = siemensS7Net.getByteTransform().TransInt32(readResult2.Content, 0);
-
-                    // 瀵规瘮璇诲彇鍒扮殑鏁版嵁涓庡啓鍏ョ殑鏁版嵁鏄惁涓�鑷�
-                    if (workNo == writtenWorkNo && staNo == writtenStaNo) {
-                        log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-                        break; // 鏁版嵁涓�鑷达紝璺冲嚭寰幆
-                    } else {
-                        writeCount++;
-                        log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触锛屾暟鎹笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-                    }
+            if(siteId < 1029){
+                write = siemensS7Net.Write("DB100." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                Thread.sleep(200);
+                write1 = siemensS7Net.Write("DB100." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+            }else if(siteId < 1042){
+                write = siemensS7Net.Write("DB101." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                Thread.sleep(200);
+                write1 = siemensS7Net.Write("DB101." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+            }else if(siteId < 1054){
+                write = siemensS7Net.Write("DB104." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                Thread.sleep(200);
+                if(specialSites2.contains(siteId)){
+                    write1 = siemensS7Net.Write("DB104." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }else{
+                    write1 = siemensS7Net.Write("DB104." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 鐩爣绔�
                 }
-            } else {
+            }else if(siteId < 1080){
+                write = siemensS7Net.Write("DB103." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                Thread.sleep(200);
+                if(specialSites2.contains(siteId)){
+                    write1 = siemensS7Net.Write("DB103." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }else{
+                    write1 = siemensS7Net.Write("DB103." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }
+            }else if(siteId < 1111){
+                write = siemensS7Net.Write("DB102." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                Thread.sleep(200);
+                if(specialSites2.contains(siteId)){
+                    write1 = siemensS7Net.Write("DB102." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }else{
+                    write1 = siemensS7Net.Write("DB102." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }
+            }else if(siteId < 2031){
+                write = siemensS7Net.Write("DB200." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                Thread.sleep(200);
+                if(specialSites2.contains(siteId)){
+                    write1 = siemensS7Net.Write("DB200." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }else{
+                    write1 = siemensS7Net.Write("DB200." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }
+            }else if(siteId < 2121){
+                write = siemensS7Net.Write("DB201." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                Thread.sleep(200);
+                if(specialSites2.contains(siteId)){
+                    write1 = siemensS7Net.Write("DB201." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }else{
+                    write1 = siemensS7Net.Write("DB201." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }
+            } else if(siteId < 4000){
+                Integer offsetBarcode = site2lBarcodeOffsetMap.get(siteId);
+                write = siemensS7Net.Write("DB202." + offsetBarcode, staProtocol.getBarcode());    // 鏉$爜
+                write1 = siemensS7Net.Write("DB202." + offsetBarcode, staProtocol.getBarcode());
+                Thread.sleep(200);
+            }else{
+                write = siemensS7Net.Write("DB400." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+                Thread.sleep(200);
+                if(specialSites2.contains(siteId)){
+                    write1 = siemensS7Net.Write("DB400." + (offset + offset2 + 48), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }else{
+                    write1 = siemensS7Net.Write("DB400." + (offset + offset2 + 12), staProtocol.getStaNo().intValue());    // 鐩爣绔�
+                }
+            }
+            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); // 閲嶈瘯鏈�澶�5娆�
-
-
+        }while (writeCount<5);
         try {
             // 鏃ュ織璁板綍
             BasDevpOptService bean = SpringUtils.getBean(BasDevpOptService.class);

--
Gitblit v1.9.1