From 90cf24d60788e9228f02ffd96539d09c9b1c6bd1 Mon Sep 17 00:00:00 2001
From: skyouc <958836976@qq.com>
Date: 星期五, 06 二月 2026 17:42:11 +0800
Subject: [PATCH] 更改
---
src/main/java/com/zy/core/network/real/ZyCrnV2RealConnect.java | 35 ++++++++++++++++++++++++++++++++---
1 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/zy/core/network/real/ZyCrnV2RealConnect.java b/src/main/java/com/zy/core/network/real/ZyCrnV2RealConnect.java
index 2f7a5a0..5e577af 100644
--- a/src/main/java/com/zy/core/network/real/ZyCrnV2RealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyCrnV2RealConnect.java
@@ -109,6 +109,7 @@
Object lock = redisUtil.get(RedisKeyType.CRN_SEND_COMMAND_LOCK.key + deviceConfig.getDeviceNo());
if (lock == null) {
OperateResult taskClearResult = siemensNet.Write("DB100.0", array);
+ redisUtil.set(RedisKeyType.CLEAR_CRN_TASK_LIMIT.key + deviceConfig.getDeviceNo(), "lock", 3);
}
}
}
@@ -130,7 +131,7 @@
@Override
public CommandResponse sendCommand(CrnCommand command) {
RedisUtil redisUtil = SpringUtils.getBean(RedisUtil.class);
- redisUtil.set(RedisKeyType.CRN_SEND_COMMAND_LOCK.key + deviceConfig.getDeviceNo(), "lock", 5);
+ redisUtil.set(RedisKeyType.CRN_SEND_COMMAND_LOCK.key + deviceConfig.getDeviceNo(), "lock", 10);
CommandResponse response = new CommandResponse(false);
try {
if (null == command) {
@@ -178,6 +179,7 @@
}
int idx = 0;
+ boolean contentFlag = false;
do {
OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
if (resultRead.IsSuccess) {
@@ -192,6 +194,7 @@
if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
result = siemensNet.Write("DB100.0", array);
} else {
+ contentFlag = true;
break;
}
}
@@ -199,8 +202,33 @@
Thread.sleep(500);
} while (idx < 5);
- OperateResult confirmResult = siemensNet.Write("DB100.18", (short) 1);
- if (!confirmResult.IsSuccess) {
+ if(!contentFlag) {
+ News.error("鍫嗗灈鏈哄啓鍏ヤ换鍔℃暟鎹け璐� ===>> [id:{}]", command.getCrnNo());
+ response.setMessage("鍫嗗灈鏈哄啓鍏ヤ换鍔℃暟鎹け璐�");
+ return response;
+ }
+
+ int confirmIdx = 0;
+ boolean confirmFlag = false;
+ do {
+ OperateResult confirmResult = siemensNet.Write("DB100.18", (short) 1);
+ if (!confirmResult.IsSuccess) {
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.18", (short) 2);
+ if (resultRead.IsSuccess) {
+ short confirm = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+ if(confirm == 0) {
+ confirmResult = siemensNet.Write("DB100.18", (short) 1);
+ }else {
+ confirmFlag = true;
+ break;
+ }
+ }
+ }
+ confirmIdx++;
+ Thread.sleep(500);
+ } while (confirmIdx < 5);
+
+ if(!confirmFlag) {
News.error("鍫嗗灈鏈哄啓鍏ョ‘璁ゆ暟鎹け璐� ===>> [id:{}]", command.getCrnNo());
response.setMessage("鍫嗗灈鏈哄啓鍏ョ‘璁ゆ暟鎹け璐�");
return response;
@@ -211,6 +239,7 @@
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), command.getCrnNo(), JSON.toJSON(command)));
response.setResult(true);
response.setMessage("鍛戒护涓嬪彂鎴愬姛");
+ redisUtil.set(RedisKeyType.CRN_SEND_COMMAND_LOCK.key + deviceConfig.getDeviceNo(), "lock", 5);
} else {
News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}]", command.getCrnNo());
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}]", DateUtils.convert(new Date()), command.getCrnNo()));
--
Gitblit v1.9.1