From 70cbbaabbde30cb8d2ea3ded4b481d7eb87c4b11 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期四, 25 九月 2025 17:54:59 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   96 ++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 73 insertions(+), 23 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index e2581cb..c0416de 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -60,11 +60,11 @@
         add(1032);add(1033);add(1035);
         add(1036);add(1037);add(1038);
         add(1039);add(1041);
-//        add(1042);add(1043);add(1044);add(1045);add(1046);add(1047);add(1048);add(1050);add(1051);add(1052);add(1053);add(1054);add(1055);add(1056);add(1057);
-//        add(1058);add(1059);add(1060);add(1061);add(1062);add(1063);add(1064);add(1065);add(1066);add(1067);add(1068);add(1069);add(1070);add(1071);add(1072);
-//        add(1073);add(1074);add(1075);add(1076);add(1077);add(1078);add(1079);add(1080);add(1081);add(1082);add(1083);add(1084);add(1085);add(1086);add(1087);
-//        add(1088);add(1089);add(1090);add(1091);add(1092);add(1093);add(1094);add(1095);add(1096);add(1097);add(1098);add(1099);add(1100);add(1101);add(1102);
-//        add(1103);add(1104);add(1105);add(1106);add(1107);add(1108);add(1109);
+        add(1042);add(1043);add(1044);add(1045);add(1046);add(1047);add(1048);add(1050);add(1051);add(1052);add(1053);add(1054);add(1055);add(1056);add(1057);
+        add(1058);add(1059);add(1060);add(1061);add(1062);add(1063);add(1064);add(1065);add(1066);add(1067);add(1068);add(1069);add(1070);add(1071);add(1072);
+        add(1073);add(1074);add(1075);add(1076);add(1077);add(1078);add(1079);add(1080);add(1081);add(1082);add(1083);add(1084);add(1085);add(1086);add(1087);
+        add(1088);add(1089);add(1090);add(1091);add(1092);add(1093);add(1094);add(1095);add(1096);add(1097);add(1098);add(1099);add(1100);add(1101);add(1102);
+        add(1103);add(1104);add(1105);add(1106);add(1107);add(1108);add(1109);add(1110);
     }};
 
     public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
@@ -94,12 +94,29 @@
         put(1022, 2076);put(1023, 2192);put(1024, 2284);put(1025, 2376);put(1026, 2492);put(1027, 2584);put(1028, 2676);
         put(1029, 0);put(1030, 116);put(1031, 208);put(1032, 300);put(1033, 416);put(1034, 508);put(1035, 600);
         put(1036, 692);put(1037, 784);put(1038, 876);put(1039, 968);put(1040, 1084);put(1041, 1176);
+        put(1042, 0);put(1043, 92);put(1044, 184);put(1045, 276);put(1046, 368);put(1047, 460);
+        put(1048, 552);put(1049, 644);put(1050, 736);put(1051, 828);put(1052, 992);put(1053, 1084);
+        put(1054, 0);put(1055, 92);put(1056, 256);put(1057, 348);put(1058, 512);put(1059, 604);put(1060, 600);
+        put(1061, 788);put(1062, 880);put(1063, 972);put(1064, 1064);put(1065, 1156);put(1066, 1320);put(1067, 1412);
+        put(1068, 1576);put(1069, 1668);put(1070, 1832);put(1071, 1924);put(1072, 2016);put(1073, 2108);put(1074, 2200);
+        put(1075, 2292);put(1076, 2384);put(1077, 2476);put(1078, 2640);put(1079, 2732);
+        put(1080, 0);put(1081, 92);put(1082, 256);put(1083, 348);put(1084, 512);put(1085, 604);put(1086, 696);
+        put(1087, 860);put(1088, 952);put(1089, 1044);put(1090, 1208);put(1091, 1300);put(1092, 1392);put(1093, 1556);
+        put(1094, 1648);put(1095, 1740);put(1096, 1904);put(1097, 1996);put(1098, 2160);put(1099, 2252);put(1100, 2344);
+        put(1101, 2508);put(1102, 2600);put(1103, 2692);put(1104, 2784);put(1105, 2876);
+        put(1106, 2968);put(1107, 3060);put(1108, 3152);put(1109, 3244);put(1110, 3336);
+
+
         // 鍏朵粬绔欑偣鍚岀悊缁х画鍔�
     }};
 
     // 鐗规畩绔欑偣闆嗗悎
     private static final Set<Integer> specialSites = new HashSet<>(
             Arrays.asList(1001,1005,1008,1011,1015,1019,1022,1025,1029, 1032,1039));
