From 5ab75e054876ff118f21701f409deb4470fc92f3 Mon Sep 17 00:00:00 2001
From: pjb <123456>
Date: 星期六, 02 八月 2025 12:54:02 +0800
Subject: [PATCH] 1

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

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 822dc46..d16acba 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -360,8 +360,8 @@
      * 璇诲彇鐘舵�� ====> 鏁村潡plc
      */
     private void readsanqi() throws InterruptedException {
-        ArrayList<Integer> staNos = getStaNo();
-        int staNoSize = staNos.size();
+        ArrayList<Integer> staNos = staNos3;
+        int staNoSize = staNos3.size();
 
         //
         OperateResultExOne<byte[]> resultsanqi = siemensS7Net.Read("DB101.120", (short) (staNoSize * 8));
@@ -397,17 +397,20 @@
 
 
         //澶栧舰妫�娴� 涓夋湡
-        OperateResultExOne<byte[]> resultErrsanqi = siemensS7Net.Read("DB101.160", (short) 8);
+        OperateResultExOne<byte[]> resultErrsanqi = siemensS7Net.Read("DB101.160", (short) (staNoSize * 8));
         if (resultErrsanqi.IsSuccess) {
-            boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrsanqi.Content, 0, 1);
-            StaProtocol staProtocol = station.get(304);
-            staProtocol.setFrontErr(status[0]);
-            staProtocol.setBackErr(status[1]);
-            staProtocol.setHighErr(status[2]);
-            staProtocol.setLeftErr(status[3]);
-            staProtocol.setRightErr(status[4]);
-            staProtocol.setWeightErr(status[5]);
-            staProtocol.setBarcodeErr(status[6]);
+            for (int i = 0; i < staNoSize; i++) {
+                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrsanqi.Content, i * 4, 1);
+                StaProtocol staProtocol = station.get(siteId);
+                staProtocol.setFrontErr(status[0]);
+                staProtocol.setBackErr(status[1]);
+                staProtocol.setHighErr(status[2]);
+                staProtocol.setLeftErr(status[3]);
+                staProtocol.setRightErr(status[4]);
+                staProtocol.setWeightErr(status[5]);
+                staProtocol.setBarcodeErr(status[6]);
+            }
         }
 
 
@@ -476,9 +479,10 @@
         OperateResult write = null;
         OperateResult write1 = null;
         int index;
+        int index2 = 0;
         if (staProtocol.getSiteId() >= 310) {
             index = staNos3.indexOf(staProtocol.getSiteId());
-            index = index + 54;
+            index2 = 66;
         } else {
             index = staNos.indexOf(staProtocol.getSiteId());
         }
@@ -507,10 +511,10 @@
             boolean writeFlag = false;
             while (writeCount < 5) {
                 // 鍐�2鍙疯緭閫佺嚎
-                write = siemensS7Net.Write("DB100." + index * 4, array);    // 宸ヤ綔鍙枫�佺洰鏍�
+                write = siemensS7Net.Write("DB100." + (index * 4 + index2), array);    // 宸ヤ綔鍙枫�佺洰鏍�
                 if (write.IsSuccess) {
                     Thread.sleep(200);
-                    OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 4);
+                    OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + (index * 4 + index2), (short) 4);
                     //OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4);
                     if (readResult.IsSuccess) {
                         short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
@@ -573,14 +577,14 @@
             boolean writeFlag = false;
             while (writeCount < 5) {
                 // 鍐�2鍙疯緭閫佺嚎
-                write = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo().intValue());    // 宸ヤ綔鍙�
+                write = siemensS7Net.Write("DB100." + (index * 6 + index2), staProtocol.getWorkNo().intValue());    // 宸ヤ綔鍙�
                 Thread.sleep(200);
-                write1 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo());    // 鐩爣绔�
+                write1 = siemensS7Net.Write("DB100." + (index * 6 + 4 + index2), staProtocol.getStaNo());    // 鐩爣绔�
                 if (write.IsSuccess) {
                     Thread.sleep(200);
-                    OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 4);
+                    OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + (index * 6 + index2), (short) 4);
                     Thread.sleep(200);
-                    OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4), (short) 2);
+                    OperateResultExOne<byte[]> readResult1 = siemensS7Net.Read("DB100." + (index * 6 + 4 + index2), (short) 2);
                     //OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB1000." + index*4, (short)4);
                     if (readResult.IsSuccess && readResult1.IsSuccess) {
                         int workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);

--
Gitblit v1.9.1