From 69e489ec87a08fa0eaef37ab6c1692a9a8538fc3 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期一, 16 六月 2025 09:23:47 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SiemensCrnThread.java | 33 ++++++++++++++++++++++++++++++--- 1 files changed, 30 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java index d55ff16..654042f 100644 --- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java +++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java @@ -278,12 +278,39 @@ // array[9] = command.getSourceStaNo(); // array[10] = command.getDestinationStaNo(); array[9] = command.getCommand(); - OperateResult result = siemensNet.Write("DB100.0", array); + + OperateResult result = null; + int idx = 0; + do { + OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 4); + if (resultRead.IsSuccess) { + short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2); + if(taskNo == 0) { + result = siemensNet.Write("DB100.0", array); + }else { + break; + } + } + idx++; + Thread.sleep(500L); + } while (idx < 5); if (command.getAckFinish() == 0) { short commandFinish = 1; - Thread.sleep(100L); - result = siemensNet.Write("DB100.18", commandFinish); + 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(500L); + } while (i < 5); } try { -- Gitblit v1.9.1