From de480b42a379d1cf23e1703977c0169e837fa786 Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期三, 10 十二月 2025 13:17:50 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/RgvThread.java |  156 +++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 124 insertions(+), 32 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 6be9330..f87315d 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -52,7 +52,7 @@
     //# 杞ㄩ亾鍩哄噯鐐�
     private Long trackBenchmark = 1L;
     //  # 閬胯璺濈
-    private Long avoidDistance = 14000L;
+    private Long avoidDistance = 11200L;
     private String errorRgv = "-";
 
     /**
@@ -134,7 +134,7 @@
                     initRgv();
                     continue;
                 }
-                Thread.sleep(20);
+                Thread.sleep(100L);
 //                System.out.println("璇荤嚎绋�,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis());
 
                 readStatus();
@@ -169,11 +169,11 @@
                     }
                     continue;
                 }
-//                if (delRgvTask){
-//                    writeDelRgvTask();
-//                    delRgvTask = false;
-//                    continue;
-//                }
+                if (delRgvTask){
+                    writeDelRgvTask();
+                    delRgvTask = false;
+                    continue;
+                }
                 Thread.sleep(50L);
 
                 // 鏋勫缓璁惧鐘舵�佸璞�
@@ -182,10 +182,37 @@
                     rgvProtocol = new RgvProtocol();
                 }
                 if (rgvProtocol.getStatusType().equals(RgvStatusType.WAITING) || rgvProtocol.getStatusType().equals(RgvStatusType.FETCHWAITING)){
-                    OperateResult result2 = siemensNet.Write("DB100.2",(int) 0);
-                    OperateResult result = siemensNet.Write("DB100.14", (int) 0);
-                    OperateResult result1 = siemensNet.Write("DB100.6", (short) 0);
-                    OperateResult result4 = siemensNet.Write("DB100.0", (short) 1);
+                    boolean sign = true;
+                    int i = 1;
+                    while (sign && i<5){
+                        i++;
+                        sign = false;
+                        OperateResult result2 = siemensNet.Write("DB100.2",(int) 0);
+                        OperateResult result14 = siemensNet.Write("DB100.14", (int) 0);
+                        OperateResult result6 = siemensNet.Write("DB100.6", (short) 0);
+                        OperateResult result8 = siemensNet.Write("DB100.8", (short) 0);
+                        OperateResult result10 = siemensNet.Write("DB100.10", (short) 0);
+                        OperateResult result12 = siemensNet.Write("DB100.12", (short) 0);
+                        Thread.sleep(10L);
+
+                        OperateResultExOne<byte[]> resultRead0 = siemensNet.Read("DB100.0", (short) 20);
+                        Integer i2 = siemensNet.getByteTransform().TransInt32(resultRead0.Content, 2);
+                        short i6 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 6);
+                        short i8 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 8);
+                        short i10 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 10);
+                        Integer i14 = siemensNet.getByteTransform().TransInt32(resultRead0.Content, 14);
+                        if (i2!=0 || i6 != (short) 0
+                                || i8!=(short)0 || i10 != (short) 0
+                                || i14!=0){
+                            sign = true;
+                        }
+                    }
+
+                    OperateResult result0 = siemensNet.Write("DB100.0", (short) 1);
+
+                    Thread.sleep(20L);
+
+                    OperateResult result00 = siemensNet.Write("DB100.0", (short) 0);
                 }
             } catch (Exception e) {
                 log.error("RGV鏁版嵁浠诲姟涓嬪彂澶嶄綅绾跨▼寮傚父锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
@@ -218,7 +245,7 @@
                     continue;
                 }
                 // 浼戠湢 1 绉�
-                Thread.sleep(100);
+                Thread.sleep(200L);
 
                 if (!deviceDetection()) {
                     continue;
@@ -286,6 +313,8 @@
                     }
                     continue;
                 }
+
+                Thread.sleep(50L);
 
                 RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
                 RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
@@ -1154,10 +1183,13 @@
             }
             return false;
         }
+
+
+        this.wrkSign = 1;
 //        convertRow(command);
 //        taskProtocol.setRgvNo(slave.getId());
 //        Long[] array = new Long[11];
-        OperateResult result41 = siemensNet.Write("DB100.0", (short) 0);
+        OperateResult result0 = siemensNet.Write("DB100.0", (short) 0);
 //        array[0] = taskProtocol.getAckFinish1();
 //        array[1] = taskProtocol.getTaskNo();
 //        array[2] = taskProtocol.getTaskMode();
@@ -1166,18 +1198,52 @@
         int taskStatus = taskProtocol.getTaskStatus$();
         int targetPositionStaNo = taskProtocol.getTargetPositionStaNo();
         int targetPositionStaNoEnd = taskProtocol.getTargetPositionStaNoEnd();
-
-        OperateResult result2 = siemensNet.Write("DB100.2", taskProtocol.getTaskNo().intValue());
-        OperateResult result1 = siemensNet.Write("DB100.6", (short) taskStatus);
-        OperateResult result11 = siemensNet.Write("DB100.8", (short) targetPositionStaNo);
-        OperateResult result12 = siemensNet.Write("DB100.10", (short) targetPositionStaNo);
-        OperateResult result = siemensNet.Write("DB100.14", taskProtocol.getTargetPosition().intValue());
-        OperateResult result13 = siemensNet.Write("DB100.18", (short) targetPositionStaNoEnd);
+        boolean sign = true;
+        int i = 1;
+        while (sign && i<5){
+            i++;
+            sign = false;
+            OperateResult result2 = siemensNet.Write("DB100.2", taskProtocol.getTaskNo().intValue());
+            OperateResult result6 = siemensNet.Write("DB100.6", (short) taskStatus);
+            OperateResult result8 = siemensNet.Write("DB100.8", (short) targetPositionStaNo);
+            OperateResult result10 = siemensNet.Write("DB100.10", (short) targetPositionStaNo);
+            OperateResult result14 = siemensNet.Write("DB100.14", taskProtocol.getTargetPosition().intValue());
+            OperateResult result18 = siemensNet.Write("DB100.18", (short) targetPositionStaNoEnd);
 //        OperateResult result3 = siemensNet.Write("DB100.10", taskProtocol.isDirection()? (short) 1 :  (short) 2); // 鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級    true:宸�   false:鍙�
-        Thread.sleep(10L);
+            Thread.sleep(10L);
 
-        OperateResult result4 = siemensNet.Write("DB100.12", (short) 1);
-        this.wrkSign = 1;
+            OperateResultExOne<byte[]> resultRead0 = siemensNet.Read("DB100.0", (short) 20);
+            short i0 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 0);
+            Integer i2 = siemensNet.getByteTransform().TransInt32(resultRead0.Content, 2);
+            short i6 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 6);
+            short i8 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 8);
+            short i10 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 10);
+            Integer i14 = siemensNet.getByteTransform().TransInt32(resultRead0.Content, 14);
+            short i18 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 18);
+            if (i0 !=(short) 0 || i2!=taskProtocol.getTaskNo().intValue() || i6 != (short) taskStatus
+                    || i8!=(short)targetPositionStaNo || i10 != (short) targetPositionStaNo
+                    || i14!=taskProtocol.getTargetPosition().intValue() || i18 != (short) targetPositionStaNoEnd){
+                sign = true;
+            }
+        }
+        sign = true;
+        OperateResult result12 = siemensNet.Write("DB100.12", (short) 1);
+//
+        i = 1;
+        sign = true;
+        while (sign && i<5){
+            i++;
+            sign = false;
+//        OperateResult result3 = siemensNet.Write("DB100.10", taskProtocol.isDirection()? (short) 1 :  (short) 2); // 鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級    true:宸�   false:鍙�
+            Thread.sleep(10L);
+
+            OperateResultExOne<byte[]> resultRead0 = siemensNet.Read("DB100.0", (short) 20);
+            short i12 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 12);
+            if (i12 != (short) 1 ){
+                sign = true;
+            }
+            result12 = siemensNet.Write("DB100.12", (short) 1);
+        }
 
 //        log.info("浠诲姟涓嬪彂绾跨▼,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis());
 
@@ -1199,7 +1265,7 @@
                     null,
                     null,
                     null,
-                    result.IsSuccess ? 1 : 0,
+                    result12.IsSuccess ? 1 : 0,
                     null,
                     new Date(),
                     null
@@ -1209,7 +1275,7 @@
         }
 
         readStatus();
-        if (result != null && result.IsSuccess) {
+        if (result12 != null && result0.IsSuccess) {
 //            Thread.sleep(50);
 //            this.readStatus();
             log.info("RGV 鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(taskProtocol));
@@ -1232,11 +1298,37 @@
 
     private boolean writeDelRgvTask() throws InterruptedException {
 //
-        OperateResult result = siemensNet.Write("DB100.12.0", false);
-        OperateResult result0 = siemensNet.Write("DB100.0", (int) 0);
-        OperateResult result1 = siemensNet.Write("DB100.4", (short) 0);
-        OperateResult result2 = siemensNet.Write("DB100.6", (int) 0);
-        OperateResult result3 = siemensNet.Write("DB100.10", (short) 0); // 鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級    true:宸�   false:鍙�
+        int i = 1;
+        boolean sign = true;
+        while (sign && i<5){
+            i++;
+            sign = false;
+            OperateResult result0 = siemensNet.Write("DB100.0", (short) 0);
+            OperateResult result2 = siemensNet.Write("DB100.2", 0);
+            OperateResult result6 = siemensNet.Write("DB100.6", (short) 0);
+            OperateResult result8 = siemensNet.Write("DB100.8", (short) 0);
+            OperateResult result10 = siemensNet.Write("DB100.10", (short) 0);
+            OperateResult result12 = siemensNet.Write("DB100.12",(short)0);
+            OperateResult result14 = siemensNet.Write("DB100.14",0);
+            OperateResult result18 = siemensNet.Write("DB100.18", (short) 0);
+//        OperateResult result3 = siemensNet.Write("DB100.10", taskProtocol.isDirection()? (short) 1 :  (short) 2); // 鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級    true:宸�   false:鍙�
+            Thread.sleep(10L);
+
+            OperateResultExOne<byte[]> resultRead0 = siemensNet.Read("DB100.0", (short) 20);
+            short i0 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 0);
+            Integer i2 = siemensNet.getByteTransform().TransInt32(resultRead0.Content, 2);
+            short i6 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 6);
+            short i8 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 8);
+            short i10 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 10);
+            short i12 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 12);
+            Integer i14 = siemensNet.getByteTransform().TransInt32(resultRead0.Content, 14);
+            short i18 = siemensNet.getByteTransform().TransInt16(resultRead0.Content, 18);
+            if (i0 !=(short) 0 || i2!=0 || i6 != (short) 0
+                    || i8!=(short)0 || i10 != (short) 0 || i12 != (short) 0
+                    || i14!=0 || i18 != (short) 0){
+                sign = true;
+            }
+        }
         log.info("浠诲姟瀹屾垚涓嬪彂绾跨▼,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis());
 
         try {
@@ -1251,7 +1343,7 @@
                     null,
                     null,
                     null,
-                    result.IsSuccess ? 1 : 0,
+                    sign ? 1 : 0,
                     null,
                     new Date(),
                     null
@@ -1260,7 +1352,7 @@
         } catch (Exception ignore) {
         }
 
-        if (result != null && result.IsSuccess) {
+        if (sign) {
 //            Thread.sleep(200);
 //            this.readStatus();
             log.info("RGV 鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON("null"));

--
Gitblit v1.9.1