From 4bac95fc34591bc3d61d6192c457052275ae4298 Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期三, 18 六月 2025 14:17:58 +0800
Subject: [PATCH] #改造
---
src/main/java/com/zy/core/enums/RgvStatusType.java | 1
src/main/java/com/zy/core/thread/RgvThread.java | 49 +++++++++++++++++-------
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 55 ++++++++++++++++++++++++++-
3 files changed, 88 insertions(+), 17 deletions(-)
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index 5a437a4..d1cdeba 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -1768,6 +1768,27 @@
sign=true;
}
}
+ if (sign){
+ for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
+ if (rgvStn.getStaNo().equals(staList.get(0))) {
+ TaskWrk taskWrk = deviceDetection(rgvStn);
+ if (taskWrk != null) {
+ Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
+ for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){
+ if (rgvSuper.getStaNo().equals(outStaNo)){
+ System.out.println("杩愯灏辫繎璺宠繃鍚庡洜鏈�杩滃啀娆℃墽琛�==="+rgvSlave.getId()+"===");
+
+ sign=false;
+ break;
+ }
+ }
+ } else {
+ return;
+ }
+ break;
+ }
+ }
+ }
}
@@ -1847,9 +1868,7 @@
}
}
}
-
- if (!sign) {
- // 鍗婅竟鍖哄煙鍐呮斁璐т换鍔�
+ if (!sign && staList.size()>1) {
for (Integer staNoNow : rangeListOther) {
for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
if (rgvStn.getStaNo().equals(staNoNow)) {
@@ -1877,6 +1896,36 @@
break;
}
}
+
+ }else if (!sign && staList.size()==1){
+ for (Integer staNoNow : rangeList) {
+ for (RgvSlave.RgvStn rgvStn : rgvSlave.getRgvInSta()) {
+ if (rgvStn.getStaNo().equals(staNoNow)) {
+ TaskWrk taskWrk = deviceDetection(rgvStn);
+ if (taskWrk != null) {
+ Integer outStaNo = BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint());
+ for (RgvSlave.RgvStn rgvSuper : rgvSlave.getRgvSuperSta()){
+ if (rgvSuper.getStaNo().equals(outStaNo)){
+ System.out.println("鍥犳渶杩滄墽琛屽崐杈瑰尯鍩熷唴鏀捐揣浠诲姟==="+rgvSlave.getId()+"===");
+ BasDevpPosition basDevpPosition = basDevpPositionService.selectOne(new EntityWrapper<BasDevpPosition>().eq("DEV_NO", BarcodeUtils.getOutStaNo(taskWrk.getOriginTargetPoint())));
+ if (RouteUtils.CheckIfItIsWithinTheRange(rangeList, basDevpPosition.getPlcPosition(), basDevpPositions, itSmall)) {
+ sign = taskGenerate(rgvSlave, rgvStn, 0);
+ }
+ break;
+ }
+ }
+ }
+ break;
+ }
+ if (sign) {
+ break;
+ }
+ }
+ if (sign) {
+ break;
+ }
+ }
+
}
} else {
//鍙敤鍖哄煙灏辫繎鍙栬揣
diff --git a/src/main/java/com/zy/core/enums/RgvStatusType.java b/src/main/java/com/zy/core/enums/RgvStatusType.java
index 3ee91d7..57f43fa 100644
--- a/src/main/java/com/zy/core/enums/RgvStatusType.java
+++ b/src/main/java/com/zy/core/enums/RgvStatusType.java
@@ -13,6 +13,7 @@
FETCHWAITING(91, "鍙栬揣浠诲姟瀹屾垚绛夊緟WCS纭"),
SOS99(99, "鎶ヨ99"),
OTHER(100, "鍏跺畠100"),
+ MAN(110, "浣滀笟鍚姩涓�"),
ROAM(100000, "婕父")
;
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 0dd4ee9..0a76c89 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -66,6 +66,7 @@
private boolean connectRgv = false;
private boolean delRgvTask = false;
+ private short wrkSign = 0;
public RgvThread(RgvSlave slave) {
this.slave = slave;
@@ -140,7 +141,7 @@
continue;
}
Thread.sleep(20);
-// System.out.println("璇荤嚎绋�"+ slave.getId());
+// System.out.println("璇荤嚎绋�,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis());
readStatus();
@@ -179,10 +180,12 @@
delRgvTask = false;
continue;
}
- Thread.sleep(40);
+ Thread.sleep(50L);
+
OperateResultExOne<byte[]> result = siemensNet.Read("DB100.12", (short) 1);
boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, 0, 1);
if (status[0]){
+ Thread.sleep(500L);
OperateResult result4 = siemensNet.Write("DB100.12.0", false);
}
} catch (Exception e) {
@@ -300,7 +303,7 @@
write(issued);
rgvTaskProtocol.setAvoid(0);
- Thread.sleep(200);
+// Thread.sleep(200);
RgvTaskCache.updateRgvStatus(rgvTaskProtocol);
} catch (Exception e) {
@@ -333,13 +336,13 @@
// System.out.println(JSON.toJSON(rgvRun));
// 浼戠湢 1 绉�
- if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld > 1000) {
- rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+ if (System.currentTimeMillis() - rgvRun.currentTimeMilliOld > 100) {
+ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10;
} else {
continue;
}
if (!deviceDetection()) {
- rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10;
rgvRun.setRgvNo(slave.getOtherId());
RgvRunCache.updateRgvStatus(rgvRun);
if (!errorRgv.equals("鏃�")){
@@ -356,20 +359,20 @@
rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId());
}
if (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) || (Math.abs(rgvProtocol.getRgvPos() - rgvProtocol.getRgvPosDestination())>100)){
- rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10;
rgvRun.setRgvNo(slave.getOtherId());
RgvRunCache.updateRgvStatus(rgvRun);
continue;
}
if (rgvProtocol.getLoaded() == -1){
- rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10;
rgvRun.setRgvNo(slave.getOtherId());
RgvRunCache.updateRgvStatus(rgvRun);
RgvErrCache.updateRgvErr(slave.getId(),"灏忚溅鎺㈢墿鐗╃姸鎬佸紓甯�");
continue;
}
if (rgvTaskProtocol.getAvoid() != 0) {
- rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10;
rgvRun.setRgvNo(slave.getOtherId());
RgvRunCache.updateRgvStatus(rgvRun);
continue;
@@ -457,7 +460,7 @@
}
}
}
- rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10;
rgvRun.setRgvNo(slave.getOtherId());
RgvRunCache.updateRgvStatus(rgvRun);
} catch (Exception e) {
@@ -469,7 +472,7 @@
// log.error("e2:"+e2.getMessage());
}
rgvRun = RgvRunCache.getRgvRun();
- rgvRun.currentTimeMilliOld = System.currentTimeMillis()+50;
+ rgvRun.currentTimeMilliOld = System.currentTimeMillis()+10;
rgvRun.setRgvNo(slave.getOtherId());
RgvRunCache.updateRgvStatus(rgvRun);
continue;
@@ -1087,6 +1090,16 @@
}
rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 8));
+// rgvProtocol.setStatus((short)1);
+
+ //浣滀笟鍚姩涓� 瑙e喅浠诲姟涓嬪彂鍚庡皬杞︾姸鎬佹湭鏇存柊锛屽皬杞︾姸鎬佷笉鍙婃椂
+ if (this.wrkSign == 1 && rgvProtocol.getStatus()!=(short)1){
+ this.wrkSign = 0;
+ }
+ if (this.wrkSign == 1){
+ rgvProtocol.setStatus((short)110);
+ }
+
rgvProtocol.setTaskNo((long)siemensNet.getByteTransform().TransInt32(result.Content, 10));
rgvProtocol.setRgvNo((int)siemensNet.getByteTransform().TransInt16(result.Content, 14));
@@ -1106,7 +1119,10 @@
rgvProtocol.setErr5(status[12]);
rgvProtocol.setErr6(status[13]);
// System.out.println("璇荤嚎绋�"+ slave.getId()+"---"+JSON.toJSONString(rgvProtocol));
-
+// System.out.println("璇荤嚎绋�,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis()+"灏忚溅鏁版嵁锛�"+JSON.toJSONString(rgvProtocol));
+ if (rgvProtocol.getRgvNo()==1){
+ log.info("璇荤嚎绋�,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis()+"灏忚溅鏁版嵁锛�"+JSON.toJSONString(rgvProtocol));
+ }
OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
// // 宸ヤ綅1澶嶄綅淇″彿
// if (rgvProtocol.getStatusType().equals(RgvStatusType.WAITING)
@@ -1198,9 +1214,8 @@
}
// convertRow(command);
// taskProtocol.setRgvNo(slave.getId());
- Long[] array = new Long[11];
+// Long[] array = new Long[11];
OperateResult result41 = siemensNet.Write("DB100.12.0", false);
-
// array[0] = taskProtocol.getAckFinish1();
// array[1] = taskProtocol.getTaskNo();
// array[2] = taskProtocol.getTaskMode();
@@ -1212,8 +1227,12 @@
OperateResult result1 = siemensNet.Write("DB100.4", (short) taskStatus);
OperateResult result2 = siemensNet.Write("DB100.6", taskProtocol.getTaskNo().intValue());
OperateResult result3 = siemensNet.Write("DB100.10", taskProtocol.isDirection()? (short) 1 : (short) 2); // 鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙�
+ Thread.sleep(20L);
+ this.wrkSign = 1;
OperateResult result4 = siemensNet.Write("DB100.12.0", true);
+ log.info("浠诲姟涓嬪彂绾跨▼,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis());
+
// if (taskProtocol.getAckFinish1() == 0) {
// short commandFinish = 3; //宸ヤ綅1銆�2浠诲姟鍚屾椂鍐欏叆
// Thread.sleep(100L);
@@ -1241,6 +1260,7 @@
} catch (Exception ignore) {
}
+ readStatus();
if (result != null && result.IsSuccess) {
// Thread.sleep(50);
// this.readStatus();
@@ -1269,6 +1289,7 @@
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:鍙�
+ log.info("浠诲姟瀹屾垚涓嬪彂绾跨▼,灏忚溅鍙�"+ slave.getId()+"鏃堕棿鎴筹細"+System.currentTimeMillis());
try {
// 鏃ュ織璁板綍
--
Gitblit v1.9.1