From e96fdab4d2a7f7aa86dec7047a3874af28ebe9de Mon Sep 17 00:00:00 2001
From: cpT <1@123>
Date: 星期三, 28 一月 2026 14:49:38 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/DualCrnController.java | 16 +-
src/main/java/com/zy/core/network/entity/ZyDualCrnStatusEntity.java | 36 +++++-
src/main/resources/map/小松地图.xlsx | 0
src/main/java/com/zy/asrs/ws/ConsoleWebSocket.java | 7 -
src/main/java/com/zy/core/enums/DualCrnTaskModeType.java | 6
src/main/java/com/zy/asrs/domain/vo/DualCrnStateTableVo.java | 14 +-
src/main/java/com/zy/core/model/protocol/DualCrnProtocol.java | 14 +-
src/main/java/com/zy/asrs/controller/CrnController.java | 14 +-
src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java | 23 +++-
src/main/java/com/zy/asrs/domain/vo/CrnStateTableVo.java | 14 +-
src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java | 129 ++++++++++++++++++-------
src/main/java/com/zy/core/enums/DualCrnStatusType.java | 5
12 files changed, 182 insertions(+), 96 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index f0e15a4..cacd496 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -74,13 +74,13 @@
vo.setForkOffset(crnProtocol.getForkPosType().desc); // 璐у弶浣嶇疆
vo.setLiftPos(crnProtocol.getLiftPosType().desc);
vo.setWalkPos(crnProtocol.getWalkPos() == 1 ? "涓嶅湪瀹氫綅" : "鍦ㄥ畾浣�");
- vo.setXspeed(crnProtocol.getXSpeed()); // 璧拌閫熷害锛坢/min)
- vo.setYspeed(crnProtocol.getYSpeed()); // 鍗囬檷閫熷害锛坢/min)
- vo.setZspeed(crnProtocol.getZSpeed()); // 鍙夌墮閫熷害锛坢/min)
- vo.setXdistance(crnProtocol.getXDistance()); // 璧拌璺濈(Km)
- vo.setYdistance(crnProtocol.getYDistance()); // 鍗囬檷璺濈(Km)
- vo.setXduration(crnProtocol.getXDuration()); // 璧拌鏃堕暱(H)
- vo.setYduration(crnProtocol.getYDuration()); // 鍗囬檷鏃堕暱(H)
+ vo.setXspeed(String.format("%.2f", crnProtocol.getXSpeed())); // 璧拌閫熷害锛坢/min)
+ vo.setYspeed(String.format("%.2f", crnProtocol.getYSpeed())); // 鍗囬檷閫熷害锛坢/min)
+ vo.setZspeed(String.format("%.2f", crnProtocol.getZSpeed())); // 鍙夌墮閫熷害锛坢/min)
+ vo.setXdistance(String.format("%.2f", crnProtocol.getXDistance())); // 璧拌璺濈(Km)
+ vo.setYdistance(String.format("%.2f", crnProtocol.getYDistance())); // 鍗囬檷璺濈(Km)
+ vo.setXduration(String.format("%.2f", crnProtocol.getXDuration())); // 璧拌鏃堕暱(H)
+ vo.setYduration(String.format("%.2f", crnProtocol.getYDuration())); // 鍗囬檷鏃堕暱(H)
vo.setTaskReceive(crnProtocol.getTaskReceive());
if (crnProtocol.getModeType().equals(CrnModeType.AUTO)) {
diff --git a/src/main/java/com/zy/asrs/controller/DualCrnController.java b/src/main/java/com/zy/asrs/controller/DualCrnController.java
index 1d9123d..3a75fb3 100644
--- a/src/main/java/com/zy/asrs/controller/DualCrnController.java
+++ b/src/main/java/com/zy/asrs/controller/DualCrnController.java
@@ -21,6 +21,7 @@
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
+import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.List;
@@ -63,13 +64,14 @@
vo.setWalkPos(p.getWalkPos() != null && p.getWalkPos() == 0 ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅");
vo.setTaskReceive(p.getTaskReceive() != null && p.getTaskReceive() == 1 ? "鎺ユ敹" : "鏃犱换鍔�");
vo.setTaskReceiveTwo(p.getTaskReceiveTwo() != null && p.getTaskReceiveTwo() == 1 ? "鎺ユ敹" : "鏃犱换鍔�");
- vo.setXspeed(p.getXSpeed());
- vo.setYspeed(p.getYSpeed());
- vo.setZspeed(p.getZSpeed());
- vo.setXdistance(p.getXDistance());
- vo.setYdistance(p.getYDistance());
- vo.setXduration(p.getXDuration());
- vo.setYduration(p.getYDuration());
+
+ vo.setXspeed(String.format("%.2f", p.getXSpeed()));
+ vo.setYspeed(String.format("%.2f", p.getYSpeed()));
+ vo.setZspeed(String.format("%.2f", p.getZSpeed()));
+ vo.setXdistance(String.format("%.2f", p.getXDistance()));
+ vo.setYdistance(String.format("%.2f", p.getYDistance()));
+ vo.setXduration(String.format("%.2f", p.getXDuration()));
+ vo.setYduration(String.format("%.2f", p.getYDuration()));
vo.setWarnCode(p.getAlarm() == null ? "-" : String.valueOf(p.getAlarm()));
if (p.getAlarm() != null && p.getAlarm() > 0) {
vo.setDeviceStatus("ERROR");
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 0f0e4b0..789048e 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 Double xspeed = 0D;
+ private String xspeed = "-";
// 鍗囬檷閫熷害锛坢/min)
- private Double yspeed = 0D;
+ private String yspeed = "-";
// 鍙夌墮閫熷害锛坢/min)
- private Double zspeed = 0D;
+ private String zspeed = "-";
// 璧拌璺濈(Km)
- private Double xdistance = 0D;
+ private String xdistance = "-";
// 鍗囬檷璺濈(Km)
- private Double ydistance = 0D;
+ private String ydistance = "-";
// 璧拌鏃堕暱(H)
- private Double xduration = 0D;
+ private String xduration = "-";
// 鍗囬檷鏃堕暱(H)
- private Double yduration = 0D;
+ private String yduration = "-";
private Integer taskReceive;
diff --git a/src/main/java/com/zy/asrs/domain/vo/DualCrnStateTableVo.java b/src/main/java/com/zy/asrs/domain/vo/DualCrnStateTableVo.java
index e3dceab..0da191a 100644
--- a/src/main/java/com/zy/asrs/domain/vo/DualCrnStateTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/DualCrnStateTableVo.java
@@ -39,19 +39,19 @@
private String walkPos = "-";
- private Integer xspeed = 0;
+ private String xspeed = "-";
- private Integer yspeed = 0;
+ private String yspeed = "-";
- private Integer zspeed = 0;
+ private String zspeed = "-";
- private Integer xdistance = 0;
+ private String xdistance = "-";
- private Integer ydistance = 0;
+ private String ydistance = "-";
- private Integer xduration = 0;
+ private String xduration = "-";
- private Integer yduration = 0;
+ private String yduration = "-";
private String deviceStatus = "OFFLINE";
}
diff --git a/src/main/java/com/zy/asrs/ws/ConsoleWebSocket.java b/src/main/java/com/zy/asrs/ws/ConsoleWebSocket.java
index debac09..6d3a357 100644
--- a/src/main/java/com/zy/asrs/ws/ConsoleWebSocket.java
+++ b/src/main/java/com/zy/asrs/ws/ConsoleWebSocket.java
@@ -5,10 +5,7 @@
import com.alibaba.fastjson.JSONObject;
import com.core.common.R;
import com.core.common.SpringUtils;
-import com.zy.asrs.controller.CrnController;
-import com.zy.asrs.controller.RgvController;
-import com.zy.asrs.controller.BasMapController;
-import com.zy.asrs.controller.ConsoleController;
+import com.zy.asrs.controller.*;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
@@ -111,7 +108,7 @@
} else if ("/rgv/table/rgv/state".equals(url)) {
resObj = SpringUtils.getBean(RgvController.class).rgvStateTable();
} else if ("/dualcrn/table/crn/state".equals(url)) {
- resObj = SpringUtils.getBean(com.zy.asrs.controller.DualCrnController.class).dualCrnStateTable();
+ resObj = SpringUtils.getBean(DualCrnController.class).dualCrnStateTable();
}
} catch (Exception e) {
R err = R.error(e.getMessage());
diff --git a/src/main/java/com/zy/core/enums/DualCrnStatusType.java b/src/main/java/com/zy/core/enums/DualCrnStatusType.java
index ad30097..d3a5163 100644
--- a/src/main/java/com/zy/core/enums/DualCrnStatusType.java
+++ b/src/main/java/com/zy/core/enums/DualCrnStatusType.java
@@ -13,9 +13,8 @@
ORIGIN_GO(7, "鍥炲師鐐�"),
ORIGIN_BACK(8, "鍥炲弽鍘熺偣"),
MOVING(9, "璧拌涓�"),
- WAITING(90, "浠诲姟瀹屾垚绛夊緟WCS纭"),
- PAUSE(11, "浠诲姟鏆傚仠"),
- SOS(99, "鎶ヨ"),
+ WAITING(99, "浠诲姟瀹屾垚绛夊緟WCS纭"),
+ SOS(98, "鎶ヨ"),
UNKNOW(100, "鍏朵粬"),
;
diff --git a/src/main/java/com/zy/core/enums/DualCrnTaskModeType.java b/src/main/java/com/zy/core/enums/DualCrnTaskModeType.java
index bc62cc4..66e2cdd 100644
--- a/src/main/java/com/zy/core/enums/DualCrnTaskModeType.java
+++ b/src/main/java/com/zy/core/enums/DualCrnTaskModeType.java
@@ -3,11 +3,11 @@
public enum DualCrnTaskModeType {
NONE(0), // 鏃�
- PICK(1), // 鍙栬揣
- PUT(2), // 鏀捐揣
+ PICK(11), // 鍙栬揣
+ PUT(12), // 鏀捐揣
TRANSFER(3), // 鍙栨斁璐�
MOVE(4), // 绉诲姩
- CONFIRM(5), // 纭
+ CONFIRM(13), // 纭
;
public Integer id;
diff --git a/src/main/java/com/zy/core/model/protocol/DualCrnProtocol.java b/src/main/java/com/zy/core/model/protocol/DualCrnProtocol.java
index e8b5eb6..44440a4 100644
--- a/src/main/java/com/zy/core/model/protocol/DualCrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/DualCrnProtocol.java
@@ -157,37 +157,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 goodsType;
diff --git a/src/main/java/com/zy/core/network/entity/ZyDualCrnStatusEntity.java b/src/main/java/com/zy/core/network/entity/ZyDualCrnStatusEntity.java
index 33f12eb..33dd5f3 100644
--- a/src/main/java/com/zy/core/network/entity/ZyDualCrnStatusEntity.java
+++ b/src/main/java/com/zy/core/network/entity/ZyDualCrnStatusEntity.java
@@ -78,9 +78,19 @@
public Integer bay;
/**
+ * 鍫嗗灈鏈哄綋鍓嶅垪鍙�
+ */
+ public Integer bayTwo;
+
+ /**
* 鍫嗗灈鏈哄綋鍓嶅眰鍙�
*/
public Integer level;
+
+ /**
+ * 鍫嗗灈鏈哄綋鍓嶅眰鍙�
+ */
+ public Integer levelTwo;
/**
* 褰撳墠杞借揣鍙颁綅缃�
@@ -97,39 +107,51 @@
public Integer walkPos;
/**
+ * 璧拌鍦ㄥ畾浣�
+ * 0 = 鍦ㄥ畾浣�
+ * 1 = 涓嶅湪瀹氫綅
+ */
+ public Integer walkPosTwo;
+
+ /**
* 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;
+
+ /**
+ * Z琛岃蛋绾块�熷害m/min
+ */
+ private Double zSpeedTwo;
/**
* 鍫嗗灈鏈虹疮璁¤蛋琛岃窛绂籯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/ZyDualCrnRealConnect.java b/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
index cd57da7..c6a49ee 100644
--- a/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
@@ -58,7 +58,7 @@
@Override
public ZyDualCrnStatusEntity getStatus() {
try {
- OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 66);
+ OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 70);
if (result.IsSuccess) {
ZyDualCrnStatusEntity crnStatus = new ZyDualCrnStatusEntity();
crnStatus.setCrnNo(deviceConfig.getDeviceNo());
@@ -67,37 +67,94 @@
//宸ヤ綅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));
+ 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.setLoaded((int) siemensNet.getByteTransform().TransInt16(result.Content, 12));
+ crnStatus.setTaskReceive((int) siemensNet.getByteTransform().TransInt16(result.Content, 14));
//宸ヤ綅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.setTaskNoTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 16));
+ crnStatus.setStatusTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 18));
+ crnStatus.setBayTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 20));
+ crnStatus.setLevelTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 22));
+ crnStatus.setForkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 24));
+ crnStatus.setLoadedTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 26));
+ crnStatus.setTaskReceiveTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 28));
- 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.setWalkPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 30));
+ crnStatus.setWalkPosTwo((int) siemensNet.getByteTransform().TransInt16(result.Content, 32));
+ crnStatus.setLiftPos((int) siemensNet.getByteTransform().TransInt16(result.Content, 34));
+ crnStatus.setAlarm((int) siemensNet.getByteTransform().TransInt16(result.Content, 36));
+ crnStatus.setXSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 38));
+ crnStatus.setYSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 42));
+ crnStatus.setZSpeed((double) siemensNet.getByteTransform().TransSingle(result.Content, 46));
+ crnStatus.setZSpeedTwo((double) siemensNet.getByteTransform().TransSingle(result.Content, 50));
+ crnStatus.setXDistance((double) siemensNet.getByteTransform().TransSingle(result.Content, 54));
+ crnStatus.setYDistance((double) siemensNet.getByteTransform().TransSingle(result.Content, 58));
+ crnStatus.setXDuration((double) siemensNet.getByteTransform().TransSingle(result.Content, 62));
+ crnStatus.setYDuration((double) siemensNet.getByteTransform().TransSingle(result.Content, 66));
- String barcode = siemensNet.getByteTransform().TransString(result.Content, 58, 8, "UTF-8");
- crnStatus.setBarcode(barcode);
+ if (crnStatus.getStatus() == 0 && crnStatus.getTaskReceive() == 0) {
+ OperateResultExOne<byte[]> taskResult = siemensNet.Read("DB100.0", (short) 18);
+ if (taskResult.IsSuccess) {
+ short taskNo = siemensNet.getByteTransform().TransInt16(taskResult.Content, 0);
+ short taskMode = siemensNet.getByteTransform().TransInt16(taskResult.Content, 2);
+ short sourcePosX = siemensNet.getByteTransform().TransInt16(taskResult.Content, 4);
+ short sourcePosY = siemensNet.getByteTransform().TransInt16(taskResult.Content, 6);
+ short sourcePosZ = siemensNet.getByteTransform().TransInt16(taskResult.Content, 8);
+ short destinationPosX = siemensNet.getByteTransform().TransInt16(taskResult.Content, 10);
+ short destinationPosY = siemensNet.getByteTransform().TransInt16(taskResult.Content, 12);
+ short destinationPosZ = siemensNet.getByteTransform().TransInt16(taskResult.Content, 14);
+ short confirm = siemensNet.getByteTransform().TransInt16(taskResult.Content, 16);
+
+ if(taskNo != 0 || taskMode != 0 || sourcePosX != 0 || sourcePosY != 0 || sourcePosZ != 0 || destinationPosX != 0 || destinationPosY != 0 || destinationPosZ != 0 || confirm != 0) {
+ short[] array = new short[10];
+ array[0] = (short) 0;
+ array[1] = (short) 0;
+ array[2] = (short) 0;
+ array[3] = (short) 0;
+ array[4] = (short) 0;
+ array[5] = (short) 0;
+ array[6] = (short) 0;
+ array[7] = (short) 0;
+ array[8] = (short) 0;
+ array[9] = (short) 0;
+ OperateResult taskClearResult = siemensNet.Write("DB100.0", array);
+ }
+ }
+ }
+
+ if (crnStatus.getStatusTwo() == 0 && crnStatus.getTaskReceiveTwo() == 0) {
+ OperateResultExOne<byte[]> taskResult = siemensNet.Read("DB100.18", (short) 18);
+ if (taskResult.IsSuccess) {
+ short taskNo = siemensNet.getByteTransform().TransInt16(taskResult.Content, 0);
+ short taskMode = siemensNet.getByteTransform().TransInt16(taskResult.Content, 2);
+ short sourcePosX = siemensNet.getByteTransform().TransInt16(taskResult.Content, 4);
+ short sourcePosY = siemensNet.getByteTransform().TransInt16(taskResult.Content, 6);
+ short sourcePosZ = siemensNet.getByteTransform().TransInt16(taskResult.Content, 8);
+ short destinationPosX = siemensNet.getByteTransform().TransInt16(taskResult.Content, 10);
+ short destinationPosY = siemensNet.getByteTransform().TransInt16(taskResult.Content, 12);
+ short destinationPosZ = siemensNet.getByteTransform().TransInt16(taskResult.Content, 14);
+ short confirm = siemensNet.getByteTransform().TransInt16(taskResult.Content, 16);
+
+ if(taskNo != 0 || taskMode != 0 || sourcePosX != 0 || sourcePosY != 0 || sourcePosZ != 0 || destinationPosX != 0 || destinationPosY != 0 || destinationPosZ != 0 || confirm != 0) {
+ short[] array = new short[10];
+ array[0] = (short) 0;
+ array[1] = (short) 0;
+ array[2] = (short) 0;
+ array[3] = (short) 0;
+ array[4] = (short) 0;
+ array[5] = (short) 0;
+ array[6] = (short) 0;
+ array[7] = (short) 0;
+ array[8] = (short) 0;
+ array[9] = (short) 0;
+ OperateResult taskClearResult = siemensNet.Write("DB100.18", array);
+ }
+ }
+ }
+
return crnStatus;
} else {
OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧弻宸ヤ綅鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
@@ -161,14 +218,14 @@
do {
OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 18);
if (resultRead.IsSuccess) {
- 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);
+ short taskNo = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+ short taskMode = siemensNet.getByteTransform().TransInt16(resultRead.Content, 2);
+ short sourcePosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 4);
+ short sourcePosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 6);
+ short sourcePosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 8);
+ short destinationPosX = siemensNet.getByteTransform().TransInt16(resultRead.Content, 10);
+ short destinationPosY = siemensNet.getByteTransform().TransInt16(resultRead.Content, 12);
+ short destinationPosZ = siemensNet.getByteTransform().TransInt16(resultRead.Content, 14);
if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
result = siemensNet.Write(address, array);
} else {
diff --git a/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java b/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
index 5f6a962..a9eb174 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
@@ -251,13 +251,13 @@
crnProtocol.setLiftPosTwo(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);
BasDualCrnpService basDualCrnpService = null;
try {
@@ -430,6 +430,9 @@
crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo(taskNo); // 宸ヤ綔鍙�
crnCommand.setTaskMode(DualCrnTaskModeType.PICK.id); // 浠诲姟妯″紡: 鍙栬揣
+ crnCommand.setSourcePosX(Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
+ crnCommand.setSourcePosY(Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
+ crnCommand.setSourcePosZ(Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
crnCommand.setDestinationPosX(Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
@@ -444,6 +447,9 @@
crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo(taskNo); // 宸ヤ綔鍙�
crnCommand.setTaskMode(DualCrnTaskModeType.PUT.id); // 浠诲姟妯″紡: 鏀捐揣
+ crnCommand.setSourcePosX(Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
+ crnCommand.setSourcePosY(Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
+ crnCommand.setSourcePosZ(Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
crnCommand.setDestinationPosX(Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
@@ -458,6 +464,9 @@
crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo(taskNo); // 宸ヤ綔鍙�
crnCommand.setTaskMode(DualCrnTaskModeType.MOVE.id); // 浠诲姟妯″紡: 鍫嗗灈鏈虹Щ鍔�
+ crnCommand.setSourcePosX(Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
+ crnCommand.setSourcePosY(Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
+ crnCommand.setSourcePosZ(Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
crnCommand.setDestinationPosX(Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
diff --git "a/src/main/resources/map/\345\260\217\346\235\276\345\234\260\345\233\276.xlsx" "b/src/main/resources/map/\345\260\217\346\235\276\345\234\260\345\233\276.xlsx"
new file mode 100644
index 0000000..58fed38
--- /dev/null
+++ "b/src/main/resources/map/\345\260\217\346\235\276\345\234\260\345\233\276.xlsx"
Binary files differ
--
Gitblit v1.9.1