From a3d44470b704e81d4f66399bed2f37529ddb31be Mon Sep 17 00:00:00 2001
From: Junjie <DELL@qq.com>
Date: 星期四, 25 十二月 2025 13:53:32 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/asrs/controller/DualCrnController.java | 39 ++
src/main/java/com/zy/core/model/command/DualCrnCommand.java | 13
src/main/java/com/zy/core/network/fake/ZyDualCrnFakeConnect.java | 88 ++++++
src/main/java/com/zy/core/enums/DualCrnModeType.java | 42 +++
src/main/java/com/zy/asrs/domain/vo/DualCrnStateTableVo.java | 4
src/main/java/com/zy/asrs/controller/BasDualCrnpController.java | 1
src/main/java/com/zy/asrs/entity/BasDualCrnp.java | 2
src/main/java/com/zy/core/enums/DualCrnForkPosType.java | 43 +++
src/main/java/com/zy/core/model/protocol/DualCrnProtocol.java | 74 +++--
src/main/webapp/components/WatchDualCrnCard.js | 54 +++
src/main/java/com/zy/core/thread/DualCrnThread.java | 4
src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java | 259 +++++++++---------
src/main/java/com/zy/core/enums/DualCrnLiftPosType.java | 44 +++
src/main/java/com/zy/asrs/controller/ConsoleController.java | 10
src/main/java/com/zy/core/network/entity/ZyDualCrnStatusEntity.java | 9
src/main/java/com/zy/core/enums/DualCrnTaskModeType.java | 42 +++
src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java | 40 ++
src/main/java/com/zy/core/enums/DualCrnStatusType.java | 52 +++
18 files changed, 625 insertions(+), 195 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/BasDualCrnpController.java b/src/main/java/com/zy/asrs/controller/BasDualCrnpController.java
index a53b3ae..b64a3e6 100644
--- a/src/main/java/com/zy/asrs/controller/BasDualCrnpController.java
+++ b/src/main/java/com/zy/asrs/controller/BasDualCrnpController.java
@@ -1,6 +1,5 @@
package com.zy.asrs.controller;
-import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
diff --git a/src/main/java/com/zy/asrs/controller/ConsoleController.java b/src/main/java/com/zy/asrs/controller/ConsoleController.java
index 5ad5b40..466a081 100644
--- a/src/main/java/com/zy/asrs/controller/ConsoleController.java
+++ b/src/main/java/com/zy/asrs/controller/ConsoleController.java
@@ -20,11 +20,7 @@
import com.zy.common.CodeRes;
import com.zy.common.utils.RedisUtil;
import com.zy.core.cache.SlaveConnection;
-import com.zy.core.enums.CrnModeType;
-import com.zy.core.enums.RedisKeyType;
-import com.zy.core.enums.RgvStatusType;
-import com.zy.core.enums.SlaveType;
-import com.zy.core.enums.WrkIoType;
+import com.zy.core.enums.*;
import com.zy.core.model.protocol.CrnProtocol;
import com.zy.core.model.protocol.DualCrnProtocol;
import com.zy.core.model.protocol.StationProtocol;
@@ -230,9 +226,9 @@
vo.setCrnStatus(CrnStatusType.MACHINE_ERROR);
} else {
if (taskNo != null && taskNo > 0) {
- vo.setCrnStatus(p.getModeType() == CrnModeType.AUTO ? CrnStatusType.MACHINE_AUTO : CrnStatusType.MACHINE_UN_AUTO);
+ vo.setCrnStatus(p.getModeType() == DualCrnModeType.AUTO ? CrnStatusType.MACHINE_AUTO : CrnStatusType.MACHINE_UN_AUTO);
} else {
- vo.setCrnStatus(p.getModeType() == CrnModeType.AUTO ? CrnStatusType.MACHINE_AUTO : CrnStatusType.MACHINE_UN_AUTO);
+ vo.setCrnStatus(p.getModeType() == DualCrnModeType.AUTO ? CrnStatusType.MACHINE_AUTO : CrnStatusType.MACHINE_UN_AUTO);
}
}
vos.add(vo);
diff --git a/src/main/java/com/zy/asrs/controller/DualCrnController.java b/src/main/java/com/zy/asrs/controller/DualCrnController.java
index b33e029..599eb45 100644
--- a/src/main/java/com/zy/asrs/controller/DualCrnController.java
+++ b/src/main/java/com/zy/asrs/controller/DualCrnController.java
@@ -65,6 +65,8 @@
vo.setLiftPosTwo(p.getLiftPosTypeTwo() == null ? "-" : p.getLiftPosTypeTwo().desc);
vo.setWalkPos(p.getWalkPos() != null && p.getWalkPos() == 0 ? "鍦ㄥ畾浣�" : "涓嶅湪瀹氫綅");
vo.setWalkPosTwo(p.getWalkPosTwo() != null && p.getWalkPosTwo() == 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());
@@ -105,6 +107,43 @@
return R.ok();
}
+ @PostMapping("/dualcrn/command/pick")
+ @ManagerAuth(memo = "鍙屽伐浣嶅爢鍨涙満鍙栬揣鍛戒护")
+ public R dualCrnCommandPick(@RequestBody DualCrnCommandParam param) {
+ if (Cools.isEmpty(param)) {
+ return R.error("缂哄皯鍙傛暟");
+ }
+ Integer crnNo = param.getCrnNo();
+ String targetLocNo = param.getTargetLocNo();
+ Integer station = param.getStation();
+ DualCrnThread crnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, crnNo);
+ if (crnThread == null) {
+ return R.error("绾跨▼涓嶅瓨鍦�");
+ }
+ DualCrnCommand command = crnThread.getPickCommand(targetLocNo, 9999, crnNo, station);
+ MessageQueue.offer(SlaveType.DualCrn, crnNo, new Task(2, command));
+ return R.ok();
+ }
+
+ @PostMapping("/dualcrn/command/put")
+ @ManagerAuth(memo = "鍙屽伐浣嶅爢鍨涙満鏀捐揣鍛戒护")
+ public R dualCrnCommandPut(@RequestBody DualCrnCommandParam param) {
+ if (Cools.isEmpty(param)) {
+ return R.error("缂哄皯鍙傛暟");
+ }
+ Integer crnNo = param.getCrnNo();
+ String targetLocNo = param.getTargetLocNo();
+ Integer station = param.getStation();
+ DualCrnThread crnThread = (DualCrnThread) SlaveConnection.get(SlaveType.DualCrn, crnNo);
+ if (crnThread == null) {
+ return R.error("绾跨▼涓嶅瓨鍦�");
+ }
+ DualCrnCommand command = crnThread.getPutCommand(targetLocNo, 9999, crnNo, station);
+ MessageQueue.offer(SlaveType.DualCrn, crnNo, new Task(2, command));
+ return R.ok();
+ }
+
+
@PostMapping("/dualcrn/command/move")
@ManagerAuth(memo = "鍙屽伐浣嶅爢鍨涙満绉诲姩鍛戒护")
public R dualCrnCommandMove(@RequestBody DualCrnCommandParam param) {
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 7c00f96..34ae94e 100644
--- a/src/main/java/com/zy/asrs/domain/vo/DualCrnStateTableVo.java
+++ b/src/main/java/com/zy/asrs/domain/vo/DualCrnStateTableVo.java
@@ -43,6 +43,10 @@
private String walkPosTwo = "-";
+ private String taskReceive = "-";
+
+ private String taskReceiveTwo = "-";
+
private Integer xspeed = 0;
private Integer yspeed = 0;
diff --git a/src/main/java/com/zy/asrs/entity/BasDualCrnp.java b/src/main/java/com/zy/asrs/entity/BasDualCrnp.java
index aa3345a..74f1027 100644
--- a/src/main/java/com/zy/asrs/entity/BasDualCrnp.java
+++ b/src/main/java/com/zy/asrs/entity/BasDualCrnp.java
@@ -6,8 +6,6 @@
import java.text.SimpleDateFormat;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
-import java.text.SimpleDateFormat;
-import java.util.Date;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
diff --git a/src/main/java/com/zy/core/enums/DualCrnForkPosType.java b/src/main/java/com/zy/core/enums/DualCrnForkPosType.java
new file mode 100644
index 0000000..b91aada
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/DualCrnForkPosType.java
@@ -0,0 +1,43 @@
+package com.zy.core.enums;
+
+public enum DualCrnForkPosType {
+
+ NONE(-1, "涓嶅湪瀹氫綅"), // 璐у弶鍘熶綅
+ HOME(0, "璐у弶鍘熶綅"), // 璐у弶鍘熶綅
+ LEFT(1, "璐у弶鍦ㄥ乏渚�"), // 璐у弶鍦ㄥ乏渚�
+ RIGHT(2, "璐у弶鍦ㄥ彸渚�"), // 璐у弶鍦ㄥ彸渚�
+ _LEFT(3, "璐у弶鍦ㄥ乏渚ц繙"), // 璐у弶鍦ㄥ彸渚ц繙
+ _RIGHT(4, "璐у弶鍦ㄥ彸渚ц繙"), // 璐у弶鍦ㄥ彸渚ц繙
+ ;
+
+ public Integer id;
+ public String desc;
+ DualCrnForkPosType(Integer id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public static DualCrnForkPosType get(Integer id) {
+ if (null == id) {
+ return null;
+ }
+ for (DualCrnForkPosType type : DualCrnForkPosType.values()) {
+ if (type.id.equals(id)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static DualCrnForkPosType get(DualCrnForkPosType type) {
+ if (null == type) {
+ return null;
+ }
+ for (DualCrnForkPosType crnForkPosType : DualCrnForkPosType.values()) {
+ if (crnForkPosType == type) {
+ return crnForkPosType;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/zy/core/enums/DualCrnLiftPosType.java b/src/main/java/com/zy/core/enums/DualCrnLiftPosType.java
new file mode 100644
index 0000000..dba8306
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/DualCrnLiftPosType.java
@@ -0,0 +1,44 @@
+package com.zy.core.enums;
+
+public enum DualCrnLiftPosType {
+
+ ERROR(-1, "鏈煡"), // 涓嶅湪瀹氫綅
+ NONE(0, "涓嶅湪瀹氫綅"), // 涓嶅湪瀹氫綅
+ _DOWN(1, "鍙屾繁浣庝綅"), //
+ DOWN(2, "鍗曟繁浣庝綅"), //
+ _UP(3, "鍗曟繁楂樹綅"), //
+ UP(4, "鍙屾繁楂樹綅"), //
+ ;
+
+ public Integer id;
+ public String desc;
+ DualCrnLiftPosType(Integer id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public static DualCrnLiftPosType get(Integer id) {
+ if (null == id) {
+ return null;
+ }
+ for (DualCrnLiftPosType type : DualCrnLiftPosType.values()) {
+ if (type.id.equals(id)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static DualCrnLiftPosType get(DualCrnLiftPosType type) {
+ if (null == type) {
+ return null;
+ }
+ for (DualCrnLiftPosType crnLiftPosType : DualCrnLiftPosType.values()) {
+ if (crnLiftPosType == type) {
+ return crnLiftPosType;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/zy/core/enums/DualCrnModeType.java b/src/main/java/com/zy/core/enums/DualCrnModeType.java
new file mode 100644
index 0000000..639e6ad
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/DualCrnModeType.java
@@ -0,0 +1,42 @@
+package com.zy.core.enums;
+
+public enum DualCrnModeType {
+
+ NONE(-1, "绂荤嚎"),
+ STOP(0, "缁翠慨"),
+ HAND(1, "鎵嬪姩"),
+ HALF_AUTO(2, "鍗婅嚜鍔�"),
+ AUTO(3, "鑷姩"),
+ ;
+
+ public Integer id;
+ public String desc;
+ DualCrnModeType(Integer id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public static DualCrnModeType get(Integer id) {
+ if (null == id) {
+ return null;
+ }
+ for (DualCrnModeType type : DualCrnModeType.values()) {
+ if (type.id.equals(id)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static DualCrnModeType get(DualCrnModeType type) {
+ if (null == type) {
+ return null;
+ }
+ for (DualCrnModeType crnModeType : DualCrnModeType.values()) {
+ if (crnModeType == type) {
+ return crnModeType;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/zy/core/enums/DualCrnStatusType.java b/src/main/java/com/zy/core/enums/DualCrnStatusType.java
new file mode 100644
index 0000000..ad30097
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/DualCrnStatusType.java
@@ -0,0 +1,52 @@
+package com.zy.core.enums;
+
+public enum DualCrnStatusType {
+
+ NONE(-1, "绂荤嚎"),
+ IDLE(0, "绌洪棽"),
+ FETCH_MOVING(1, "鍙栬揣琛岃蛋"),
+ FETCH_WAITING(2, "鍙栬揣绛夊緟"),
+ FETCHING(3, "鍙栬揣涓�"),
+ PUT_MOVING(4, "鏀捐揣璧拌"),
+ PUT_WAITING(5, "鏀捐揣绛夊緟"),
+ PUTTING(6, "鏀捐揣涓�"),
+ ORIGIN_GO(7, "鍥炲師鐐�"),
+ ORIGIN_BACK(8, "鍥炲弽鍘熺偣"),
+ MOVING(9, "璧拌涓�"),
+ WAITING(90, "浠诲姟瀹屾垚绛夊緟WCS纭"),
+ PAUSE(11, "浠诲姟鏆傚仠"),
+ SOS(99, "鎶ヨ"),
+ UNKNOW(100, "鍏朵粬"),
+ ;
+
+ public Integer id;
+ public String desc;
+ DualCrnStatusType(Integer id, String desc) {
+ this.id = id;
+ this.desc = desc;
+ }
+
+ public static DualCrnStatusType get(Integer id) {
+ if (null == id) {
+ return null;
+ }
+ for (DualCrnStatusType type : DualCrnStatusType.values()) {
+ if (type.id.equals(id)) {
+ return type;
+ }
+ }
+ return NONE;
+ }
+
+ public static DualCrnStatusType get(DualCrnStatusType type) {
+ if (null == type) {
+ return null;
+ }
+ for (DualCrnStatusType crnStatusType : DualCrnStatusType.values()) {
+ if (crnStatusType == type) {
+ return crnStatusType;
+ }
+ }
+ return null;
+ }
+}
diff --git a/src/main/java/com/zy/core/enums/DualCrnTaskModeType.java b/src/main/java/com/zy/core/enums/DualCrnTaskModeType.java
new file mode 100644
index 0000000..bc62cc4
--- /dev/null
+++ b/src/main/java/com/zy/core/enums/DualCrnTaskModeType.java
@@ -0,0 +1,42 @@
+package com.zy.core.enums;
+
+public enum DualCrnTaskModeType {
+
+ NONE(0), // 鏃�
+ PICK(1), // 鍙栬揣
+ PUT(2), // 鏀捐揣
+ TRANSFER(3), // 鍙栨斁璐�
+ MOVE(4), // 绉诲姩
+ CONFIRM(5), // 纭
+ ;
+
+ public Integer id;
+ DualCrnTaskModeType(Integer id) {
+ this.id = id;
+ }
+
+ public static DualCrnTaskModeType get(Integer id) {
+ if (null == id) {
+ return null;
+ }
+ for (DualCrnTaskModeType type : DualCrnTaskModeType.values()) {
+ if (type.id.equals(id)) {
+ return type;
+ }
+ }
+ return null;
+ }
+
+ public static DualCrnTaskModeType get(DualCrnTaskModeType type) {
+ if (null == type) {
+ return null;
+ }
+ for (DualCrnTaskModeType crnTaskModeType : DualCrnTaskModeType.values()) {
+ if (crnTaskModeType == type) {
+ return crnTaskModeType;
+ }
+ }
+ return null;
+ }
+
+}
diff --git a/src/main/java/com/zy/core/model/command/DualCrnCommand.java b/src/main/java/com/zy/core/model/command/DualCrnCommand.java
index 379ed38..73599da 100644
--- a/src/main/java/com/zy/core/model/command/DualCrnCommand.java
+++ b/src/main/java/com/zy/core/model/command/DualCrnCommand.java
@@ -11,24 +11,11 @@
// 鍫嗗灈鏈哄彿
private Integer crnNo = 0;
- // 浠诲姟瀹屾垚纭浣�
- private Short ackFinish = 0;
-
// 浠诲姟鍙�
private Short taskNo = 0;
/**
* 浠诲姟妯″紡锛�
- * 0 = 鏃�
- * 1 = 鍏ュ簱 婧愬拰鐩爣閮藉彂
- * 2 = 鍑哄簱 婧愬拰鐩爣閮藉彂
- * 3 = 搴撲綅绉昏浆 婧愬拰鐩爣閮藉彂
- * 4 = 绔欎綅绉昏浆 婧愬拰鐩爣閮藉彂
- * 5 = 鍥炲師鐐� 涓嶇敤鍙�
- * 6 = 鍘诲弽鍘熺偣 鐩爣鍙�
- * 7 = 鍧愭爣绉昏 鍙栬揣鍙�
- * 90 = 璁剧疆鏃堕棿
- * 99 = 鍙栨秷褰撳墠浠诲姟
*/
private Short taskMode = 0;
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 f9b5e9f..f2ecb14 100644
--- a/src/main/java/com/zy/core/model/protocol/DualCrnProtocol.java
+++ b/src/main/java/com/zy/core/model/protocol/DualCrnProtocol.java
@@ -1,9 +1,10 @@
package com.zy.core.model.protocol;
-import com.zy.core.enums.CrnForkPosType;
-import com.zy.core.enums.CrnLiftPosType;
-import com.zy.core.enums.CrnModeType;
-import com.zy.core.enums.CrnStatusType;
+import com.zy.core.enums.DualCrnForkPosType;
+import com.zy.core.enums.DualCrnLiftPosType;
+import com.zy.core.enums.DualCrnModeType;
+import com.zy.core.enums.DualCrnStatusType;
+
import lombok.Data;
import java.util.Map;
@@ -20,7 +21,7 @@
*/
public Integer mode;
- public CrnModeType modeType;
+ public DualCrnModeType modeType;
/**
* 寮傚父鐮�
@@ -60,12 +61,12 @@
/**
* 宸ヤ綅1鐘舵�佹灇涓�
*/
- public CrnStatusType statusType;
+ public DualCrnStatusType statusType;
/**
* 宸ヤ綅2鐘舵�佹灇涓�
*/
- public CrnStatusType statusTypeTwo;
+ public DualCrnStatusType statusTypeTwo;
/**
* 宸ヤ綅1鍫嗗灈鏈哄綋鍓嶅垪鍙�
@@ -103,9 +104,9 @@
*/
public Integer forkPosTwo;
- public CrnForkPosType forkPosType;
+ public DualCrnForkPosType forkPosType;
- public CrnForkPosType forkPosTypeTwo;
+ public DualCrnForkPosType forkPosTypeTwo;
/**
* 褰撳墠杞借揣鍙颁綅缃�
@@ -116,9 +117,9 @@
public Integer liftPosTwo;
- public CrnLiftPosType liftPosType;
+ public DualCrnLiftPosType liftPosType;
- public CrnLiftPosType liftPosTypeTwo;
+ public DualCrnLiftPosType liftPosTypeTwo;
/**
* 璧拌鍦ㄥ畾浣�
@@ -135,6 +136,15 @@
public Integer loaded;
public Integer loadedTwo;
+
+ /**
+ * 浠诲姟鎺ユ敹鐘舵��
+ * 0 = 鏈帴鏀�
+ * 1 = 宸叉帴鏀�
+ */
+ public Integer taskReceive;
+
+ public Integer taskReceiveTwo;
private Integer temp1;
@@ -208,72 +218,72 @@
public void setMode(Integer mode) {
this.mode = mode;
- this.modeType = CrnModeType.get(mode);
+ this.modeType = DualCrnModeType.get(mode);
}
- public void setMode(CrnModeType type) {
+ public void setMode(DualCrnModeType type) {
this.modeType = type;
- this.mode = CrnModeType.get(type).id;
+ this.mode = DualCrnModeType.get(type).id;
}
public void setForkPos(Integer forkPos) {
this.forkPos = forkPos;
- this.forkPosType = CrnForkPosType.get(forkPos);
+ this.forkPosType = DualCrnForkPosType.get(forkPos);
}
public void setForkPosTwo(Integer forkPosTwo) {
this.forkPosTwo = forkPosTwo;
- this.forkPosTypeTwo = CrnForkPosType.get(forkPosTwo);
+ this.forkPosTypeTwo = DualCrnForkPosType.get(forkPosTwo);
}
- public void setForkPos(CrnForkPosType type) {
+ public void setForkPos(DualCrnForkPosType type) {
this.forkPosType = type;
- this.forkPos = CrnForkPosType.get(type).id;
+ this.forkPos = DualCrnForkPosType.get(type).id;
}
- public void setForkPosTwo(CrnForkPosType type) {
+ public void setForkPosTwo(DualCrnForkPosType type) {
this.forkPosTypeTwo = type;
- this.forkPosTwo = CrnForkPosType.get(type).id;
+ this.forkPosTwo = DualCrnForkPosType.get(type).id;
}
public void setLiftPos(Integer liftPos) {
this.liftPos = liftPos;
- this.liftPosType = CrnLiftPosType.get(liftPos);
+ this.liftPosType = DualCrnLiftPosType.get(liftPos);
}
public void setLiftPosTwo(Integer liftPosTwo) {
this.liftPosTwo = liftPosTwo;
- this.liftPosTypeTwo = CrnLiftPosType.get(liftPosTwo);
+ this.liftPosTypeTwo = DualCrnLiftPosType.get(liftPosTwo);
}
- public void setLiftPos(CrnLiftPosType type) {
+ public void setLiftPos(DualCrnLiftPosType type) {
this.liftPosType = type;
- this.liftPos = CrnLiftPosType.get(type).id;
+ this.liftPos = DualCrnLiftPosType.get(type).id;
}
- public void setLiftPosTwo(CrnLiftPosType type) {
+ public void setLiftPosTwo(DualCrnLiftPosType type) {
this.liftPosTypeTwo = type;
- this.liftPosTwo = CrnLiftPosType.get(type).id;
+ this.liftPosTwo = DualCrnLiftPosType.get(type).id;
}
public void setStatus(Integer status){
this.status = status;
- this.statusType = CrnStatusType.get(status);
+ this.statusType = DualCrnStatusType.get(status);
}
- public void setStatus(CrnStatusType type){
+ public void setStatus(DualCrnStatusType type){
this.statusType = type;
- this.status = CrnStatusType.get(type).id;
+ this.status = DualCrnStatusType.get(type).id;
}
public void setStatusTwo(Integer statusTwo){
this.statusTwo = statusTwo;
- this.statusTypeTwo = CrnStatusType.get(statusTwo);
+ this.statusTypeTwo = DualCrnStatusType.get(statusTwo);
}
- public void setStatusTwo(CrnStatusType type){
+ public void setStatusTwo(DualCrnStatusType type){
this.statusTypeTwo = type;
- this.statusTwo = CrnStatusType.get(type).id;
+ this.statusTwo = DualCrnStatusType.get(type).id;
}
}
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 9c26fef..dd03a9c 100644
--- a/src/main/java/com/zy/core/network/entity/ZyDualCrnStatusEntity.java
+++ b/src/main/java/com/zy/core/network/entity/ZyDualCrnStatusEntity.java
@@ -96,6 +96,15 @@
public Integer loadedTwo;
/**
+ * 浠诲姟鎺ユ敹鐘舵��
+ * 0 = 鏈帴鏀�
+ * 1 = 宸叉帴鏀�
+ */
+ public Integer taskReceive;
+
+ public Integer taskReceiveTwo;
+
+ /**
* X琛岃蛋绾块�熷害m/min
*/
private Integer xSpeed;
diff --git a/src/main/java/com/zy/core/network/fake/ZyDualCrnFakeConnect.java b/src/main/java/com/zy/core/network/fake/ZyDualCrnFakeConnect.java
index 133d910..1cdd5bd 100644
--- a/src/main/java/com/zy/core/network/fake/ZyDualCrnFakeConnect.java
+++ b/src/main/java/com/zy/core/network/fake/ZyDualCrnFakeConnect.java
@@ -3,7 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.zy.asrs.entity.DeviceConfig;
import com.zy.core.enums.CrnStatusType;
-import com.zy.core.enums.CrnTaskModeType;
+import com.zy.core.enums.DualCrnTaskModeType;
import com.zy.core.model.CommandResponse;
import com.zy.core.model.command.DualCrnCommand;
import com.zy.core.network.api.ZyDualCrnConnectApi;
@@ -42,13 +42,19 @@
@Override
public CommandResponse sendCommand(DualCrnCommand command) {
CommandResponse response = new CommandResponse(false);
- if (command.getTaskMode().intValue() == CrnTaskModeType.LOC_MOVE.id) {
+ if (command.getTaskMode().intValue() == DualCrnTaskModeType.TRANSFER.id) {
//鍙栨斁璐�
executor.submit(() -> commandTake(command));
- } else if (command.getTaskMode().intValue() == CrnTaskModeType.CRN_MOVE.id) {
+ } else if (command.getTaskMode().intValue() == DualCrnTaskModeType.PICK.id) {
+ //鍙栬揣
+ executor.submit(() -> commandPick(command));
+ } else if (command.getTaskMode().intValue() == DualCrnTaskModeType.PUT.id) {
+ //鏀捐揣
+ executor.submit(() -> commandPut(command));
+ } else if (command.getTaskMode().intValue() == DualCrnTaskModeType.MOVE.id) {
//绉诲姩
executor.submit(() -> commandMove(command));
- } else if (command.getTaskMode().intValue() == CrnTaskModeType.NONE.id) {
+ } else if (command.getTaskMode().intValue() == DualCrnTaskModeType.CONFIRM.id) {
//澶嶄綅
executor.submit(() -> commandTaskComplete(command));
}
@@ -148,6 +154,80 @@
}
}
+ private void commandPick(DualCrnCommand command) {
+ int destinationPosX = command.getDestinationPosX().intValue();
+ int destinationPosY = command.getDestinationPosY().intValue();
+ int destinationPosZ = command.getDestinationPosZ().intValue();
+ int taskMode = command.getTaskMode().intValue();
+ int taskNo = command.getTaskNo().intValue();
+
+ this.crnStatus.setMode(taskMode);
+ if(command.getStation() == 1) {
+ this.crnStatus.setTaskNo(taskNo);
+ this.crnStatus.setStatus(CrnStatusType.FETCH_MOVING.id);
+
+ moveY(this.crnStatus.getBay(), destinationPosY, command.getStation().intValue());
+ moveZ(this.crnStatus.getLevel(), destinationPosZ, command.getStation().intValue());
+ this.crnStatus.setStatus(CrnStatusType.FETCHING.id);
+ sleep(2000);
+ if (Thread.currentThread().isInterrupted()) {
+ return;
+ }
+ this.crnStatus.setLoaded(1);
+ this.crnStatus.setStatus(CrnStatusType.WAITING.id);
+ }else {
+ this.crnStatus.setTaskNoTwo(taskNo);
+ this.crnStatus.setStatusTwo(CrnStatusType.FETCH_MOVING.id);
+
+ moveY(this.crnStatus.getBayTwo(), destinationPosY, command.getStation().intValue());
+ moveZ(this.crnStatus.getLevelTwo(), destinationPosZ, command.getStation().intValue());
+ this.crnStatus.setStatusTwo(CrnStatusType.FETCHING.id);
+ sleep(2000);
+ if (Thread.currentThread().isInterrupted()) {
+ return;
+ }
+ this.crnStatus.setLoadedTwo(1);
+ this.crnStatus.setStatusTwo(CrnStatusType.WAITING.id);
+ }
+ }
+
+ private void commandPut(DualCrnCommand command) {
+ int destinationPosX = command.getDestinationPosX().intValue();
+ int destinationPosY = command.getDestinationPosY().intValue();
+ int destinationPosZ = command.getDestinationPosZ().intValue();
+ int taskMode = command.getTaskMode().intValue();
+ int taskNo = command.getTaskNo().intValue();
+
+ this.crnStatus.setMode(taskMode);
+ if(command.getStation() == 1) {
+ this.crnStatus.setTaskNo(taskNo);
+ this.crnStatus.setStatus(CrnStatusType.PUT_MOVING.id);
+
+ moveY(this.crnStatus.getBay(), destinationPosY, command.getStation().intValue());
+ moveZ(this.crnStatus.getLevel(), destinationPosZ, command.getStation().intValue());
+ this.crnStatus.setStatus(CrnStatusType.PUTTING.id);
+ sleep(2000);
+ if (Thread.currentThread().isInterrupted()) {
+ return;
+ }
+ this.crnStatus.setLoaded(0);
+ this.crnStatus.setStatus(CrnStatusType.WAITING.id);
+ }else {
+ this.crnStatus.setTaskNoTwo(taskNo);
+ this.crnStatus.setStatusTwo(CrnStatusType.PUT_MOVING.id);
+
+ moveY(this.crnStatus.getBayTwo(), destinationPosY, command.getStation().intValue());
+ moveZ(this.crnStatus.getLevelTwo(), destinationPosZ, command.getStation().intValue());
+ this.crnStatus.setStatusTwo(CrnStatusType.PUTTING.id);
+ sleep(2000);
+ if (Thread.currentThread().isInterrupted()) {
+ return;
+ }
+ this.crnStatus.setLoadedTwo(0);
+ this.crnStatus.setStatusTwo(CrnStatusType.WAITING.id);
+ }
+ }
+
private void moveZ(int sourcePosZ, int destinationPosZ, int station) {
if(destinationPosZ - sourcePosZ > 0) {
int moveLength = destinationPosZ - sourcePosZ;
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 c5d2b06..9a35a44 100644
--- a/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
+++ b/src/main/java/com/zy/core/network/real/ZyDualCrnRealConnect.java
@@ -108,145 +108,144 @@
@Override
public CommandResponse sendCommand(DualCrnCommand command) {
CommandResponse response = new CommandResponse(false);
- try {
- if (null == command) {
- News.error("鍙屽伐浣嶅爢鍨涙満鍐欏叆鍛戒护涓虹┖");
- response.setMessage("鍙屽伐浣嶅爢鍨涙満鍐欏叆鍛戒护涓虹┖");
- return response;
- }
+ // try {
+ // if (null == command) {
+ // News.error("鍙屽伐浣嶅爢鍨涙満鍐欏叆鍛戒护涓虹┖");
+ // response.setMessage("鍙屽伐浣嶅爢鍨涙満鍐欏叆鍛戒护涓虹┖");
+ // return response;
+ // }
- String address = "DB100.0";
- if (command.getStation() == 1) {
- //宸ヤ綅1
- address = "DB100.0";
- }else {
- //宸ヤ綅2
- address = "DB100.20";
- }
+ // String address = "DB100.0";
+ // if (command.getStation() == 1) {
+ // //宸ヤ綅1
+ // address = "DB100.0";
+ // }else {
+ // //宸ヤ綅2
+ // address = "DB100.20";
+ // }
- int writeAck = 0;
- boolean ackResult = false;
- do {
- OperateResult resultAck = siemensNet.Write(address, (short) 0);
- if (resultAck.IsSuccess) {
- Thread.sleep(200);
- OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 2);
- short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
- if (ack != 0) {
- writeAck++;
- } else {
- News.info("鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂[id:{}] >>>>> {}", command.getCrnNo(), "ack澶嶄綅瀹屾垚");
- ackResult = true;
- break;
- }
- }
- } while (writeAck < 5);
+ // int writeAck = 0;
+ // boolean ackResult = false;
+ // do {
+ // OperateResult resultAck = siemensNet.Write(address, (short) 0);
+ // if (resultAck.IsSuccess) {
+ // Thread.sleep(200);
+ // OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 2);
+ // short ack = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+ // if (ack != 0) {
+ // writeAck++;
+ // } else {
+ // News.info("鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂[id:{}] >>>>> {}", command.getCrnNo(), "ack澶嶄綅瀹屾垚");
+ // ackResult = true;
+ // break;
+ // }
+ // }
+ // } while (writeAck < 5);
- if (!ackResult) {
- response.setMessage("鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂[id:{}] >>>>> {}" + command.getCrnNo() + "ack澶嶄綅澶辫触");
- return response;
- }
+ // if (!ackResult) {
+ // response.setMessage("鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂[id:{}] >>>>> {}" + command.getCrnNo() + "ack澶嶄綅澶辫触");
+ // return response;
+ // }
- short[] array = new short[10];
- array[0] = command.getAckFinish();
- array[1] = command.getTaskNo();
- array[2] = command.getTaskMode();
- array[3] = command.getSourcePosX();
- array[4] = command.getSourcePosY();
- array[5] = command.getSourcePosZ();
- array[6] = command.getDestinationPosX();
- array[7] = command.getDestinationPosY();
- array[8] = command.getDestinationPosZ();
- array[9] = command.getCommand();
+ // short[] array = new short[10];
+ // array[1] = command.getTaskNo();
+ // array[2] = command.getTaskMode();
+ // array[3] = command.getSourcePosX();
+ // array[4] = command.getSourcePosY();
+ // array[5] = command.getSourcePosZ();
+ // array[6] = command.getDestinationPosX();
+ // array[7] = command.getDestinationPosY();
+ // array[8] = command.getDestinationPosZ();
+ // array[9] = command.getCommand();
- OperateResult result = null;
- int idx = 0;
- do {
- OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 20);
- if (resultRead.IsSuccess) {
- if (command.getAckFinish() == 0) {
- 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);
- if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
- result = siemensNet.Write(address, array);
- } else {
- break;
- }
- } else {
- short ackFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
- if (ackFinish != command.getAckFinish()) {
- result = siemensNet.Write(address, array);
- } else {
- break;
- }
- }
- }
- idx++;
- Thread.sleep(500);
- } while (idx < 5);
+ // OperateResult result = null;
+ // int idx = 0;
+ // do {
+ // OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 20);
+ // if (resultRead.IsSuccess) {
+ // if (command.getAckFinish() == 0) {
+ // 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);
+ // if (taskNo == 0 || taskMode == 0 || sourcePosX == 0 || sourcePosY == 0 || sourcePosZ == 0 || destinationPosX == 0 || destinationPosY == 0 || destinationPosZ == 0) {
+ // result = siemensNet.Write(address, array);
+ // } else {
+ // break;
+ // }
+ // } else {
+ // short ackFinish = siemensNet.getByteTransform().TransInt16(resultRead.Content, 0);
+ // if (ackFinish != command.getAckFinish()) {
+ // result = siemensNet.Write(address, array);
+ // } else {
+ // break;
+ // }
+ // }
+ // }
+ // idx++;
+ // Thread.sleep(500);
+ // } while (idx < 5);
- if (command.getAckFinish() == 0) {
- short commandFinish = 1;
- int i = 0;
- do {
- OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 4);
- OperateResultExOne<byte[]> resultReadConfirm = siemensNet.Read(address + 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(address + 18, commandFinish);
- }
- }
- i++;
- Thread.sleep(500);
- } while (i < 5);
- }
+ // if (command.getAckFinish() == 0) {
+ // short commandFinish = 1;
+ // int i = 0;
+ // do {
+ // OperateResultExOne<byte[]> resultRead = siemensNet.Read(address, (short) 4);
+ // OperateResultExOne<byte[]> resultReadConfirm = siemensNet.Read(address + 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(address + 18, commandFinish);
+ // }
+ // }
+ // i++;
+ // Thread.sleep(500);
+ // } while (i < 5);
+ // }
- if (result != null && result.IsSuccess) {
- News.info("SiemensDualCrn 鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂[id:{}] >>>>> {}", command.getCrnNo(), JSON.toJSON(command));
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), command.getCrnNo(), JSON.toJSON(command)));
- response.setResult(true);
- response.setMessage("鍛戒护涓嬪彂鎴愬姛");
- } else {
- News.error("SiemensDualCrn 鍙屽伐浣嶅爢鍨涙満鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}]", command.getCrnNo());
- OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}]", DateUtils.convert(new Date()), command.getCrnNo()));
- response.setResult(false);
- response.setMessage("鍛戒护涓嬪彂澶辫触");
- }
+ // if (result != null && result.IsSuccess) {
+ // News.info("SiemensDualCrn 鍙屽伐浣嶅爢鍨涙満鍛戒护涓嬪彂[id:{}] >>>>> {}", command.getCrnNo(), JSON.toJSON(command));
+ // OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), command.getCrnNo(), JSON.toJSON(command)));
+ // response.setResult(true);
+ // response.setMessage("鍛戒护涓嬪彂鎴愬姛");
+ // } else {
+ // News.error("SiemensDualCrn 鍙屽伐浣嶅爢鍨涙満鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触 ===>> [id:{}]", command.getCrnNo());
+ // OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝啓鍏ュ爢鍨涙満plc鏁版嵁澶辫触 ===>> [id:{1}]", DateUtils.convert(new Date()), command.getCrnNo()));
+ // response.setResult(false);
+ // response.setMessage("鍛戒护涓嬪彂澶辫触");
+ // }
- 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());
+ // 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());
- // 鏃ュ織璁板綍
- BasCrnpOptService bean = SpringUtils.getBean(BasCrnpOptService.class);
- BasCrnpOpt basCrnpOpt = new BasCrnpOpt(
- command.getTaskNo().intValue(), // 浠诲姟鍙�
- 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(basCrnpOpt);
- }
+ // // 鏃ュ織璁板綍
+ // BasCrnpOptService bean = SpringUtils.getBean(BasCrnpOptService.class);
+ // BasCrnpOpt basCrnpOpt = new BasCrnpOpt(
+ // command.getTaskNo().intValue(), // 浠诲姟鍙�
+ // 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(basCrnpOpt);
+ // }
return response;
}
}
diff --git a/src/main/java/com/zy/core/thread/DualCrnThread.java b/src/main/java/com/zy/core/thread/DualCrnThread.java
index cd40f95..b670bc1 100644
--- a/src/main/java/com/zy/core/thread/DualCrnThread.java
+++ b/src/main/java/com/zy/core/thread/DualCrnThread.java
@@ -11,6 +11,10 @@
DualCrnCommand getPickAndPutCommand(String sourceLocNo, String targetLocNo, Integer taskNo, Integer crnNo, Integer station);//鍙栨斁璐�
+ DualCrnCommand getPickCommand(String targetLocNo, Integer taskNo, Integer crnNo, Integer station);//鍙栬揣
+
+ DualCrnCommand getPutCommand(String targetLocNo, Integer taskNo, Integer crnNo, Integer station);//鏀捐揣
+
DualCrnCommand getMoveCommand(String targetLocNo, Integer taskNo, Integer crnNo);//绉诲姩
DualCrnCommand getResetCommand(Integer crnNo, Integer station);//澶嶄綅
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 fcb6019..96b2983 100644
--- a/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
+++ b/src/main/java/com/zy/core/thread/impl/ZySiemensDualCrnThread.java
@@ -15,6 +15,7 @@
import com.zy.core.cache.MessageQueue;
import com.zy.core.cache.OutputQueue;
import com.zy.core.enums.CrnTaskModeType;
+import com.zy.core.enums.DualCrnTaskModeType;
import com.zy.core.enums.RedisKeyType;
import com.zy.core.enums.SlaveType;
import com.zy.core.model.CommandResponse;
@@ -168,7 +169,6 @@
OutputQueue.DUAL_CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧弻宸ヤ綅鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), deviceConfig.getDeviceNo(), deviceConfig.getIp(), deviceConfig.getPort()));
return;
}
-
crnProtocol.setMode(crnStatus.getMode());
//宸ヤ綅1
@@ -180,6 +180,7 @@
crnProtocol.setLoaded(crnStatus.getLoaded());
crnProtocol.setWalkPos(crnStatus.getWalkPos());
crnProtocol.setLiftPos(crnStatus.getLiftPos());
+ crnProtocol.setTaskReceive(crnStatus.getTaskReceive());
//宸ヤ綅2
crnProtocol.setTaskNoTwo(crnStatus.getTaskNoTwo());
@@ -190,6 +191,7 @@
crnProtocol.setLoadedTwo(crnStatus.getLoadedTwo());
crnProtocol.setWalkPosTwo(crnStatus.getWalkPosTwo());
crnProtocol.setLiftPosTwo(crnStatus.getLiftPosTwo());
+ crnProtocol.setTaskReceiveTwo(crnStatus.getTaskReceiveTwo());
crnProtocol.setAlarm(crnStatus.getAlarm());
crnProtocol.setTemp1(crnStatus.getTemp1());
@@ -276,10 +278,38 @@
DualCrnCommand crnCommand = new DualCrnCommand();
crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo(taskNo.shortValue()); // 宸ヤ綔鍙�
- crnCommand.setTaskMode(CrnTaskModeType.LOC_MOVE.id.shortValue()); // 浠诲姟妯″紡: 搴撲綅绉昏浆
+ crnCommand.setTaskMode(DualCrnTaskModeType.TRANSFER.id.shortValue()); // 浠诲姟妯″紡: 鍙栨斁璐�
crnCommand.setSourcePosX((short) Utils.getRow(sourceLocNo)); // 婧愬簱浣嶆帓
crnCommand.setSourcePosY((short) Utils.getBay(sourceLocNo)); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ((short) Utils.getLev(sourceLocNo)); // 婧愬簱浣嶅眰
+ crnCommand.setDestinationPosX((short) Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
+ crnCommand.setStation(station.shortValue());//宸ヤ綅
+ crnCommand.setCommand((short) 1); // 浠诲姟纭
+ return crnCommand;
+ }
+
+ @Override
+ public DualCrnCommand getPickCommand(String targetLocNo, Integer taskNo, Integer crnNo, Integer station) {
+ DualCrnCommand crnCommand = new DualCrnCommand();
+ crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(taskNo.shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setTaskMode(DualCrnTaskModeType.PICK.id.shortValue()); // 浠诲姟妯″紡: 鍙栬揣
+ crnCommand.setDestinationPosX((short) Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
+ crnCommand.setDestinationPosY((short) Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
+ crnCommand.setDestinationPosZ((short) Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
+ crnCommand.setStation(station.shortValue());//宸ヤ綅
+ crnCommand.setCommand((short) 1); // 浠诲姟纭
+ return crnCommand;
+ }
+
+ @Override
+ public DualCrnCommand getPutCommand(String targetLocNo, Integer taskNo, Integer crnNo, Integer station) {
+ DualCrnCommand crnCommand = new DualCrnCommand();
+ crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
+ crnCommand.setTaskNo(taskNo.shortValue()); // 宸ヤ綔鍙�
+ crnCommand.setTaskMode(DualCrnTaskModeType.PUT.id.shortValue()); // 浠诲姟妯″紡: 鏀捐揣
crnCommand.setDestinationPosX((short) Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY((short) Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ((short) Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
@@ -293,8 +323,7 @@
DualCrnCommand crnCommand = new DualCrnCommand();
crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo(taskNo.shortValue()); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 0); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.CRN_MOVE.id.shortValue()); // 浠诲姟妯″紡: 鍫嗗灈鏈虹Щ鍔�
+ crnCommand.setTaskMode(DualCrnTaskModeType.MOVE.id.shortValue()); // 浠诲姟妯″紡: 鍫嗗灈鏈虹Щ鍔�
crnCommand.setDestinationPosX((short) Utils.getRow(targetLocNo)); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY((short) Utils.getBay(targetLocNo)); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ((short) Utils.getLev(targetLocNo)); // 鐩爣搴撲綅灞�
@@ -307,8 +336,7 @@
DualCrnCommand crnCommand = new DualCrnCommand();
crnCommand.setCrnNo(crnNo); // 鍫嗗灈鏈虹紪鍙�
crnCommand.setTaskNo((short) 0); // 宸ヤ綔鍙�
- crnCommand.setAckFinish((short) 1); // 浠诲姟瀹屾垚纭浣�
- crnCommand.setTaskMode(CrnTaskModeType.NONE.id.shortValue()); // 浠诲姟妯″紡
+ crnCommand.setTaskMode(DualCrnTaskModeType.CONFIRM.id.shortValue()); // 浠诲姟妯″紡: 纭
crnCommand.setSourcePosX((short)0); // 婧愬簱浣嶆帓
crnCommand.setSourcePosY((short)0); // 婧愬簱浣嶅垪
crnCommand.setSourcePosZ((short)0); // 婧愬簱浣嶅眰
diff --git a/src/main/webapp/components/WatchDualCrnCard.js b/src/main/webapp/components/WatchDualCrnCard.js
index 5c306ab..b047a24 100644
--- a/src/main/webapp/components/WatchDualCrnCard.js
+++ b/src/main/webapp/components/WatchDualCrnCard.js
@@ -24,6 +24,8 @@
</el-select>
</div>
<div style="margin-bottom: 10px;"><el-button @click="controlCommandTransport()" size="mini">鍙栨斁璐�</el-button></div>
+ <div style="margin-bottom: 10px;"><el-button @click="controlCommandPickup()" size="mini">鍙栬揣</el-button></div>
+ <div style="margin-bottom: 10px;"><el-button @click="controlCommandPutdown()" size="mini">鏀捐揣</el-button></div>
<div style="margin-bottom: 10px;"><el-button @click="controlCommandMove()" size="mini">绉诲姩</el-button></div>
<div style="margin-bottom: 10px;"><el-button @click="controlCommandTaskComplete()" size="mini">浠诲姟瀹屾垚</el-button></div>
</div>
@@ -61,6 +63,8 @@
<el-descriptions-item label="宸ヤ綅2杞借揣鍙板畾浣�">{{ item.liftPosTwo }}</el-descriptions-item>
<el-descriptions-item label="宸ヤ綅1璧拌鍦ㄥ畾浣�">{{ item.walkPos }}</el-descriptions-item>
<el-descriptions-item label="宸ヤ綅2璧拌鍦ㄥ畾浣�">{{ item.walkPosTwo }}</el-descriptions-item>
+ <el-descriptions-item label="宸ヤ綅1浠诲姟鎺ユ敹">{{ item.taskReceive }}</el-descriptions-item>
+ <el-descriptions-item label="宸ヤ綅2浠诲姟鎺ユ敹">{{ item.taskReceiveTwo }}</el-descriptions-item>
<el-descriptions-item label="璧拌閫熷害锛坢/min)">{{ item.xspeed }}</el-descriptions-item>
<el-descriptions-item label="鍗囬檷閫熷害锛坢/min)">{{ item.yspeed }}</el-descriptions-item>
<el-descriptions-item label="鍙夌墮閫熷害锛坢/min)">{{ item.zspeed }}</el-descriptions-item>
@@ -173,6 +177,56 @@
},
});
},
+ controlCommandPickup() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/dualcrn/command/pick",
+ headers: {
+ token: localStorage.getItem("token"),
+ },
+ contentType: "application/json",
+ method: "post",
+ data: JSON.stringify(that.controlParam),
+ success: (res) => {
+ if (res.code == 200) {
+ that.$message({
+ message: res.msg,
+ type: "success",
+ });
+ } else {
+ that.$message({
+ message: res.msg,
+ type: "warning",
+ });
+ }
+ },
+ });
+ },
+ controlCommandPutdown() {
+ let that = this;
+ $.ajax({
+ url: baseUrl + "/dualcrn/command/put",
+ headers: {
+ token: localStorage.getItem("token"),
+ },
+ contentType: "application/json",
+ method: "post",
+ data: JSON.stringify(that.controlParam),
+ success: (res) => {
+ if (res.code == 200) {
+ that.$message({
+ message: res.msg,
+ type: "success",
+ });
+ } else {
+ that.$message({
+ message: res.msg,
+ type: "warning",
+ });
+ }
+ },
+ });
+ },
controlCommandMove() {
let that = this;
$.ajax({
--
Gitblit v1.9.1