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