From d635a99e20e207b40b16b8536c02a0b74df63c61 Mon Sep 17 00:00:00 2001
From: zzgtfwq <zzgtfwq>
Date: 星期一, 23 三月 2026 14:19:10 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/RgvThread.java | 115 +++++++++++++++++++++++++++++++++++++++++++++++----------
1 files changed, 94 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..9b34b35 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;
}
@@ -375,6 +415,7 @@
RgvErrCache.updateRgvErr(slave.getId(),errorRgv);
break;
}
+ Thread.sleep(1000);
}
if (taskProtocol.getTargetPosition()<=rgvProtocol.getRgvPos()+50
&& taskProtocol.getTargetPosition()>=rgvProtocol.getRgvPos()-50){
@@ -419,8 +460,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 +477,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 +589,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 +674,12 @@
}
}
signNowPosRun =false;
+ } else {
+ signNowPosRun =false;
}
+ }
+ if (new TrackRangeUtils().IsItSmall(slave)){
+ signNowPosRun = false;
}
} else {
long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
@@ -633,7 +689,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 +805,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 +892,12 @@
}
}
signNowPosRun =false;
+ } else {
+ signNowPosRun =false;
}
+ }
+ if (new TrackRangeUtils().IsItSmall(slave)){
+ signNowPosRun = false;
}
} else {
long twoPos = Math.abs(nowPosRunTask2.getTargetPosition() - rgvProtocolOther.getRgvPos());
@@ -840,8 +907,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