From ad79ba405b2d1ac96423f88f4e8a76c584b9d38a Mon Sep 17 00:00:00 2001
From: zwl <1051256694@qq.com>
Date: 星期一, 09 二月 2026 15:57:06 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java |  111 ++++++++++++++++++++++++++-----------------------------
 1 files changed, 52 insertions(+), 59 deletions(-)

diff --git a/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java b/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
index cd57da7..ca224d8 100644
--- a/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
@@ -58,43 +58,33 @@
     @Override
     public ZyDualCrnStatusEntity getStatus() {
         try {
-            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 66);
+            OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 56);
             if (result.IsSuccess) {
                 ZyDualCrnStatusEntity crnStatus = new ZyDualCrnStatusEntity();
                 crnStatus.setCrnNo(deviceConfig.getDeviceNo());
-                crnStatus.setMode((int) siemensNet.getByteTransform().TransInt16(result.Content, 0));
 
-                //宸ヤ綅1
-                crnStatus.setTaskNo((int) siemensNet.getByteTransform().TransInt16(result.Content, 2));
-                crnStatus.setStatus((int) siemensNet.getByteTransform().TransInt16(result.Content, 4));
-                crnStatus.setForkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 6));
-                crnStatus.setLoaded((int) siemensNet.getByteTransform().TransInt16(result.Content, 8));
-                crnStatus.setTaskReceive((int) siemensNet.getByteTransform().TransInt16(result.Content, 10));
-
-                //宸ヤ綅2
-                crnStatus.setTaskNoTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 12));
-                crnStatus.setStatusTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 14));
-                crnStatus.setForkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 16));
-                crnStatus.setLoadedTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 18));
-                crnStatus.setTaskReceiveTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 20));
-
-                crnStatus.setBay((int) siemensNet.getByteTransform().TransInt16(result.Content, 22));
-                crnStatus.setLevel((int) siemensNet.getByteTransform().TransInt16(result.Content, 24));
-                crnStatus.setLiftPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 26));
-                crnStatus.setWalkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 28));
-                crnStatus.setAlarm((int) siemensNet.getByteTransform().TransInt16(result.Content, 30));
-                crnStatus.setTemp1((int) siemensNet.getByteTransform().TransInt16(result.Content, 34));
-                crnStatus.setTemp2((int) siemensNet.getByteTransform().TransInt16(result.Content, 36));
-                crnStatus.setTemp3((int) siemensNet.getByteTransform().TransInt16(result.Content, 38));
-                crnStatus.setTemp4((int) siemensNet.getByteTransform().TransInt16(result.Content, 40));
-                crnStatus.setXSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 42));
-                crnStatus.setYSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 44));
-                crnStatus.setZSpeed((int) siemensNet.getByteTransform().TransInt16(result.Content, 46));
-                crnStatus.setXDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 48));
-                crnStatus.setYDistance((int) siemensNet.getByteTransform().TransInt16(result.Content, 50));
-                crnStatus.setXDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 52));
-                crnStatus.setYDuration((int) siemensNet.getByteTransform().TransInt16(result.Content, 54));
-                crnStatus.setGoodsType((int) siemensNet.getByteTransform().TransInt16(result.Content, 56));
+                crnStatus.setMode((int)siemensNet.getByteTransform().TransInt16(result.Content, 0));
+                crnStatus.setTaskNo((int)siemensNet.getByteTransform().TransInt16(result.Content, 2));
+                crnStatus.setStatus((int)siemensNet.getByteTransform().TransInt16(result.Content, 4));
+                crnStatus.setBay((int)siemensNet.getByteTransform().TransInt16(result.Content, 6));
+                crnStatus.setLevel((int)siemensNet.getByteTransform().TransInt16(result.Content, 8));
+                crnStatus.setForkPos((int)siemensNet.getByteTransform().TransInt16(result.Content, 10));
+                crnStatus.setLiftPos((int)siemensNet.getByteTransform().TransInt16(result.Content, 12));
+                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().TransSingle(result.Content, 40));
+                crnStatus.setYDistance((int) siemensNet.getByteTransform().TransSingle(result.Content, 44));
+                crnStatus.setXDuration((int) siemensNet.getByteTransform().TransSingle(result.Content, 48));
+                crnStatus.setYDuration((int) siemensNet.getByteTransform().TransSingle(result.Content, 52));
+                crnStatus.setWeight(siemensNet.getByteTransform().TransSingle(result.Content, 56));
 
                 String barcode = siemensNet.getByteTransform().TransString(result.Content, 58, 8, "UTF-8");
                 crnStatus.setBarcode(barcode);
@@ -121,34 +111,37 @@
                  return response;
              }
 
+             int writeAck = 0;
+             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:{}] >>>>> {}", slave.getId(), "ack澶嶄綅瀹屾垚");
+                         break;
+                     }
+                 }
+             }while (writeAck <5);
+
              String address = "DB100.0";
-             if (command.getStation() == 1) {
-                 //宸ヤ綅1
-                 address = "DB100.0";
-             }else {
-                 //宸ヤ綅2
-                 address = "DB100.18";
-             }
 
-             String confirmAddress = "DB100.16";
-             if (command.getStation() == 1) {
-                 //宸ヤ綅1
-                 confirmAddress = "DB100.16";
-             }else {
-                 //宸ヤ綅2
-                 confirmAddress = "DB100.34";
-             }
+             String confirmAddress = "DB100.18";
 
-             short[] array = new short[9];
-             array[0] = command.getTaskNo().shortValue();
-             array[1] = command.getTaskMode().shortValue();
-             array[2] = command.getSourcePosX().shortValue();
-             array[3] = command.getSourcePosY().shortValue();
-             array[4] = command.getSourcePosZ().shortValue();
-             array[5] = command.getDestinationPosX().shortValue();
-             array[6] = command.getDestinationPosY().shortValue();
-             array[7] = command.getDestinationPosZ().shortValue();
-             array[8] = (short) 0;
+             short[] array = new short[10];
+             array[0] = 0;
+             array[1] = command.getTaskNo().shortValue();
+             array[2] = command.getTaskMode().shortValue();
+             array[3] = command.getSourcePosX().shortValue();
+             array[4] = command.getSourcePosY().shortValue();
+             array[5] = command.getSourcePosZ().shortValue();
+             array[6] = command.getDestinationPosX().shortValue();
+             array[7] = command.getDestinationPosY().shortValue();
+             array[8] = command.getDestinationPosZ().shortValue();
+             array[9] = (short) 0;
 
              OperateResult result = siemensNet.Write(address, array);
              if (!result.IsSuccess) {
@@ -159,7 +152,7 @@
 
              int idx = 0;
              do {
-                 OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 18);
+                 OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 20);
                  if (resultRead.IsSuccess) {
                     short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2);
                     short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4);

--
Gitblit v1.9.1