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 | 133 +++++++++++++++++---------------------------
1 files changed, 52 insertions(+), 81 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 debcdc4..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);
@@ -201,28 +194,6 @@
return response;
} catch (Exception e) {
e.printStackTrace();
- }finally {
- String sourceLocNo = Utils.getLocNo(command.getSourcePosX(), command.getSourcePosY(), command.getSourcePosZ());
- String targetLocNo = Utils.getLocNo(command.getDestinationPosX(), command.getDestinationPosY(), command.getDestinationPosZ());
-
- // 鏃ュ織璁板綍
- BasDualCrnpOptService bean = SpringUtils.getBean(BasDualCrnpOptService.class);
- BasDualCrnpOpt basDualCrnp = new BasDualCrnpOpt(
- command.getTaskNo(), // 浠诲姟鍙�
- command.getCrnNo(), // 鍫嗗灈鏈篬闈炵┖]
- new Date(), // 涓嬪彂鏃堕棿
- String.valueOf(command.getTaskMode()), // 妯″紡
- sourceLocNo, //婧愬簱浣�
- targetLocNo, //鐩爣搴撲綅
- null, // 淇敼鏃堕棿
- null, // 淇敼浜哄憳
- null, // 澶囨敞
- JSON.toJSONString(command), // 鎸囦护
- JSON.toJSONString(getStatus()), // 绯荤粺鐘舵��
- 1, // 涓嬪彂鐘舵�亄0:鏈笅鍙�,1:宸蹭笅鍙憓
- JSON.toJSONString(response) // 鍝嶅簲
- );
- bean.insert(basDualCrnp);
}
return response;
}
--
Gitblit v1.9.1