From 116ab17ceb0c77aef99fa10b8a88fc055bb839f0 Mon Sep 17 00:00:00 2001
From: Junjie <xjj@123>
Date: 星期一, 23 六月 2025 19:35:53 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensCrnThread.java |   29 +++++++++++++++++++++++++----
 1 files changed, 25 insertions(+), 4 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index dd5d15a..37ca98b 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -370,7 +370,7 @@
     /**
      * 鍐欏叆鏁版嵁
      */
-    private boolean write5(CrnCommand command) throws InterruptedException {
+    private synchronized boolean write5(CrnCommand command) throws InterruptedException {
         String methodName = Thread.currentThread().getStackTrace()[1].getMethodName();
 
         if (null == command) {
@@ -392,13 +392,14 @@
 //        array[9] = command.getSourceStaNo();
 //        array[10] = command.getDestinationStaNo();
         array[9] = command.getCommand();
-
+        OperateResult result18 = siemensNet.Write("DB100.18", (short)0);
+        Thread.sleep(100L);
         OperateResult result = siemensNet.Write("DB100.0", array);
 
         int i=0;
         do{
             //鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
-            Thread.sleep(300);
+            Thread.sleep(100);
             OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
             if (resultRead.IsSuccess) {
                 CrnCommand one = new CrnCommand();
@@ -419,11 +420,31 @@
                     log.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}]>>>>閲嶅啓[{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), i,JSON.toJSON(command),JSON.toJSON(one));
                     result = siemensNet.Write("DB100.0", array);
                 }else{
-                    i=5;
+                    break;
                 }
             }
         }while(i<5);
 
+        if (command.getAckFinish() == 0) {
+            short commandFinish = 1;
+            Thread.sleep(100L);
+            result = siemensNet.Write("DB100.18", commandFinish);
+            int signFinish = 1;
+            while (signFinish<5){
+                OperateResultExOne<byte[]> result10018 = siemensNet.Read("DB100.18", (short) 2);
+                short transInt16 = siemensNet.getByteTransform().TransInt16(result10018.Content, 0);
+                if (transInt16 != commandFinish){
+                    log.info("涓嬪彂DB100.18  鍥炶澶辫触" + "commandFinish:"+commandFinish);
+                    log.info("涓嬪彂DB100.18  鍥炶澶辫触" + "array:"+ JSON.toJSONString(array));
+                    result = siemensNet.Write("DB100.18", commandFinish);
+                    signFinish++;
+                }else {
+                    log.info("涓嬪彂DB100.18" + "commandFinish:"+commandFinish);
+                    log.info("涓嬪彂DB100.18" + "array:"+ JSON.toJSONString(array));
+                    break;
+                }
+            }
+        }
 
         try {
             // 鏃ュ織璁板綍

--
Gitblit v1.9.1