From 7a806791fba46b27f4a8af6809c270f92be5f11c Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期一, 22 一月 2024 12:53:37 +0800
Subject: [PATCH] #堆垛机下发命令增加库位类型
---
src/main/java/com/zy/core/thread/SiemensCrnThread.java | 12 +++++++++---
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 7 +++++++
src/main/java/com/zy/asrs/controller/CrnController.java | 21 ++++++++++++++++++++-
src/main/java/com/zy/core/model/command/CrnCommand.java | 2 ++
4 files changed, 38 insertions(+), 4 deletions(-)
diff --git a/src/main/java/com/zy/asrs/controller/CrnController.java b/src/main/java/com/zy/asrs/controller/CrnController.java
index 4d02d12..95052a6 100644
--- a/src/main/java/com/zy/asrs/controller/CrnController.java
+++ b/src/main/java/com/zy/asrs/controller/CrnController.java
@@ -248,6 +248,8 @@
command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺�
command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒�
command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞�
+ boolean locSts = isLocSts(param.getRow().toString(), param.getBay().toString(), param.getLev().toString());
+ command.setTraySize(locSts);
return crnControl(command)?R.ok():R.error();
}
@@ -265,6 +267,8 @@
command.setDestinationPosX(param.getRow()); // 鐩爣搴撲綅鎺�
command.setDestinationPosY(param.getBay()); // 鐩爣搴撲綅鍒�
command.setDestinationPosZ(param.getLev()); // 鐩爣搴撲綅灞�
+ boolean locSts = isLocSts(param.getSourceRow().toString(), param.getSourceBay().toString(), param.getSourceLev().toString());
+ command.setTraySize(locSts);
return crnControl(command)?R.ok():R.error();
}
@@ -286,7 +290,10 @@
.eq("bay1", command.getSourcePosY()).eq("lev1", command.getSourcePosZ()));
LocMast loc = locMastService.selectOne(new EntityWrapper<LocMast>().eq("row1", command.getDestinationPosX())
.eq("bay1", command.getDestinationPosY()).eq("lev1", command.getDestinationPosZ()));
- VersionUtils.locMoveCheckLocType(sourceLoc, loc);
+ if (sourceLoc.getLocType1() != loc.getLocType1()){
+ return R.error("搴撲綅绫诲瀷涓嶄竴鑷�");
+ }
+// VersionUtils.locMoveCheckLocType(sourceLoc, loc);
return crnControl(command)?R.ok():R.error();
}
@@ -501,5 +508,17 @@
}
}
+ private boolean isLocSts(String row,String bay,String lev){
+ String loc = String.format("%2d",row)+String.format("%3d",bay)+String.format("%2d",lev);
+ LocMast locMast = locMastService.selectOne(new EntityWrapper<LocMast>().eq("loc_no", loc));
+ if (Cools.isEmpty(locMast)){
+ return false;
+ }
+ if (locMast.getLocType1() == 2){
+ return true;
+ }
+ return false;
+ }
+
}
diff --git a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
index ef44745..3c0de29 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -771,6 +771,7 @@
crnCommand.setDestinationPosX(locMast.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(locMast.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(locMast.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ crnCommand.setTraySize(locMast.getLocType1() == 2);
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
News.error(""+mark+" - 1"+" - 16"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
@@ -932,6 +933,7 @@
crnCommand.setDestinationPosX(crnStn.getRow().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(crnStn.getBay().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(crnStn.getLev().shortValue()); // 鐩爣搴撲綅灞�
+ crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
News.error(""+mark+" - 2"+" - 13"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
@@ -1094,6 +1096,10 @@
News.error(""+mark+" - 3"+" - 2"+" - 宸ヤ綔妗e簱浣嶇Щ杞け璐ワ紝鍘熷洜锛氭绱㈢洰鏍囧簱浣嶅け璐ワ紒宸ヤ綔鍙�={}锛屾簮搴撲綅={}", wrkMast.getWrkNo(), wrkMast.getLocNo());
return;
}
+ if(sta.getLocType1() != sourceSta.getLocType1()){
+ News.error("绉诲簱鐩爣搴撲綅绫诲瀷涓庢簮搴撲綅绫诲瀷涓嶇");
+ return;
+ }
// 鑾峰彇鍫嗗灈鏈轰俊鎭� 骞� 鍒ゆ柇鏄惁鍙叆鍑�
BasCrnp basCrnp = basCrnpService.selectById(slave.getId());
if (!basCrnp.getInEnable().equals("Y") && !basCrnp.getOutEnable().equals("Y")) {
@@ -1126,6 +1132,7 @@
crnCommand.setDestinationPosX(sta.getRow1().shortValue()); // 鐩爣搴撲綅鎺�
crnCommand.setDestinationPosY(sta.getBay1().shortValue()); // 鐩爣搴撲綅鍒�
crnCommand.setDestinationPosZ(sta.getLev1().shortValue()); // 鐩爣搴撲綅灞�
+ crnCommand.setTraySize(sourceSta.getLocType1() == 2); //搴撲綅绫诲瀷
if (!MessageQueue.offer(SlaveType.Crn, wrkMast.getCrnNo(), new Task(2, crnCommand))) {
News.error(""+mark+" - 3"+" - 4"+" - 鍫嗗灈鏈哄懡浠や笅鍙戝け璐ワ紝鍫嗗灈鏈哄彿={}锛屼换鍔℃暟鎹�={}", wrkMast.getCrnNo(), JSON.toJSON(crnCommand));
} else {
diff --git a/src/main/java/com/zy/core/model/command/CrnCommand.java b/src/main/java/com/zy/core/model/command/CrnCommand.java
index c777ecb..6b09a73 100644
--- a/src/main/java/com/zy/core/model/command/CrnCommand.java
+++ b/src/main/java/com/zy/core/model/command/CrnCommand.java
@@ -74,6 +74,8 @@
// 浠诲姟纭 0锛氭湭纭 1锛氬凡纭
private Short command = 0;
+ private boolean traySize = false;
+
public void setTaskMode(Short taskMode){
this.taskMode = taskMode;
this.taskModeType = CrnTaskModeType.get(taskModeType);
diff --git a/src/main/java/com/zy/core/thread/SiemensCrnThread.java b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
index ac48c37..45edc73 100644
--- a/src/main/java/com/zy/core/thread/SiemensCrnThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensCrnThread.java
@@ -278,11 +278,15 @@
array[7] = command.getDestinationPosY(); // 鐩爣浣嶇疆鍒楀彿
array[8] = command.getDestinationPosZ(); // 鐩爣浣嶇疆灞傚彿
array[9] = command.getCommand();
-// array[10] = command.getLocType1(); //鏂板璐х墿绫诲瀷涓嬪彂
+// array[10] = 0; //澶囩敤1
+
+ boolean[] array2 = new boolean[1];
+ array2[0] = command.isTraySize();
OperateResult result = siemensNet.Write("DB100.0", array);
+ OperateResult result2 = siemensNet.Write("DB100.20", array2);
News.info("鍫嗗灈鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), array);
- if(!result.IsSuccess){
+ if(!result.IsSuccess || !result2.IsSuccess){
News.error("鍐欏叆鍫嗗灈鏈簆lc鏁版嵁澶辫触锛岄噸鏂版坊鍔犱换鍔″埌闃熷垪 ===>> [id:{}],{}", slave.getId(), JSON.toJSON(command));
MessageQueue.offer(SlaveType.Crn, slave.getId(), new Task(2, command));
Thread.sleep(100);
@@ -293,7 +297,7 @@
//鍫嗗灈鏈轰换鍔″啓鍏ュ悗锛屽洖璇讳竴娆★紝鐪嬫槸鍚︽垚鍔�
Thread.sleep(200);
try{
- OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 18);
+ OperateResultExOne<byte[]> resultRead = siemensNet.Read("DB100.0", (short) 20);
if (resultRead.IsSuccess) {
CrnCommand one = new CrnCommand();
one.setTaskNo(siemensNet.getByteTransform().TransInt16(resultRead.Content, 2));
@@ -304,10 +308,12 @@
one.setDestinationPosX(siemensNet.getByteTransform().TransInt16(resultRead.Content, 12));
one.setDestinationPosY(siemensNet.getByteTransform().TransInt16(resultRead.Content, 14));
one.setDestinationPosZ(siemensNet.getByteTransform().TransInt16(resultRead.Content, 16));
+ one.setTraySize(siemensNet.getByteTransform().TransBool(resultRead.Content, 20));
if (!command.getTaskNo().equals(one.getTaskNo()) || !command.getTaskMode().equals(one.getTaskMode())
|| !command.getSourcePosX().equals(one.getSourcePosX()) || !command.getSourcePosY().equals(one.getSourcePosY())
|| !command.getSourcePosZ().equals(one.getSourcePosZ()) || !command.getDestinationPosX().equals(one.getDestinationPosX())
|| !command.getDestinationPosY().equals(one.getDestinationPosY()) || !command.getDestinationPosZ().equals(one.getDestinationPosZ())
+ || !command.isTraySize() == one.isTraySize()
){
try{
News.error("鍫嗗灈鏈哄懡浠ゅ湴鍧�鍐欏叆鍚庡洖璇诲け璐id:{}] >>>>> 鍐欏叆[{}],===>>鍥炶[{}]", slave.getId(), JSON.toJSON(command),JSON.toJSON(one));
--
Gitblit v1.9.1