From 22a623b08a221984b8eb960af9a83484418a26b9 Mon Sep 17 00:00:00 2001
From: L <L@132>
Date: 星期四, 05 三月 2026 15:42:55 +0800
Subject: [PATCH] *

---
 src/main/java/com/zy/core/thread/RgvThread.java |  114 ++++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 93 insertions(+), 21 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 6ea0bca..0eb2902 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -174,7 +174,7 @@
                     delRgvTask = false;
                     continue;
                 }
-                Thread.sleep(200L);
+                Thread.sleep(50L);
 
                 // 鏋勫缓璁惧鐘舵�佸璞�
                 RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
@@ -209,6 +209,10 @@
                     }
 
                     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());
@@ -286,8 +290,14 @@
                 continue;
             }
             RgvRunProtocol rgvRun = RgvRunCache.getRgvRun();
-            if (!rgvRun.getRgvNo().equals(slave.getId())){
-                continue;
+            if (slave.getId()>2){
+                if (!rgvRun.getRgvNo2().equals(slave.getId())){
+                    continue;
+                }
+            } else {
+                if (!rgvRun.getRgvNo().equals(slave.getId())){
+                    continue;
+                }
             }
             try {
                 Thread.sleep(100);
@@ -295,20 +305,35 @@
 //                System.out.println(JSON.toJSON(rgvRun));
 
                 // 浼戠湢 1 绉�
-                if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld > 500L) {
-                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
-                } else {
-                    continue;
+                if (slave.getId()>2){
+                    if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld2 > 500L) {
+                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
+                    } else {
+                        continue;
+                    }
+                }else {
+                    if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld > 500L) {
+                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+                    } else {
+                        continue;
+                    }
                 }
                 if (!deviceDetection()) {
-                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
-                    rgvRun.setRgvNo(slave.getOtherId());
+                    if (slave.getId()>2){
+                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
+                        rgvRun.setRgvNo2(slave.getOtherId());
+                    } else {
+                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+                        rgvRun.setRgvNo(slave.getOtherId());
+                    }
                     RgvRunCache.updateRgvStatus(rgvRun);
                     if (!errorRgv.equals("鏃�")){
                         RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
                     }
                     continue;
                 }
+
+                Thread.sleep(50L);
 
                 RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId());
                 RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
@@ -318,21 +343,36 @@
                     rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
                 }
                 if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)){
-                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
-                    rgvRun.setRgvNo(slave.getOtherId());
+                    if (slave.getId()>2){
+                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
+                        rgvRun.setRgvNo2(slave.getOtherId());
+                    } else {
+                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+                        rgvRun.setRgvNo(slave.getOtherId());
+                    }
                     RgvRunCache.updateRgvStatus(rgvRun);
                     continue;
                 }
                 if (rgvProtocol.getLoaded() == -1){
-                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
-                    rgvRun.setRgvNo(slave.getOtherId());
+                    if (slave.getId()>2){
+                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
+                        rgvRun.setRgvNo2(slave.getOtherId());
+                    } else {
+                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+                        rgvRun.setRgvNo(slave.getOtherId());
+                    }
                     RgvRunCache.updateRgvStatus(rgvRun);
                     RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅鎺㈢墿鐗╃姸鎬佸紓甯�");
                     continue;
                 }
                 if (rgvTaskProtocol.getAvoid() != 0) {
-                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
-                    rgvRun.setRgvNo(slave.getOtherId());
+                    if (slave.getId()>2){
+                        rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
+                        rgvRun.setRgvNo2(slave.getOtherId());
+                    } else {
+                        rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+                        rgvRun.setRgvNo(slave.getOtherId());
+                    }
                     RgvRunCache.updateRgvStatus(rgvRun);
                     continue;
                 }
@@ -419,8 +459,13 @@
                         }
                     }
                 }
-                rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
-                rgvRun.setRgvNo(slave.getOtherId());
+                if (slave.getId()>2){
+                    rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
+                    rgvRun.setRgvNo2(slave.getOtherId());
+                } else {
+                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+                    rgvRun.setRgvNo(slave.getOtherId());
+                }
                 RgvRunCache.updateRgvStatus(rgvRun);
             } catch (Exception e) {
                 log.error("RGV浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
@@ -431,8 +476,13 @@
 //                    log.error("e2:"+e2.getMessage());
                 }
                 rgvRun = RgvRunCache.getRgvRun();
-                rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
-                rgvRun.setRgvNo(slave.getOtherId());
+                if (slave.getId()>2){
+                    rgvRun.currentTimeMilliOld2 = System.currentTimeMillis()+50;
+                    rgvRun.setRgvNo2(slave.getOtherId());
+                } else {
+                    rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+                    rgvRun.setRgvNo(slave.getOtherId());
+                }
                 RgvRunCache.updateRgvStatus(rgvRun);
                 continue;
 //                e.printStackTrace();
@@ -538,7 +588,7 @@
 
                     RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getOtherId());
                     TaskProtocolCache taskProtocolCacheOther = rgvThreadOther.getTaskProtocolCache();
-                    TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask(rgvProtocolOther.getRgvPos());
+                    TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask3(rgvProtocolOther.getRgvPos());
                     if (!Cools.isEmpty(nowPosRunTask)){
                         boolean signNowPosRun = true;
                         if (nowPosRunTask.getTaskStatus()==3){
@@ -623,7 +673,12 @@
                                             }
                                         }
                                         signNowPosRun =false;
+                                    } else {
+                                        signNowPosRun =false;
                                     }
+                                }
+                                if (new TrackRangeUtils().IsItSmall(slave)){
+                                    signNowPosRun = false;
                                 }
                             } else {
                                 long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
@@ -633,7 +688,13 @@
                                 }
                                 if (Math.abs(onePos - twoPos)>100){
                                     if (onePos-50>twoPos+50){
+                                        signNowPosRun =true;
+                                    } else {
                                         signNowPosRun =false;
+                                    }
+                                } else {
+                                    if (new TrackRangeUtils().IsItSmall(slave)){
+                                        signNowPosRun = false;
                                     }
                                 }
                             }
@@ -743,7 +804,7 @@
                 } else {
                     RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getOtherId());
                     TaskProtocolCache taskProtocolCacheOther = rgvThreadOther.getTaskProtocolCache();
-                    TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask(rgvProtocolOther.getRgvPos());
+                    TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask3(rgvProtocolOther.getRgvPos());
                     if (!Cools.isEmpty(nowPosRunTask)){
                         boolean signNowPosRun = true;
                         if (nowPosRunTask.getTaskStatus()==3){
@@ -830,7 +891,12 @@
                                             }
                                         }
                                         signNowPosRun =false;
+                                    } else {
+                                        signNowPosRun =false;
                                     }
+                                }
+                                if (new TrackRangeUtils().IsItSmall(slave)){
+                                    signNowPosRun = false;
                                 }
                             } else {
                                 long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
@@ -840,8 +906,14 @@
                                 }
                                 if (Math.abs(onePos - twoPos)>100){
                                     if (onePos-50>twoPos+50){
+                                        signNowPosRun =true;
+                                    } else {
                                         signNowPosRun =false;
                                     }
+                                } else {
+                                    if (new TrackRangeUtils().IsItSmall(slave)){
+                                        signNowPosRun = false;
+                                    }
                                 }
                             }
                         }

--
Gitblit v1.9.1