+
+    // 鐗规畩绔欑偣闆嗗悎
+    private static final Set<Integer> specialSites2 = new HashSet<>(
+            Arrays.asList(1051,1055,1057,1065,1067,1069,1077,1081,1083,1086,1089,1092,1095,1097,1100));
 
 
     public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
@@ -261,8 +278,13 @@
         ArrayList<Integer> staNos = getStaNo();
         int staNoSize = staNos.size();
         OperateResultExOne<byte[]> result = null;
-        OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (2764));
-        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0", (short) (1264));
+        OperateResultExOne<byte[]> result1 = siemensS7Net.Read("DB100.0", (short) (2764));//1001-1028
+        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.0", (short) (1264));//1029-1037
+        OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB104.0", (short) (1264));//1042-1053
+        OperateResultExOne<byte[]> result4 = siemensS7Net.Read("DB103.0", (short) (2820));//1054-1079
+        OperateResultExOne<byte[]> result5 = siemensS7Net.Read("DB102.0", (short) (3424));//1080-1110
+
+
 
         if (result1.IsSuccess && result2.IsSuccess) {
             for (int i = 0; i < staNoSize; i++) {
@@ -275,8 +297,14 @@
                 }
                 if(siteId < 1029){
                     result = result1;
-                }else{
+                }else if(siteId < 1042){
                     result = result2;
+                }else if(siteId < 1054){
+                    result = result3;
+                }else if(siteId < 1080){
+                    result = result4;
+                }else if(siteId < 1111){
+                    result = result5;
                 }
                 // 鑾峰彇璇ョ珯鐐瑰搴旂殑鍋忕Щ閲�
                 Integer offset = siteOffsetMap.get(siteId);
@@ -286,21 +314,19 @@
                 Integer offset2 = getOffsetBySiteId(siteId);
                 Integer offset3 = getOffsetBySiteId2(siteId);
                 staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(result.Content, offset + offset2));     // 宸ヤ綔鍙�
-
                 staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, offset + offset2 + 12));   // 鐩爣绔�
+                if(specialSites2.contains(siteId)){
+                    staProtocol.setStaNo(siemensS7Net.getByteTransform().TransInt16(result.Content, offset + offset2 + 48));   // 鐩爣绔�
+                }
 
                 boolean[] status = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3, 2);
                 staProtocol.setAutoing(!status[0]);  // 鑷姩
                 boolean[] status1 = siemensS7Net.getByteTransform().TransBool(result.Content, offset + offset3 - 4, 3);
 
                 staProtocol.setLoading(!status1[0]);  // 鏈夌墿
-                if(staProtocol.isLoading()){
-                    staProtocol.setInEnable(false); // 鍙叆
-                    staProtocol.setOutEnable(false);// 鍙嚭
-                }else{
-                    staProtocol.setInEnable(true); // 鍙叆
-                    staProtocol.setOutEnable(true);// 鍙嚭
-                }
+
+                staProtocol.setInEnable(true); // 鍙叆
+                staProtocol.setOutEnable(true);// 鍙嚭
 //                staProtocol.setInEnable(status1[1]); // 鍙叆
 //                staProtocol.setOutEnable(status1[3]);// 鍙嚭
 //                staProtocol.setEmptyMk(status[4]);  // 绌烘澘淇″彿
@@ -525,15 +551,39 @@
         //浠诲姟涓嬪彂娆℃暟
         int writeCount = 0;
         do {
-            if(siteId > 1028){
-                write = siemensS7Net.Write("DB101." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
-                Thread.sleep(200);
-                write1 = siemensS7Net.Write("DB101." + (offset + offset2 + 12), staProtocol.getStaNo());    // 鐩爣绔�
-            }else{
+
+            if(siteId < 1029){
                 write = siemensS7Net.Write("DB100." + (offset + offset2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
                 Thread.sleep(200);
-                write1 = siemensS7Net.Write("DB100." + (offset + offset2 + 12), staProtocol.getStaNo());    // 鐩爣绔�
-            }
+                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 if(siteId < 1080){
+                write = siemensS7Net.Write("DB104." + (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("DB104." + (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());    // 鐩爣绔�
+                }            }
             if(write.IsSuccess && write1.IsSuccess){
                 log.error("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                 break;

--
Gitblit v1.9.1