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/thread/impl/ZySiemensCrnThread.java | 28 +-----
src/main/java/com/zy/core/network/entity/ZyCrnStatusEntity.java | 14 +-
src/main/java/com/zy/core/model/protocol/CrnProtocol.java | 14 +-
src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java | 14 +-
src/main/java/com/zy/core/network/real/ZyCrnRealConnect.java | 120 ++++++++++++-----------------
5 files changed, 77 insertions(+), 113 deletions(-)
diff --git a/src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java b/src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java
index a114d39..63ed0d0 100644
--- a/src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java
@@ -84,25 +84,25 @@
private String command = "";
// 璧拌閫熷害锛坢/min)
- private Integer xspeed = 0;
+ private Double xspeed = 0D;
// 鍗囬檷閫熷害锛坢/min)
- private Integer yspeed = 0;
+ private Double yspeed = 0D;
// 鍙夌墮閫熷害锛坢/min)
- private Integer zspeed = 0;
+ private Double zspeed = 0D;
// 璧拌璺濈(Km)
- private Integer xdistance = 0;
+ private Double xdistance = 0D;
// 鍗囬檷璺濈(Km)
- private Integer ydistance = 0;
+ private Double ydistance = 0D;
// 璧拌鏃堕暱(H)
- private Integer xduration = 0;
+ private Double xduration = 0D;
// 鍗囬檷鏃堕暱(H)
- private Integer yduration = 0;
+ private Double yduration = 0D;
// 璁惧鐘舵��-鐢ㄤ簬鍓嶇鏄剧ず
private String deviceStatus = "OFFLINE";
diff --git a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
index 11012ad..ffceec0 100644
--- a/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/CrnProtocol.java
@@ -104,37 +104,37 @@
/**
* X琛岃蛋绾块�熷害m/min
*/
- private Integer xSpeed;
+ private Double xSpeed;
/**
* Y琛岃蛋绾块�熷害m/min
*/
- private Integer ySpeed;
+ private Double ySpeed;
/**
* Z琛岃蛋绾块�熷害m/min
*/
- private Integer zSpeed;
+ private Double zSpeed;
/**
* 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯m
*/
- public Integer xDistance;
+ public Double xDistance;
/**
* 鍫嗗灈鏈虹疮璁″崌闄嶈窛绂籯m
*/
- public Integer yDistance;
+ public Double yDistance;
/**
* 鍫嗗灈鏈虹疮璁¤蛋琛屾椂闀縣
*/
- public Integer xDuration;
+ public Double xDuration;
/**
* 鍫嗗灈鏈虹疮璁″崌闄嶆椂闀縣
*/
- public Integer yDuration;
+ public Double yDuration;
/**
* 鏈�杩戜竴娆″叆鍑哄簱绫诲瀷
diff --git a/src/main/java/com/zy/core/network/entity/ZyCrnStatusEntity.java b/src/main/java/com/zy/core/network/entity/ZyCrnStatusEntity.java
index 470e08c..9ddfe6b 100644
--- a/src/main/java/com/zy/core/network/entity/ZyCrnStatusEntity.java
+++ b/src/main/java/com/zy/core/network/entity/ZyCrnStatusEntity.java
@@ -82,37 +82,37 @@
/**
* X琛岃蛋绾块�熷害m/min
*/
- private Integer xSpeed;
+ private Double xSpeed;
/**
* Y琛岃蛋绾块�熷害m/min
*/
- private Integer ySpeed;
+ private Double ySpeed;
/**
* Z琛岃蛋绾块�熷害m/min
*/
- private Integer zSpeed;
+ private Double zSpeed;
/**
* 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯m
*/
- public Integer xDistance;
+ public Double xDistance;
/**
* 鍫嗗灈鏈虹疮璁″崌闄嶈窛绂籯m
*/
- public Integer yDistance;
+ public Double yDistance;
/**
* 鍫嗗灈鏈虹疮璁¤蛋琛屾椂闀縣
*/
- public Integer xDuration;
+ public Double xDuration;
/**
* 鍫嗗灈鏈虹疮璁″崌闄嶆椂闀縣
*/
- public Integer yDuration;
+ public Double yDuration;
private Integer temp1;
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("鍛戒护涓嬪彂澶辫触");
diff --git a/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java b/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
index 72610b6..513fd34 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensCrnThread.java
@@ -107,13 +107,13 @@
crnProtocol.setWalkPos(0);
crnProtocol.setLoaded(0);
crnProtocol.setAlarm(0);
- crnProtocol.setXSpeed(0);
- crnProtocol.setYSpeed(0);
- crnProtocol.setZSpeed(0);
- crnProtocol.setXDistance(0);
- crnProtocol.setYDistance(0);
- crnProtocol.setXDuration(0);
- crnProtocol.setYDuration(0);
+ crnProtocol.setXSpeed(0D);
+ crnProtocol.setYSpeed(0D);
+ crnProtocol.setZSpeed(0D);
+ crnProtocol.setXDistance(0D);
+ crnProtocol.setYDistance(0D);
+ crnProtocol.setXDuration(0D);
+ crnProtocol.setYDuration(0D);
}
@Override
@@ -157,20 +157,6 @@
crnProtocol.setYDuration(crnStatus.getYDuration());
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), deviceConfig.getDeviceNo()));
-
-// // 澶嶄綅淇″彿
-// if (!Cools.isEmpty(crnProtocol.getStatusType()) && crnProtocol.getStatusType().equals(CrnStatusType.WAITING)) {
-// if (resetFlag) {
-// if(crnProtocol.getTaskNo()==9999){
-// backHpFlag = false;
-// }
-// CrnCommand crnCommand = new CrnCommand();
-// crnCommand.setAckFinish((short)1);
-// if (write(crnCommand)) {
-// resetFlag = false;
-// }
-// }
-// }
if (crnProtocol.getAlarm() > 0) {
crnProtocol.setLastCommandTime(-1L);
--
Gitblit v1.9.1