From 5e4345b5903010cbd63bb7edad3bbce479e2b57d Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期二, 06 一月 2026 09:51:50 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java | 120 ++++++++++++++++++++++++-----------------------------------
1 files changed, 49 insertions(+), 71 deletions(-)
diff --git a/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java b/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
index 7e4bd32..cef6605 100644
--- a/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java
@@ -37,10 +37,10 @@
if(connect.IsSuccess){
connected = true;
OutputQueue.CRN.offer(MessageFormat.format( "銆恵0}銆戝爢鍨涙満plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
- News.info("SiemensCrn 鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort());
+ News.info("鍫嗗灈鏈簆lc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort());
} else {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
- News.error("SiemensCrn 鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort());
+ News.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort());
}
// siemensNet.ConnectClose();
return connected;
@@ -69,27 +69,25 @@
crnStatus.setWalkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 14));
crnStatus.setLoaded((int) siemensNet.getByteTransform().TransInt16(result.Content, 16));
crnStatus.setAlarm((int) siemensNet.getByteTransform().TransInt16(result.Content, 18));
- crnStatus.setTemp1((int) siemensNet.getByteTransform().TransInt16(result.Content, 20));
- crnStatus.setTemp2((int) siemensNet.getByteTransform().TransInt16(result.Content, 22));
- crnStatus.setTemp3((int) siemensNet.getByteTransform().TransInt16(result.Content, 24));
- crnStatus.setTemp4((int) siemensNet.getByteTransform().TransInt16(result.Content, 26));
- crnStatus.setXSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 28));
- crnStatus.setYSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 32));
- crnStatus.setZSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 36));
- crnStatus.setXDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 40));
- crnStatus.setYDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 44));
- crnStatus.setXDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 48));
- crnStatus.setYDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 52));
+ crnStatus.setTemp1((int) siemensNet.getByteTransform().TransInt16(result.Content, 24));
+ crnStatus.setTemp2((int) siemensNet.getByteTransform().TransInt16(result.Content, 26));
+ crnStatus.setXSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 28));
+ crnStatus.setYSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 32));
+ crnStatus.setZSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 36));
+ crnStatus.setXDistance((double) siemensNet.getByteTransform().TransSingle(result.Content, 40));
+ crnStatus.setYDistance((double) siemensNet.getByteTransform().TransSingle(result.Content, 44));
+ crnStatus.setXDuration((double) siemensNet.getByteTransform().TransSingle(result.Content, 48));
+ crnStatus.setYDuration((double) siemensNet.getByteTransform().TransSingle(result.Content, 52));
return crnStatus;
} else {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
- News.error("SiemensCrn 璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort());
+ News.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort());
}
} catch (Exception e) {
e.printStackTrace();
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
- News.error("SiemensCrn 璇诲彇鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort());
+ News.error("璇诲彇鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort());
}
return null;
}
@@ -105,30 +103,26 @@
}
int writeAck = 0;
- boolean ackResult = false;
+ boolean commandResult = false;
do {
- OperateResult resultAck = siemensNet.Write("DB100.0", (short) 0);
- if (resultAck.IsSuccess) {
- Thread.sleep(200);
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 2);
- short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
- if (ack != 0) {
- writeAck++;
- } else {
- News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", command.getCrnNo(), "ack澶嶄綅瀹屾垚");
- ackResult = true;
- break;
+ OperateResultExOne<byte[]> commandReadResult = siemensNet.Read("DB100.0", (short) 2);
+ if (commandReadResult.IsSuccess) {
+ short commandRead = siemensNet.getByteTransform().TransInt16(commandReadResult.Content, 0);
+ if (commandRead == 1) {
+ Thread.sleep(500);
+ }else {
+ commandResult = true;
}
}
} while (writeAck < 5);
- if (!ackResult) {
- response.setMessage("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}" + command.getCrnNo() + "ack澶嶄綅澶辫触");
+ if (!commandResult) {
+ response.setMessage("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}" + command.getCrnNo() + "浠诲姟鐘舵�佷綅寮傚父");
return response;
}
- short[] array = new short[10];
- array[0] = command.getAckFinish();
+ short[] array = new short[9];
+ array[0] = (short) 0;
array[1] = command.getTaskNo();
array[2] = command.getTaskMode();
array[3] = command.getSourcePosX();
@@ -137,65 +131,49 @@
array[6] = command.getDestinationPosX();
array[7] = command.getDestinationPosY();
array[8] = command.getDestinationPosZ();
- array[9] = command.getCommand();
- OperateResult result = null;
+ OperateResult result = siemensNet.Write("DB100.0", array);
+ if (!result.IsSuccess) {
+ response.setMessage("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}" + command.getCrnNo() + "浠诲姟鐘舵�佷綅寮傚父");
+ return response;
+ }
+
int idx = 0;
do {
OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
if (resultRead.IsSuccess) {
- if (command.getAckFinish() == 0) {
- short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2);
- short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4);
- short sourcePosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 6);
- short sourcePosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 8);
- short sourcePosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10);
- short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12);
- short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14);
- short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 16);
- if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
- result = siemensNet.Write("DB100.0", array);
- } else {
- break;
- }
+ short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2);
+ short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4);
+ short sourcePosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 6);
+ short sourcePosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 8);
+ short sourcePosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10);
+ short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12);
+ short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14);
+ short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 16);
+ if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
+ result = siemensNet.Write("DB100.0", array);
} else {
- short ackFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
- if (ackFinish != command.getAckFinish()) {
- result = siemensNet.Write("DB100.0", array);
- } else {
- break;
- }
+ break;
}
}
idx++;
Thread.sleep(500);
} while (idx < 5);
- if (command.getAckFinish() == 0) {
- short commandFinish = 1;
- int i = 0;
- do {
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 4);
- OperateResultExOne<byte[]> resultReadConfirm = siemensNet.Read("DB100.18", (short) 2);
- if (resultRead.IsSuccess && resultReadConfirm.IsSuccess) {
- short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2);
- short confirm = siemensNet.getByteTransform().TransInt16(resultReadConfirm.Content, 0);
- if (taskNo != 0 && confirm == 0) {
- result = siemensNet.Write("DB100.18", commandFinish);
- }
- }
- i++;
- Thread.sleep(500);
- } while (i < 5);
+ OperateResult confirmResult = siemensNet.Write("DB100.0", (short) 1);
+ if (!confirmResult.IsSuccess) {
+ News.error("鍫嗗灈鏈哄啓鍏ョ‘璁ゆ暟鎹け璐� ===>> [id:{}]", command.getCrnNo());
+ response.setMessage("鍫嗗灈鏈哄啓鍏ョ‘璁ゆ暟鎹け璐�");
+ return response;
}
if (result != null && result.IsSuccess) {
- News.info("SiemensCrn鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", command.getCrnNo(), JSON.toJSON(command));
+ News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", command.getCrnNo(), JSON.toJSON(command));
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), command.getCrnNo(), JSON.toJSON(command)));
response.setResult(true);
response.setMessage("鍛戒护涓嬪彂鎴愬姛");
} else {
- News.error("SiemensCrn鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}]", command.getCrnNo());
+ News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}]", command.getCrnNo());
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}]", DateUtils.convert(new Date()), command.getCrnNo()));
response.setResult(false);
response.setMessage("鍛戒护涓嬪彂澶辫触");
--
Gitblit v1.9.1