From 2c9f8abab223d5aa163cae1d733f5ad7957a7b77 Mon Sep 17 00:00:00 2001
From: Administrator <zc857179121@qq.com>
Date: 星期日, 12 四月 2026 18:04:36 +0800
Subject: [PATCH] 1

---
 zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java |   26 +++++++++++++++++++-------
 1 files changed, 19 insertions(+), 7 deletions(-)

diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
index 4df073c..301ae9e 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/thread/SiemensDevpThread.java
@@ -109,7 +109,7 @@
 
         byte[] content = result.Content;
         for (int i = 0; i < staNoSize; i++) {
-            StaProtocol staProtocol = station.get(staNos.get(staNoSize));
+            StaProtocol staProtocol = station.get(staNos.get(i));
             parseStationStatus(content, i, staProtocol);
         }
 
@@ -134,7 +134,7 @@
      */
     private void parseStationStatus(byte[] content, int index, StaProtocol staProtocol) {
         int offset = index * StationStatusField.ALL.getByteLength();
-        staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(content, offset));
+        staProtocol.setWorkNo(siemensS7Net.getByteTransform().TransInt32(content, offset + StationStatusField.TASK_NUMBER.getOffset()));
         staProtocol.setStaNo((int) siemensS7Net.getByteTransform().TransInt16(
                 content, offset + StationStatusField.FINAL_TARGET.getOffset()));
 
@@ -181,6 +181,7 @@
             if (!Cools.isEmpty(barcode)) {
                 StaProtocol staProtocol = station.get(barcodeArr.get(i));
                 if (staProtocol == null) {
+                    log.warn("绔欑偣涓嶅瓨鍦� [id:{}] [staNo:{}]", slave.getId(), barcodeArr.get(i));
                     continue;
                 }
                 staProtocol.setBarcode(barcode);
@@ -209,10 +210,11 @@
         for (int i = 0; i < weightArr.size(); i++) {
             StaProtocol staProtocol = station.get(weightArr.get(i));
             if (staProtocol == null) {
+                log.warn("绔欑偣涓嶅瓨鍦� [id:{}] [staNo:{}]", slave.getId(), weightArr.get(i));
                 continue;
             }
-            double weight = siemensS7Net.getByteTransform().TransSingle(result.Content, i * 4);
-            staProtocol.setWeight(BigDecimal.valueOf(weight).setScale(2, RoundingMode.HALF_UP).doubleValue());
+            double weight = siemensS7Net.getByteTransform().TransSingle(result.Content, i * DeviceField.WEIGHT.getByteLength());
+            staProtocol.setWeight(BigDecimal.valueOf(weight).setScale(4, RoundingMode.HALF_UP).doubleValue());
         }
     }
 
@@ -238,10 +240,19 @@
         for (int i = 0; i < staNosError.size(); i++) {
             Integer siteId = staNosError.get(i);
             StaProtocol staProtocol = station.get(siteId);
-
+            if (staProtocol == null){
+                log.warn("绔欑偣涓嶅瓨鍦� [id:{}] [staNo:{}]", slave.getId(), staNosError.get(i));
+                continue;
+            }
+            short i1 = siemensS7Net.getByteTransform().TransInt16(
+                    content, 0);
             boolean[] status = siemensS7Net.getByteTransform().TransBool(
-                    content, i * DeviceField.DIMENSION_WORD.getByteLength(),
-                    DeviceField.DIMENSION_WORD.getByteLength());
+                    content, 2+i * DeviceField.DIMENSION_WORD.getByteLength(),
+                    1);
+
+            boolean[] status1 = siemensS7Net.getByteTransform().TransBool(
+                    content, 2+i * DeviceField.DIMENSION_WORD.getByteLength()+1,
+                    1);
 
             staProtocol.setFrontErr(status[0]);
             staProtocol.setBackErr(status[1]);
@@ -271,6 +282,7 @@
             Integer siteId = staNos.get(i);
             StaProtocol staProtocol = station.get(siteId);
             if (staProtocol == null) {
+                log.warn("绔欑偣涓嶅瓨鍦� [id:{}] [staNo:{}]", slave.getId(), siteId);
                 continue;
             }
 

--
Gitblit v1.9.1