From cc885fe7e9629fa922a369c3938a748ec7f7e246 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期六, 14 六月 2025 16:32:38 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/core/enums/RgvStatusType.java | 1
src/main/java/com/zy/core/thread/RgvThread.java | 92 ++++++++++++++++++++++++++++++++++++++++++++++
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 13 +++++-
3 files changed, 104 insertions(+), 2 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 a1d5b62..665ecb5 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -515,7 +515,7 @@
log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�", rgvSlave.getId());
continue;
}
- if (rgvProtocol.getStatusType() == RgvStatusType.WAITING) {
+ if (rgvProtocol.getStatusType() == RgvStatusType.WAITING || rgvProtocol.getStatusType() == RgvStatusType.WAITING101) {
log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}", rgvProtocol.getRgvNo(), rgvProtocol.getStatusType(), rgvProtocol);
}
// 鍙湁褰揜GV绛夊緟WCS纭銆佽嚜鍔�
@@ -576,6 +576,15 @@
}
} catch (Exception e){}
wrkMastService.updateById(wrkMast);
+ } else if (rgvProtocol.getStatusType() == RgvStatusType.WAITING101
+ && rgvProtocol.getModeType() == RgvModeType.AUTO
+ && rgvProtocol.getTaskNo1() != 0
+ ){
+ boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
+ if (!rgvComplete) {
+ log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�", rgvProtocol.getRgvNo());
+ break;
+ }
}
} catch (Exception e) {
log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�" + e);
@@ -613,7 +622,7 @@
rgvCommand.setDestinationStaNo1((short)-1); //宸ヤ綅1鐩爣绔欑偣
rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
rgvCommand.setRgvSome((short) 1);
- if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(2, rgvCommand))) {
+ if (!MessageQueue.offer(SlaveType.Rgv, rgvProtocol.getRgvNo(), new Task(4, rgvCommand))) {
//
log.error("RGV鍙栨秷鍛戒护涓嬪彂澶辫触锛孯GV鍙�={}锛屼换鍔℃暟鎹�={}", rgvProtocol.getRgvNo(), JSON.toJSON(rgvCommand));
wrkMast.setLogErrTime(new Date());
diff --git a/src/main/java/com/zy/core/enums/RgvStatusType.java b/src/main/java/com/zy/core/enums/RgvStatusType.java
index 588185c..a2413db 100644
--- a/src/main/java/com/zy/core/enums/RgvStatusType.java
+++ b/src/main/java/com/zy/core/enums/RgvStatusType.java
@@ -16,6 +16,7 @@
CANCEL(12, "绛夊緟鍙栨秷","#95A5A6"),
WALK(20, "璧拌","#F1C40F"),
WAITING(100, "浠诲姟鎵ц瀹屾垚绛夊緟纭","#AED6F1"),
+ WAITING101(101, "浠诲姟鎵ц瀹屾垚绛夊緟纭","#AED6F1"),
SOS110(110, "鎶ヨ","#E74C3C"),
SOS(999, "鏈煡","#FF0000")
;
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 9ddd128..3d1e4f3 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -127,6 +127,12 @@
rgvOpt(command);
write3(command);
break;
+ //宸ヤ綅1鍐欏叆鍙栨秷鏁版嵁
+ case 4:
+ RgvCommand command4 = (RgvCommand) task.getData();
+ rgvOpt(command4);
+ write4(command4);
+ break;
// 婕父
case 5:
Long aLong = (Long) task.getData();
@@ -216,6 +222,30 @@
rgvProtocol.setxDistance((short) 0);
rgvProtocol.setxDuration((short) 0);
}
+
+// /**
+// * 鍒濆鍖朢GV鐘舵��
+// */
+// private void initRgv() {
+// if (null == rgvProtocol) {
+// rgvProtocol = new RgvProtocol();
+// }
+// rgvProtocol.setRgvNo(slave.getId());
+// rgvProtocol.setMode((short) 3);
+// rgvProtocol.setStatus((short)0);
+// rgvProtocol.setTaskNo1((short)0);
+// rgvProtocol.setStatus1((short)0);
+// rgvProtocol.setLoaded1((short)0);
+// rgvProtocol.setWalkPos((short)0);
+// rgvProtocol.setRgvPos(slave.getId()*100000L);
+// rgvProtocol.setTaskNo2((short)0);
+// rgvProtocol.setStatus2((short)0);
+// rgvProtocol.setLoaded2((short)0);
+// rgvProtocol.setAlarm((short)0);
+// rgvProtocol.setxSpeed((short) 0);
+// rgvProtocol.setxDistance((short) 0);
+// rgvProtocol.setxDuration((short) 0);
+// }
@Override
public boolean connect() {
@@ -398,6 +428,68 @@
return false;
}
}
+ private boolean write4(RgvCommand command) throws InterruptedException {
+ if (null == command) {
+ log.error("RGV鍐欏叆鍛戒护涓虹┖");
+ return false;
+ }
+
+// siemensNet.Write("DB24.10.0", false);
+// siemensNet.Write("DB24.10.1", false);
+
+ command.setRgvNo(slave.getId());
+ short[] array = new short[5];
+ array[0] = command.getRgvNo().shortValue();
+ array[1] = command.getSourceStaNo1();
+ array[2] = command.getDestinationStaNo1();
+ array[3] = command.getTaskMode1();//浠诲姟妯″紡
+ array[4] = command.getTaskNo1();
+
+
+
+ OperateResult result = siemensNet.Write("DB24.0", array);
+//
+// if (command.getAckFinish1().equals((short)0)) {
+//// Thread.sleep(100L);
+//// siemensNet.Write("DB24.10.7", command.getRgvSome() == 1);
+//// Thread.sleep(20L);
+//// result = siemensNet.Write("DB24.10.0", true);
+// } else {
+// siemensNet.Write("DB24.10.1", true);
+// }
+
+ try {
+ // 鏃ュ織璁板綍
+ BasRgvOptService bean = SpringUtils.getBean(BasRgvOptService.class);
+ BasRgvOpt basRgvOpt = new BasRgvOpt(
+ command.getTaskNo1().intValue(),
+ command.getTaskNo2().intValue(),
+ command.getRgvNo(),
+ new Date(),
+ command.getTaskModeType1().toString(),
+ command.getSourceStaNo1().intValue(),
+ command.getDestinationStaNo1().intValue(),
+ command.getSourceStaNo2().intValue(),
+ command.getDestinationStaNo2().intValue(),
+ null,
+ new Date(),
+ null
+ );
+ bean.insert(basRgvOpt);
+ } catch (Exception ignore) {}
+
+ if (result != null && result.IsSuccess) {
+// Thread.sleep(200);
+// this.readStatus();
+ log.info("RGV 宸ヤ綅1鍙栨秷鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSONString(command));
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 宸ヤ綅1鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSONString(command)));
+ return true;
+ } else {
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc宸ヤ綅1鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
+ log.error("鍐欏叆RGV plc宸ヤ綅1鍙栨秷鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ return false;
+ }
+ }
/**
* 瀹屾垚
--
Gitblit v1.9.1