From ff28b7ce248f4f4b36e0cd1c6db71dc25d308189 Mon Sep 17 00:00:00 2001
From: 野心家 <1051256694@qq.com>
Date: 星期日, 25 五月 2025 15:09:13 +0800
Subject: [PATCH] 初始化
---
src/main/java/com/zy/core/thread/RgvThread.java | 77 ++++++++++++++++++++++++--------------
src/main/java/com/zy/core/cache/TaskProtocolCache.java | 17 ++++++++
2 files changed, 66 insertions(+), 28 deletions(-)
diff --git a/src/main/java/com/zy/core/cache/TaskProtocolCache.java b/src/main/java/com/zy/core/cache/TaskProtocolCache.java
index 972348c..d0f7d72 100644
--- a/src/main/java/com/zy/core/cache/TaskProtocolCache.java
+++ b/src/main/java/com/zy/core/cache/TaskProtocolCache.java
@@ -137,5 +137,22 @@
// lock.readLock().unlock(); // 閲婃斁璇婚攣
}
}
+ /**
+ * 鏌ヨ鏄惁鏈夊彲鎵ц浠诲姟
+ */
+ public TaskProtocol getNowPosRunTask(Long targetPosition) {
+// lock.readLock().lock(); // 鍔犺閿�
+ try {
+ for (TaskProtocol task : cache.values()) {
+ long runPos = Math.abs(task.getTargetPosition() - targetPosition);
+ if (runPos<50) {
+ return task;
+ }
+ }
+ return null; // 杩斿洖鍓湰
+ } finally {
+// lock.readLock().unlock(); // 閲婃斁璇婚攣
+ }
+ }
}
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 1315b2d..2abca84 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -292,7 +292,7 @@
while (true) {
try {
// 浼戠湢 1 绉�
- Thread.sleep(100);
+ Thread.sleep(50);
if (!deviceDetection()) {
continue;
}
@@ -319,7 +319,8 @@
write(issued);
rgvTaskProtocol.setAvoid(0);
- Thread.sleep(200);
+ try{Thread.sleep(50L);} catch (Exception e){}
+
RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
}
continue;
@@ -352,22 +353,6 @@
} else {
for (TaskProtocol taskProtocol : allTakeTaskProtocol) {
if (taskProtocol.getIsRunning() == 1) {//鍑嗗涓嬪彂
-// RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId());
- if (taskProtocol.getTaskStatus()==3){
- DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, taskProtocol.getTargetPositionStaNoPlcId());
- StaProtocol staProtocol = devpThread.getStation().get(taskProtocol.getTargetPositionStaNo());
- if (staProtocol == null ) {
- continue;
- }
- // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
- if (!staProtocol.isAutoing() || staProtocol.isLoading()
- || staProtocol.getWorkNo() != 0
- ){
- Thread.sleep(500);
-// System.out.println("<鏀捐揣鐩爣绔�>" + taskProtocol.getTargetPositionStaNo() + "<闈炶嚜鍔ㄦ垨鑰呮湁鐗╂垨鑰呭瓨鍦ㄥ伐浣滃彿锛侊紒锛�>");
-// continue;
- }
- }
//鍙岃溅
if (rgvOtherStatusEnable()) {
//鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛�
@@ -387,8 +372,6 @@
if (!staProtocol.isAutoing() || staProtocol.isLoading()
|| staProtocol.getWorkNo() != 0
){
- Thread.sleep(500);
-// System.out.println("<鏀捐揣鐩爣绔�>" + taskProtocol.getTargetPositionStaNo() + "<闈炶嚜鍔ㄦ垨鑰呮湁鐗╂垨鑰呭瓨鍦ㄥ伐浣滃彿锛侊紒锛�>");
continue;
}
}
@@ -474,8 +457,27 @@
RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getOtherId());
TaskProtocolCache taskProtocolCacheOther = rgvThreadOther.getTaskProtocolCache();
- if (taskProtocolCacheOther.isNowPosRun(rgvProtocolOther.getRgvPos())){
- return false;
+ TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask(rgvProtocolOther.getRgvPos());
+ if (!Cools.isEmpty(nowPosRunTask)){
+ boolean signNowPosRun = true;
+ if (nowPosRunTask.getTaskStatus()==3){
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, nowPosRunTask.getTargetPositionStaNoPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(nowPosRunTask.getTargetPositionStaNo());
+ if (staProtocol == null ) {
+ signNowPosRun =false;
+ }
+ if (signNowPosRun){
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (!staProtocol.isAutoing() || staProtocol.isLoading()
+ || staProtocol.getWorkNo() != 0
+ ){
+ signNowPosRun =false;
+ }
+ }
+ }
+ if (signNowPosRun){
+ return false;
+ }
}
long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) {
@@ -568,8 +570,27 @@
} else {
RgvThread rgvThreadOther = (RgvThread) SlaveConnection.get(SlaveType.Rgv, slave.getOtherId());
TaskProtocolCache taskProtocolCacheOther = rgvThreadOther.getTaskProtocolCache();
- if (taskProtocolCacheOther.isNowPosRun(rgvProtocolOther.getRgvPos())){
- return false;
+ TaskProtocol nowPosRunTask = taskProtocolCacheOther.getNowPosRunTask(rgvProtocolOther.getRgvPos());
+ if (!Cools.isEmpty(nowPosRunTask)){
+ boolean signNowPosRun = true;
+ if (nowPosRunTask.getTaskStatus()==3){
+ DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, nowPosRunTask.getTargetPositionStaNoPlcId());
+ StaProtocol staProtocol = devpThread.getStation().get(nowPosRunTask.getTargetPositionStaNo());
+ if (staProtocol == null ) {
+ signNowPosRun =false;
+ }
+ if (signNowPosRun){
+ // 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
+ if (!staProtocol.isAutoing() || staProtocol.isLoading()
+ || staProtocol.getWorkNo() != 0
+ ){
+ signNowPosRun =false;
+ }
+ }
+ }
+ if (signNowPosRun){
+ return false;
+ }
}
long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng();
if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) {
@@ -910,8 +931,8 @@
}
if (result != null && result.IsSuccess) {
- Thread.sleep(200);
- this.readStatus();
+// Thread.sleep(50);
+// this.readStatus();
log.info("RGV 鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON(taskProtocol));
log.error("RGV 鍛戒护涓嬪彂 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
@@ -960,8 +981,8 @@
}
if (result != null && result.IsSuccess) {
- Thread.sleep(200);
- this.readStatus();
+// Thread.sleep(200);
+// this.readStatus();
log.info("RGV 鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON("null"));
OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON("null")));
return true;
--
Gitblit v1.9.1