From e98d4b1133ed058bfe1e6af75be9975aebfc32d8 Mon Sep 17 00:00:00 2001
From: zyh <zyh@123>
Date: 星期六, 28 三月 2026 16:00:35 +0800
Subject: [PATCH] 最后可运行版本

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 52 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 79e3fa9..602624a 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -13,6 +13,7 @@
 import com.zy.asrs.entity.DeviceDataLog;
 import com.zy.asrs.service.BasDevpService;
 import com.zy.asrs.service.DeviceDataLogService;
+import com.zy.asrs.service.impl.RcsServiceImpl;
 import com.zy.common.utils.News;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
@@ -25,6 +26,7 @@
 import com.zy.core.model.protocol.StaProtocol;
 import lombok.Data;
 import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
 
 import java.text.MessageFormat;
 import java.util.*;
@@ -131,6 +133,9 @@
                     case 2:
                         write((StaProtocol)task.getData());
                         break;
+                    case 3:
+                        write1((StaProtocol)task.getData());
+                        break;
                     default:
                         break;
                 }
@@ -233,20 +238,40 @@
             }
         }
 
-        //澶栧舰妫�娴�
+        //澶栧舰妫�娴� - 甯﹂槻鎶栧鐞�
         Integer[] arr={401,402};
-        OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.700.0", (short) (arr.length*6));
+        OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.702.0", (short) (arr.length*6));
+
         for (int i = 0; i < arr.length; i++) {
             StaProtocol staProtocol1 = station.get(arr[i]);
-            if(resultErr1.IsSuccess){
+            if(resultErr1.IsSuccess && staProtocol1 != null){
                 boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i*6, 1);
+
+                // 銆愭柊澧炪�戜繚瀛樻棫鐨勮秴楂樼姸鎬�
+                boolean oldHighError = staProtocol1.isHighError();
+
+                // 鏇存柊鎵�鏈夌姸鎬�
                 staProtocol1.setFrontError(status1[0]);
                 staProtocol1.setBackError(status1[1]);
-                staProtocol1.setHighError(status1[2]);
+                staProtocol1.setHighError(status1[2]);  // 瓒呴珮鐘舵��
                 staProtocol1.setLeftError(status1[3]);
                 staProtocol1.setRightError(status1[4]);
                 staProtocol1.setWeightError(status1[5]);
                 staProtocol1.setBarcodeError(status1[6]);
+
+                // 銆愭柊澧炪�戣秴楂樼姸鎬佸彉鍖栧鐞� - 鍙湁鍙樺寲鏃舵墠璋冪敤
+                if (oldHighError != status1[2]) {
+                    try {
+                        RcsServiceImpl rcsService = SpringUtils.getBean(RcsServiceImpl.class);
+                        if (rcsService != null) {
+                            rcsService.agvPause(staProtocol1);
+                            log.info("瓒呴珮鐘舵�佸彉鍖� - 绔欑偣: {}, 鐘舵��: {} -> {}, 宸茶皟鐢ˋGV鎺у埗",
+                                    arr[i], oldHighError, status1[2]);
+                        }
+                    } catch (Exception e) {
+                        log.error("璋冪敤agvPause澶辫触 - 绔欑偣: {}, 閿欒: {}", arr[i], e.getMessage());
+                    }
+                }
             }
         }
 
@@ -340,6 +365,29 @@
         }
     }
 
+    /**
+     * 鎵爜鍣ㄨЕ鍙�
+     */
+    private void write1(StaProtocol staProtocol) throws InterruptedException {
+        if (null == staProtocol) {
+            return;
+        }
+
+        int index = 0;
+        if(staProtocol.getSiteId() == 402){
+            index = 1;
+        }
+        OperateResult writeResult1 = siemensS7Net.Write("DB100.500." + index,  true);    // 鎵爜鍣ㄨЕ鍙�
+        if (!writeResult1.IsSuccess) {
+
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}", slave.getId(), JSON.toJSON(staProtocol)));
+            log.error("鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+        } else {
+            OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆� 杈撻�佺嚎鍛戒护涓嬪彂 [id:{1}] >>>>> {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(staProtocol)));
+            log.info("杈撻�佺嚎鍛戒护涓嬪彂 [id:{}] >>>>> 鍛戒护涓嬪彂锛� {}",  slave.getId(), JSON.toJSON(staProtocol));
+        }
+    }
+
     // 鏇存柊鍏ュ嚭搴撴ā寮�
     private void updateIoMode() throws InterruptedException {
         if (this.ioModeOf2F != IoModeType.NONE) {

--
Gitblit v1.9.1