From b0a96a43d99eb5baf708c4fa0d0482696d7b0823 Mon Sep 17 00:00:00 2001
From: Administrator <zc857179121@qq.com>
Date: 星期一, 13 四月 2026 19:55:26 +0800
Subject: [PATCH] 1

---
 zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java |   41 +++++++++++++++++++++++++----------------
 1 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
index 1db417c..563287d 100644
--- a/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
+++ b/zy-asc-conveyor/src/main/java/com/zy/acs/conveyor/core/service/Snap7Service.java
@@ -63,36 +63,45 @@
         }
         SafeSignal safeSignal = staProtocol.getSafeSignal();
 
-        int baseOffset = SafeSignalField.SAFE_SIGNAL_FROM_CONVEYOR.getOffset() + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_FROM_CONVEYOR.getByteLength();
-        String workNoAddr = TaskField.TASK_NUMBER.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
-                + (baseOffset + TaskField.TASK_NUMBER.getOffset());
-        String destStaAddr = TaskField.DEST_STATION.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
-                + (baseOffset + TaskField.DEST_STATION.getOffset());
+        int baseOffset =  0;
+        short[] array = new short[6];
+        array[0] = (short) 1;
+        array[1] = (short) 0;
+        array[2] = (short) 0;
+        array[5] = (short) 0;
+        if (safeSignal.getFlag()){
+            array[3] = (short) 0;
+            array[4] =safeSignal.getValue();
+             baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
+        }else {
+            array[3] = safeSignal.getValue();
+            array[4] = (short) 0;
+            baseOffset = SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getOffset() +2 + safeSignal.getIndex() * SafeSignalField.SAFE_SIGNAL_TO_CONVEYOR.getByteLength();
+        }
+        String flagAddr = TaskField.TASK_NUMBER.getAddressPattern() + PlcConstant.ADDRESS_CONCATENATION
+                + baseOffset;
 
         // 浠诲姟涓嬪彂閲嶈瘯鏈哄埗
         int writeCount = 0;
         boolean success = false;
 
         while (writeCount < WRITE_RETRY_MAX) {
-            OperateResult writeResult = siemensS7Net.Write(workNoAddr, staProtocol.getWorkNo());
-            Thread.sleep(WRITE_RETRY_INTERVAL_MS);
+            OperateResult writeResult = siemensS7Net.Write(flagAddr, array);
 
-            OperateResult writeResult1 = siemensS7Net.Write(destStaAddr, staProtocol.getStaNo().shortValue());
-
-            if (writeResult.IsSuccess && writeResult1.IsSuccess) {
-                log.info("鍐欏叆杈撻�佺嚎鍛戒护鎴愬姛 [id:{}] [siteId:{}] [workNo:{}] [destSta:{}] [retry:{}]",
+            if (writeResult.IsSuccess) {
+                log.info("鍐欏叆瀹夊叏淇″彿杈撻�佺嚎鍛戒护鎴愬姛 [id:{}] [siteId:{}] [workNo:{}] [destSta:{}] [retry:{}]",
                         staProtocol.getPlcId(), staProtocol.getSiteId(), staProtocol.getWorkNo(),
                         staProtocol.getStaNo(), writeCount);
-                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ畨鍏ㄤ俊鍙疯緭閫佺嚎鍛戒护鎴愬姛銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
                         staProtocol.getPlcId(), JSON.toJSON(staProtocol)));
                 success = true;
                 break;
             }
 
             writeCount++;
-            log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触 [id:{}] [siteId:{}] [retry:{}] [workErr:{}] [destErr:{}]",
+            log.error("鍐欏叆瀹夊叏淇″彿杈撻�佺嚎鍛戒护澶辫触 [id:{}] [siteId:{}] [retry:{}] [workErr:{}] ",
                     staProtocol.getPlcId(), staProtocol.getSiteId(), writeCount,
-                    writeResult.Message, writeResult1.Message);
+                    writeResult.Message);
 
             if (writeCount < WRITE_RETRY_MAX) {
                 Thread.sleep(WRITE_RETRY_INTERVAL_MS);
@@ -100,10 +109,10 @@
         }
 
         if (!success) {
-            String errorMsg = MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
+            String errorMsg = MessageFormat.format("銆恵0}銆戝啓鍏ュ畨鍏ㄤ俊鍙疯緭閫佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2}",
                     staProtocol.getPlcId(), JSON.toJSON(staProtocol));
             OutputQueue.DEVP.offer(errorMsg);
-            News.error("SiemensDevp - 4 - 鍐欏叆杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}",
+            News.error("SiemensDevp - 4 - 鍐欏叆瀹夊叏淇″彿杈撻�佺嚎绔欑偣鏁版嵁澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}",
                     staProtocol.getPlcId(), JSON.toJSON(staProtocol));
             log.error(errorMsg);
         }

--
Gitblit v1.9.1