From bb6bc1f4030cf813e128f021ccecd42420f35628 Mon Sep 17 00:00:00 2001
From: lsh <lsh@163.com>
Date: 星期五, 06 六月 2025 13:38:10 +0800
Subject: [PATCH] *
---
src/main/java/com/zy/core/thread/RgvThread.java | 95 +++++++++++++++++++++++++++++++++++++++--------
1 files changed, 79 insertions(+), 16 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index ece3eeb..e60fe8f 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -84,15 +84,24 @@
private void taskIssued() {
while (true) {
try {
+ if(!connectRgv){
+ try {
+ Thread.sleep(1000L);
+ } catch (Exception e){
+
+ }
+ continue;
+ }
int step = 1;
Task task = MessageQueue.poll(SlaveType.Rgv, slave.getId());
if (task != null) {
step = task.getStep();
}
switch (step) {
- // 璇绘暟鎹�
+ //婕父浠诲姟瀹屾垚淇″彿
case 1:
// readStatus();
+ taskComplete();
break;
//宸ヤ綅1鍐欏叆鏁版嵁
case 2:
@@ -112,10 +121,28 @@
command.setDestinationStaNo1((short)0); // 鐩爣绔�
write3(command);
break;
+ // 澶嶄綅
+ case 4:
+ RgvCommand command4 = (RgvCommand) task.getData();
+ if (null == command4) {
+ command4 = new RgvCommand();
+ }
+ command4.setRgvNo(slave.getId()); // RGV缂栧彿
+ command4.setTaskNo1((short) 0); // 宸ヤ綔鍙�
+ command4.setAckFinish1((short) 1); // 浠诲姟瀹屾垚纭浣�
+ command4.setTaskMode1(RgvTaskModeType.X_MOVE); // 浠诲姟妯″紡
+ command4.setSourceStaNo1((short)0); // 婧愮珯
+ command4.setDestinationStaNo1((short)0); // 鐩爣绔�
+ write3(command4);
+ break;
+ // 婕父
+ case 5:
+ write5((Long) task.getData());
+ break;
default:
break;
}
- Thread.sleep(100);
+ Thread.sleep(50);
} catch (Exception e) {
log.error("RGV鍐欑嚎绋嬪紓甯�"+e.getMessage());
// e.printStackTrace();
@@ -148,6 +175,15 @@
private void readStatusRgv() {
while (true) {
try {
+ if(!connectRgv){
+ try {
+ Thread.sleep(1000L);
+ } catch (Exception e){
+
+ }
+ initRgv();
+ continue;
+ }
Thread.sleep(40);
readStatus();
@@ -215,7 +251,7 @@
OperateResultExOne<byte[]> result = siemensNet.Read("DB100.0", (short) 20);
OperateResultExOne<byte[]> resultV = siemensNet.Read("DB20.16", (short) 2);
OperateResultExOne<byte[]> resultE = siemensNet.Read("DB20.26", (short) 2);
- if (result.IsSuccess) {
+ if (result.IsSuccess && resultV.IsSuccess && resultE.IsSuccess) {
if (null == rgvProtocol) {
rgvProtocol = new RgvProtocol();
rgvProtocol.setRgvNo(slave.getId());
@@ -326,6 +362,33 @@
return false;
}
}
+
+ /**
+ * 瀹屾垚
+ */
+ private void taskComplete() {
+ try {
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB24.11", (short) 1);
+ boolean[] status = siemensNet.getByteTransform().TransBool(result.Content, 0, 1);
+ if (status[0]){
+ OperateResult result4 = siemensNet.Write("DB24.11.0", false);
+ }
+ } catch (Exception e) {
+ log.error("RGV鏁版嵁浠诲姟涓嬪彂澶嶄綅绾跨▼寮傚父锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ }
+ }
+
+ private void write5(Long devperimeter){
+ try {
+ siemensNet.Write("DB24.12", devperimeter.intValue());
+ Thread.sleep(10L);
+ siemensNet.Write("DB24.11.0", true);
+
+ } catch (Exception ignore) {
+ log.error("鍐欏叆RGV plc宸ヤ綅1婕父鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+ }
+ }
+
private boolean write3(RgvCommand command) throws InterruptedException {
if (null == command) {
log.error("RGV鍐欏叆鍛戒护涓虹┖");
@@ -393,18 +456,18 @@
/******************************************************************************************/
/**************************************** 娴嬭瘯涓撶敤 *****************************************/
/*****************************************************************************************/
- public static void main(String[] args) throws InterruptedException {
- RgvSlave slave = new RgvSlave();
- slave.setId(1);
- slave.setIp("192.168.6.9");
- slave.setRack(0);
- slave.setSlot(0);
- RgvThread rgvThread = new RgvThread(slave);
- rgvThread.connect();
- rgvThread.readStatus();
- System.out.println(JSON.toJSONString(rgvThread.rgvProtocol));
- Thread.sleep(3000L);
-
- }
+// public static void main(String[] args) throws InterruptedException {
+// RgvSlave slave = new RgvSlave();
+// slave.setId(1);
+// slave.setIp("192.168.6.9");
+// slave.setRack(0);
+// slave.setSlot(0);
+// RgvThread rgvThread = new RgvThread(slave);
+// rgvThread.connect();
+// rgvThread.readStatus();
+// System.out.println(JSON.toJSONString(rgvThread.rgvProtocol));
+// Thread.sleep(3000L);
+//
+// }
}
--
Gitblit v1.9.1