From 5e4d358ec9bf65501358ad43971b7c630494a435 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期四, 25 一月 2024 21:21:03 +0800
Subject: [PATCH] #双车+自动出入空板
---
src/main/java/com/zy/core/thread/RgvThread.java | 2
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 173 +++++++++++++++++++++++++++----------------
src/main/java/com/zy/core/MainProcess.java | 18 ++--
src/main/java/com/zy/common/model/LocTypeDto.java | 2
src/main/java/com/zy/core/thread/SiemensDevpThread.java | 1
5 files changed, 121 insertions(+), 75 deletions(-)
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 276409d..6684db3 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -173,6 +173,7 @@
staProtocol.setStaNo(inSta.getBackSta().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂1锛�"+wrkNo+","+inSta.getBackSta());
}
// 鍒ゆ柇鏄惁婊¤冻鍏ュ簱鏉′欢
@@ -224,6 +225,7 @@
staProtocol.setStaNo(dto.getStaNo().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂2锛�"+dto.getWorkNo()+","+dto.getStaNo());
if (!result) {
News.error(methodName + ":鏇存柊plc绔欑偣淇℃伅澶辫触");
@@ -304,6 +306,7 @@
staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂3锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
if (result) {
// 鏇存柊宸ヤ綔涓绘。
wrkMast.setWrkSts(2L); // 宸ヤ綔鐘舵�侊細2.璁惧涓婅蛋
@@ -394,6 +397,7 @@
staProtocol.setStaNo((short) (pickSta.getStaNo().shortValue()-(short)1));
devpThread.setPakMk(staProtocol.getSiteId(), false);
MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂4锛�"+9989+","+(pickSta.getStaNo().shortValue()-(short)1));
//LED
LedThread ledThread = (LedThread) SlaveConnection.get(SlaveType.Led, pickSta.getLed());
// led 寮傚父鏄剧ず
@@ -449,6 +453,7 @@
staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂5锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
if (!result) {
News.error(""+mark+" - 3"+" - 鍙戝竷鍛戒护鑷宠緭閫佺嚎闃熷垪澶辫触锛侊紒锛� [plc缂栧彿锛歿}]", devp.getId());
}
@@ -1353,6 +1358,7 @@
&& staProtocol.isInEnable()
&& staProtocol.isEmptyMk()
&& staProtocol.isPakMk()
+ && (staProtocol.getWorkNo() !=0 && staProtocol.getWorkNo() > 9700)
) {
News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛岋細绌烘爤鏉垮垵濮嬪寲鍏ュ簱,鍙夎溅鍏ュ簱绔欐斁璐�");
@@ -1378,6 +1384,7 @@
staProtocol.setStaNo(staProtocol.getSiteId().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
boolean result = MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol));
+ log.error("杈撻�佺嚎涓嬪彂6锛�"+dto.getWorkNo()+","+staProtocol.getSiteId());
if (!result) {
News.errorNoLog(""+mark+" - 1"+" - 鏇存柊plc绔欑偣淇℃伅澶辫触");
throw new CoolException("鏇存柊plc绔欑偣淇℃伅澶辫触");
@@ -2033,79 +2040,104 @@
public synchronized void autoEmptyOut() {
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- Integer autoOutSite = 12;
- //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
- StaProtocol staProtocol = devpThread.getStation().get(autoOutSite);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() //鑷姩
- && !staProtocol.isLoading() //鏃犵墿
- && staProtocol.isOutEnable() //鍙嚭淇″彿
- && staProtocol.getWorkNo() == 0
- ) {
- WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(autoOutSite);
- if (null != pakoutEmpty) {
+ List<Integer> list = new ArrayList<>();
+ list.add(102);list.add(111);
+ for (Integer site:list){
+ //濡傛灉绔欑偣鍙嚭绂佺敤锛屽垯涓嶇敓鎴愮┖鐩樺嚭搴撲换鍔�
+ StaProtocol staProtocol = devpThread.getStation().get(site);
+ if (staProtocol == null) {
return;
+ } else {
+ staProtocol = staProtocol.clone();
}
- try {
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/auto/emptyOut/v1")
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- JSONObject data = (JSONObject) jsonObject.get("data");
- News.info((String) data.get("msg"));
- } else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response);
+ if (staProtocol.isAutoing() //鑷姩
+ && !staProtocol.isLoading() //鏃犵墿
+ && staProtocol.isOutEnable() //鍙嚭淇″彿
+ && staProtocol.getWorkNo() == 0
+ ) {
+ WrkMast pakoutEmpty = wrkMastMapper.selectPakoutEmpty(site);
+ if (null != pakoutEmpty) {
+ return;
}
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ Short loctype1 = 1;
+ if (site == 102){
+ loctype1 = 2;
+ }
+ LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
+ locTypeDto.setSiteId(site);
+ try {
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/auto/emptyOut/v1")
+ .setJson(JSON.toJSONString(locTypeDto))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ JSONObject data = (JSONObject) jsonObject.get("data");
+ News.info((String) data.get("msg"));
+ } else {
+ News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyOut/v1","", response);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
}
}
+
}
public synchronized void autoEmptyIn() {
DevpThread devpThread = (DevpThread) SlaveConnection.get(SlaveType.Devp, 1);
- Integer autoInSite = 12;
- StaProtocol staProtocol = devpThread.getStation().get(autoInSite);
- if (staProtocol == null) {
- return;
- } else {
- staProtocol = staProtocol.clone();
- }
- if (staProtocol.isAutoing() //鑷姩
- && staProtocol.isLoading() //鏈夌墿
- && staProtocol.isInEnable() //鍙叆淇″彿
- && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛�
- ) {
-
- try {
- LocTypeDto locTypeDto = new LocTypeDto((short) 1, (short) 1, (short) 1);
-
-
- String response = new HttpHandler.Builder()
- .setUri(wmsUrl)
- .setPath("/rpc/auto/emptyIn/v1")
- .setJson(JSON.toJSONString(locTypeDto))
- .build()
- .doPost();
- JSONObject jsonObject = JSON.parseObject(response);
- if (jsonObject.getInteger("code").equals(200)) {
- News.info((String) jsonObject.get("msg"));
- } else {
- News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response);
- }
- } catch (Exception e) {
- e.printStackTrace();
- TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ List<Integer> list = new ArrayList<>();
+ list.add(153);list.add(157);
+ for (Integer site:list){
+ StaProtocol staProtocol = devpThread.getStation().get(site);
+ if (staProtocol == null) {
+ return;
+ } else {
+ staProtocol = staProtocol.clone();
}
+ if (staProtocol.isAutoing() //鑷姩
+ && staProtocol.isLoading() //鏈夌墿
+ && staProtocol.isInEnable() //鍙叆淇″彿
+ && staProtocol.isPakMk()
+ && (staProtocol.getWorkNo() == 0 || staProtocol.getWorkNo() > 9990) //宸ヤ綔鍙蜂负0鎴栬�呭伐浣滃彿鏄�9991~9999锛堣緭閫佹満鐣欑敤锛�
+ ) {
+
+ try {
+ Short loctype1 = 1;
+ if (site == 153){
+ loctype1 = 2;
+ }
+ LocTypeDto locTypeDto = new LocTypeDto(loctype1, (short) 1, (short) 1);
+ locTypeDto.setSiteId(site);
+
+ String response = new HttpHandler.Builder()
+ .setUri(wmsUrl)
+ .setPath("/rpc/auto/emptyIn/v1")
+ .setJson(JSON.toJSONString(locTypeDto))
+ .build()
+ .doPost();
+ JSONObject jsonObject = JSON.parseObject(response);
+ if (jsonObject.getInteger("code").equals(200)) {
+ News.info((String) jsonObject.get("msg"));
+ staProtocol.setWorkNo(jsonObject.get("data").hashCode());
+ staProtocol.setStaNo(site.shortValue());
+ devpThread.setPakMk(site,false);
+ MessageQueue.offer(SlaveType.Devp, 1, new Task(2, staProtocol));
+ } else {
+ News.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", wmsUrl + "/rpc/auto/emptyIn/v1", JSON.toJSONString(locTypeDto), response);
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+ }
+ }
+
}
+
}
/*
@@ -2196,7 +2228,7 @@
){
log.info("{}鍙峰皬杞︾瓑寰厀cs纭锛岀姸鎬亄}锛屽弬鏁皗}",rgvProtocol.getRgvNo(),rgvProtocol.getStatusType(),rgvProtocol);
if (rgvProtocol.getTaskNo1()!=0){
- if (rgvProtocol.getTaskNo1()==9999){
+ if (rgvProtocol.getTaskNo1()==32222){
boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
if (!rgvComplete){
log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
@@ -2226,6 +2258,7 @@
staProtocol.setWorkNo(wrkMast.getWrkNo());
staProtocol.setStaNo(wrkMast.getStaNo().shortValue());
devpThread.setPakMk(staProtocol.getSiteId(), false);
+ log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护锛�"+wrkMast.getWrkNo()+","+wrkMast.getStaNo());
if (!MessageQueue.offer(SlaveType.Devp, devp.getId(), new Task(2, staProtocol))) {
continue;
}
@@ -2257,6 +2290,7 @@
* 鎵ц灏忚溅鎼繍浠诲姟
*/
public synchronized void rgvRunWrkMastFullSta() {
+ boolean wrkEnable = false;
try{
for (RgvSlave rgvSlave:slaveProperties.getRgv()) {
RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getId());
@@ -2288,6 +2322,7 @@
continue;
}
boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
+ wrkEnable = true;
if (sign){
boolean signMap = rgvMapUpdate(basRgvMap, wrkMastSta.getStaStart(), wrkMastSta.getStaEnd());
if (signMap){
@@ -2297,7 +2332,7 @@
}catch (Exception e){
log.error("鏇存柊灏忚溅浠诲姟澶辫触");
}
- return;
+ break;
}else {
log.error("3864琛岋紝璐х墿鎼繍浠诲姟锛氬伐浣滃彿{}鎵�灞炰换鍔′笅鍙戝悗鍦板浘鍚屾澶辫触",wrkMastSta.getWrkNo());
}
@@ -2308,6 +2343,9 @@
}
}
+ }
+ if (!wrkEnable){
+ rgvRunWrkMastEmptyStaAvoidance();
}
}catch (Exception e){
log.error("3875琛屾墽琛屽皬杞︽惉杩愪换鍔′笅鍙戝け璐�");
@@ -2475,6 +2513,11 @@
if (rgvProtocol.getRgvPosI().equals(basRgvMap.getStartRoute())){
continue;
}
+ if (rgvProtocol.getRgvNo()==1 && rgvProtocol.getRgvPosI().equals(100)){
+ continue;
+ } else if (rgvProtocol.getRgvNo()==2 && rgvProtocol.getRgvPosI().equals(157) ){
+ continue;
+ }
rgvAvoidanceXY(rgvProtocol.getRgvNo());
rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute());
}
@@ -2522,7 +2565,7 @@
rgvCommand.setTaskNo1((short)32222); // 宸ヤ綅1宸ヤ綔鍙�
rgvCommand.setTaskMode1(RgvTaskModeType.X_MOVE); // 宸ヤ綅1浠诲姟妯″紡: 鍥炲師鐐�
//basRgvMap.getLockStartRoute().shortValue()
- rgvCommand.setSourceStaNo1( (short)161);
+ rgvCommand.setSourceStaNo1( (short)157);
rgvCommand.setCommand((short) 1); //宸ヤ綅1浠诲姟纭
if (!MessageQueue.offer(SlaveType.Rgv, rgvId, new Task(4, rgvCommand))) {
//step=2,宸ヤ綅1銆�2鍐欎换鍔★紱 step=4锛屽伐浣�1鍐欎换鍔★紱 step=5锛屽伐浣�2鍐欎换鍔� step=9锛屽洖鍘熺偣 9999浠诲姟鍙�
diff --git a/src/main/java/com/zy/common/model/LocTypeDto.java b/src/main/java/com/zy/common/model/LocTypeDto.java
index 92ba2b2..454a5f6 100644
--- a/src/main/java/com/zy/common/model/LocTypeDto.java
+++ b/src/main/java/com/zy/common/model/LocTypeDto.java
@@ -19,6 +19,8 @@
// 杞婚噸绫诲瀷{0:鏈煡,1:杞诲簱浣�,2:閲嶅簱浣峿
private Short locType3;
+ private Integer siteId;
+
public LocTypeDto() {
}
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 1b40995..85c2223 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -77,9 +77,9 @@
mainService.outOfDevp(11);
//绌烘墭鐩樿嚜鍔ㄥ嚭搴�
-// mainService.autoEmptyOut();
+ mainService.autoEmptyOut();
// //绌烘墭鐩樿嚜鍔ㄥ叆搴�
-// mainService.autoEmptyIn();
+ mainService.autoEmptyIn();
// 鍏朵粬 ===>> 鍏ュ嚭搴撴ā寮忓垏鎹�
// i++;
@@ -96,14 +96,14 @@
// //鎵ц灏忚溅绌烘澘鎼繍浠诲姟
// mainService.rgvRunWrkMastEmptyStaPut();//鏀�
// mainService.rgvRunWrkMastEmptyStaTake();//鍙�
- if (rgcWrk){
- //鎵ц灏忚溅璐х墿鎼繍浠诲姟
+// if (rgcWrk){
+// //鎵ц灏忚溅璐х墿鎼繍浠诲姟
mainService.rgvRunWrkMastFullSta();
- rgcWrk = false;
- }else {
- mainService.rgvRunWrkMastEmptyStaAvoidance();//閬胯
- rgcWrk = true;
- }
+// rgcWrk = false;
+// }else {
+// mainService.rgvRunWrkMastEmptyStaAvoidance();//閬胯
+// rgcWrk = true;
+// }
/////////////////////////////////////RGV璋冨害/////////////////////////////////////
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index be94698..e16e7e5 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -175,7 +175,7 @@
try {
OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 30);
if (result.IsSuccess) {
- if (null == rgvProtocol) {
+ if (null == rgvProtocol || rgvProtocol.getRgvNo() == null) {
rgvProtocol = new RgvProtocol();
rgvProtocol.setRgvNo(slave.getId());
}
diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index edb31c2..e563850 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -125,6 +125,7 @@
// 鍐欐暟鎹� ID+鐩爣绔�
case 2:
write((StaProtocol)task.getData());
+ log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo());
break;
default:
break;
--
Gitblit v1.9.1