From c904f735e0b8a488ef56744c08f8e10258639bce Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 05 六月 2025 15:54:58 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/SiemensRgvThread.java | 94 ++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 84 insertions(+), 10 deletions(-)
diff --git a/src/main/java/com/zy/core/thread/SiemensRgvThread.java b/src/main/java/com/zy/core/thread/SiemensRgvThread.java
index c6d7b77..13e064e 100644
--- a/src/main/java/com/zy/core/thread/SiemensRgvThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensRgvThread.java
@@ -5,6 +5,7 @@
import HslCommunication.Profinet.Siemens.SiemensPLCS;
import HslCommunication.Profinet.Siemens.SiemensS7Net;
import com.alibaba.fastjson.JSON;
+import com.core.common.Cools;
import com.core.common.DateUtils;
import com.core.common.SpringUtils;
import com.zy.asrs.entity.BasRgv;
@@ -114,6 +115,13 @@
commandAvoidanceXY.setCommand((short)0);
write(commandAvoidanceXY);
break;
+ case 10:
+ write10((String) task.getData());
+ break;
+ //鍗曟満鍐欏叆鏁版嵁
+ case 11:
+ write11((RgvCommand) task.getData());
+ break;
default:
break;
}
@@ -143,11 +151,13 @@
// rgvProtocol.setStatus2((short)-1);
// rgvProtocol.setLoaded2((short)0);
rgvProtocol.setAlarm((short)0);
- rgvProtocol.setxSpeed((short) 0);
- rgvProtocol.setxDistance((short) 0);
- rgvProtocol.setxDuration((short) 0);
+ rgvProtocol.setXSpeed(0.0F);
+ rgvProtocol.setXDistance(0.0F);
+ rgvProtocol.setXDuration(0.0F);
rgvProtocol.setSouSta((short)0);
rgvProtocol.setEndSta((short)0);
+ rgvProtocol.setList32(new boolean[8]);
+ rgvProtocol.setRgvPos(8000);
}
@Override
@@ -175,7 +185,7 @@
*/
private void readStatus(){
try {
- OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 30);
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 36);
if (result.IsSuccess) {
if (null == rgvProtocol || rgvProtocol.getRgvNo() == null) {
rgvProtocol = new RgvProtocol();
@@ -187,14 +197,18 @@
rgvProtocol.setStatus1(siemensNet.getByteTransform().TransInt16(result.Content, 6));
rgvProtocol.setRgvPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 8));
rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 10));
-// rgvProtocol.setWalkPos(siemensNet.getByteTransform().TransInt16(result.Content, 12));
-// rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 14));
+ rgvProtocol.setCode(siemensNet.getByteTransform().TransInt32(result.Content, 12));
rgvProtocol.setLoaded1(siemensNet.getByteTransform().TransInt16(result.Content, 16));
rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 18));
-// rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20));
- rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 20));
-// rgvProtocol.setTemp1(siemensNet.getByteTransform().TransInt16(result.Content, 24));
-// rgvProtocol.setTemp2(siemensNet.getByteTransform().TransInt16(result.Content, 26));
+ rgvProtocol.setXSpeed(siemensNet.getByteTransform().TransSingle(result.Content, 20));
+ rgvProtocol.setXDistance(siemensNet.getByteTransform().TransSingle(result.Content, 24));
+ rgvProtocol.setXDuration(siemensNet.getByteTransform().TransSingle(result.Content, 28));
+ rgvProtocol.setList32(siemensNet.getByteTransform().TransBool(result.Content, 32, 1));
+ rgvProtocol.setList33(siemensNet.getByteTransform().TransBool(result.Content, 33, 1));
+ rgvProtocol.setList34(siemensNet.getByteTransform().TransBool(result.Content, 34, 1));
+ rgvProtocol.setList35(siemensNet.getByteTransform().TransBool(result.Content, 35, 1));
+
+
OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId()));
@@ -460,6 +474,66 @@
}
}
+ //灏忚溅寮哄埗銆佸浣嶃�佹姤璀︽秷闊炽�佸惎鍔ㄣ�佸仠姝€�佹�ュ仠銆佸浣嶃�佹墜鍔ㄣ�佹墜鍔ㄥ畾浣嶃�佸崟鏈恒�佽仈鏈恒�佽揣鍙夊洖涓�
+ private boolean write10(String status) throws InterruptedException {
+ if (Cools.isEmpty(status)) {
+ log.error("RGV鍐欏叆鍛戒护涓虹┖");
+ return false;
+ }
+ OperateResult result = siemensNet.Write("DB19."+status, true);
+ if (result != null && result.IsSuccess) {
+ Thread.sleep(200);
+ this.readStatus();
+ log.info("RGV 鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON("DB19."+status));
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), "DB19."+status));
+ return true;
+ } else {
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [DB鍧楋細{4}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status));
+ log.error("鍐欏叆RGV plc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [DB鍧楋細{4}]", slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status);
+ return false;
+ }
+ }
+
+ //鍗曟浠诲姟
+ private boolean write11(RgvCommand command) throws InterruptedException {
+ if (null == command) {
+ log.error("RGV鍐欏叆鍛戒护涓虹┖");
+ return false;
+ }
+ String status = "";
+ command.setRgvNo(slave.getId());
+ short[] array = new short[2];
+ array[0] = command.getDestinationStaNo1();
+ array[1] = command.getSourceStaNo1();
+
+ OperateResult result = siemensNet.Write("DB19.0", array);
+ if (command.getTaskMode1().equals(RgvTaskModeType.FETCH.id.shortValue())){
+ status = "4.1";
+ } else if (command.getTaskMode1().equals(RgvTaskModeType.PUT.id.shortValue())){
+ status = "4.2";
+ } else if (command.getTaskMode1().equals(RgvTaskModeType.X_MOVE.id.shortValue())){
+ status = "4.0";
+ } else if (command.getTaskMode1().equals(RgvTaskModeType.FETCH_PUT.id.shortValue())){
+ status = "4.3";
+ } else {
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [DB鍧楋細{4}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status));
+ log.error("鍐欏叆RGV plc鏁版嵁澶辫触 鏈煡浠诲姟绫诲瀷 ===>> [id:{}] [ip:{}] [port:{}] [DB鍧楋細{4}]", slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status);
+ return false;
+ }
+ OperateResult result1 = siemensNet.Write("DB19."+status, true);
+ if (result != null && result.IsSuccess && result1 != null && result1.IsSuccess) {
+ Thread.sleep(200);
+ this.readStatus();
+ log.info("RGV 鍛戒护涓嬪彂[id:{}] >>>>> {}", slave.getId(), JSON.toJSON("DB19."+status));
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), "DB19."+status));
+ return true;
+ } else {
+ OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆戝啓鍏GV plc鏁版嵁澶辫触 ===>> [id:{1}] [ip:{2}] [port:{3}] [DB鍧楋細{4}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status));
+ log.error("鍐欏叆RGV plc鏁版嵁澶辫触 ===>> [id:{}] [ip:{}] [port:{}] [DB鍧楋細{4}]", slave.getId(), slave.getIp(), slave.getPort(), "DB19."+status);
+ return false;
+ }
+ }
+
@Override
public void close() {
siemensNet.ConnectClose();
--
Gitblit v1.9.1