From d9b90148df8ce5b6ae7cba019359430df8c61742 Mon Sep 17 00:00:00 2001
From: lty <876263681@qq.com>
Date: 星期六, 16 八月 2025 16:42:21 +0800
Subject: [PATCH] #
---
src/main/java/com/zy/core/thread/RgvThread.java | 4
src/main/java/com/zy/core/model/RgvSlave.java | 9 ++
src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java | 83 +++++++++++++-------
src/main/webapp/static/js/console.map.js | 8 +-
src/main/java/com/zy/core/MainProcess.java | 5 +
src/main/resources/application.yml | 126 ++++++++++++++++++++++---------
6 files changed, 165 insertions(+), 70 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 5dd7333..712baf2 100644
--- a/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
+++ b/src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -2803,18 +2803,7 @@
}
}
if (rgvProtocol.getTaskNo1()!=0 && rgvProtocol.getTaskNo1()!=9999){
-// if (rgvProtocol.getTaskNo1()==32222){
-// boolean rgvComplete = rgvComplete(rgvProtocol.getRgvNo());
-// if (!rgvComplete){
-// log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
-// }
-// BasRgvMap basRgvMap = basRgvMapMapper.selectById(rgvProtocol.getRgvNo());
-// basRgvMap.setNowRoute(rgvProtocol.getRgvPosI());
-// rgvMapUpdate(basRgvMap,basRgvMap.getStartRoute(),basRgvMap.getStartRoute(),"2415");
-// rgvThread.setPakMk(true);
-// break;
-// }
- WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+ WrkMastSta wrkMastSta = wrkMastStaMapper.selectByWrkNo(rgvProtocol.getTaskNo1());
if (Cools.isEmpty(wrkMastSta) || wrkMastSta.getWrkSts()!=1){
log.error("鏈煡鍒板皬杞︽墽琛屼换鍔℃垨鑰呮墽琛屼换鍔$姸鎬佷笉绗﹀悎锛�"+wrkMastSta);
continue;
@@ -2844,20 +2833,6 @@
continue;
}
}
-// else {
-// log.error("rgv浠诲姟瀹屾垚缁欒緭閫佺嚎涓嬪彂鍛戒护,浣嗘湭鏌ヨ鍒板伐浣滄。");
-// // 涓嬪彂绔欑偣淇℃伅
-// Map<Integer,Integer> map = new HashMap<>();
-// map.put(101,102);map.put(112,111);
-// map.put(100,100);
-// staProtocol.setWorkNo(rgvProtocol.getTaskNo1().intValue());
-// staProtocol.setStaNo(map.get(rgvProtocol.getRgvPosI()).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;
-// }
-// }
int sourceSta = wrkMast.getSourceStaNo();
boolean rgvComplete = false;
@@ -2872,7 +2847,7 @@
log.error("灏忚溅澶嶄綅澶辫触锛屽皬杞﹀彿{}锛�",rgvProtocol.getRgvNo());
break;
}
- WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1().intValue());
+ WrkMast wrkMast1 = wrkMastService.selectByWrkNo(rgvProtocol.getTaskNo1());
wrkMast1.setPdcType("Y");
wrkMastService.updateById(wrkMast1);
@@ -2894,6 +2869,57 @@
}catch (Exception e){
log.error("灏忚溅澶嶄綅绾跨▼鎶ラ敊锛�"+e);
}
+ }
+
+ /**
+ * rgv鍑哄叆搴撲换鍔′笅鍙�
+ */
+ public synchronized void rgvIoExecute(Integer mark) {
+ List<BasRgvMap> basRgvMaps = basRgvMapService.selectList(new EntityWrapper<>());
+
+ for (BasRgvMap rgvSlave:basRgvMaps) {
+ // 鑾峰彇鍫嗗灈鏈轰俊鎭�
+ RgvThread rgvThread = (RgvThread) SlaveConnection.get(SlaveType.Rgv, rgvSlave.getRgvNo());
+ RgvProtocol rgvProtocol = rgvThread.getRgvProtocol();
+ if (rgvProtocol == null) {
+ continue;
+ }
+ BasRgv basRgv = basRgvService.selectById(rgvSlave.getRgvNo());
+ if (basRgv == null) {
+ log.error("{}鍙稲GV灏氭湭鍦ㄦ暟鎹簱杩涜缁存姢锛�4", rgvSlave.getRgvNo());
+ continue;
+ }
+
+ // 鍙湁褰撳爢鍨涙満绌洪棽 骞朵笖 鏃犱换鍔℃椂鎵嶇户缁墽琛�
+ if (rgvProtocol.getStatusType() == CrnStatusType.IDLE && rgvProtocol.getTaskNo() == 0 && rgvProtocol.getModeType() == CrnModeType.AUTO
+ && rgvProtocol.getLoaded() == 0 && rgvProtocol.getForkPos() == 0) {
+ News.warnNoLog(""+mark+" - 0"+" - 寮�濮嬫墽琛屽爢鍨涙満鍏ュ嚭搴撲綔涓氫笅鍙�");
+ // 濡傛灉鏈�杩戜竴娆℃槸鍏ュ簱妯″紡
+ if (rgvProtocol.getLastIo().equals("I")) {
+ if (basCrnp.getInEnable().equals("Y")) {
+ //mark - 1 - ....
+ this.crnStnToLoc(crn, crnProtocol,mark); // 鍏ュ簱
+ crnProtocol.setLastIo("O");
+ } else if (basCrnp.getOutEnable().equals("Y")) {
+ //mark - 2 - ....
+ this.locToCrnStn(crn, crnProtocol,mark); // 鍑哄簱
+ crnProtocol.setLastIo("I");
+ }
+ }
+ // 濡傛灉鏈�杩戜竴娆℃槸鍑哄簱妯″紡
+ else if (crnProtocol.getLastIo().equals("O")) {
+ if (basCrnp.getOutEnable().equals("Y")) {
+ this.locToCrnStn(crn, crnProtocol,mark); // 鍑哄簱
+ crnProtocol.setLastIo("I");
+ } else if (basCrnp.getInEnable().equals("Y")) {
+ this.crnStnToLoc(crn, crnProtocol,mark); // 鍏ュ簱
+ crnProtocol.setLastIo("O");
+ }
+ }
+ }
+
+ }
+// News.infoNoLog(""+mark+" - 0"+" - 鍫嗗灈鏈哄叆鍑哄簱浣滀笟涓嬪彂鎵ц瀹屾垚");
}
/**
* 鎵ц灏忚溅鎼繍浠诲姟
@@ -2985,7 +3011,7 @@
List<WrkMastSta> wrkMastStaList = wrkMastStaMapper.selectNoInterfereList(route, route);
for (WrkMastSta wrkMastSta : wrkMastStaList){
List<Integer> staNos = Arrays.asList(1042, 1105, 1038, 1036, 2037);//鍏ュ簱鍙�
- if (staNos.contains(wrkMastSta.getStaStart())) {
+ if (staNos.contains(wrkMastSta.getStaStart())) {//闈炲叆搴撳彛锛堝嚭搴撳彛锛夐檺鍒�
continue;
}
boolean sign = rgvTakeFullAll(basRgvMap.getRgvNo(), wrkMastSta); //鍛戒护涓嬪彂
@@ -3062,6 +3088,7 @@
// 鏍规嵁杈撻�佺嚎plc閬嶅巻
for (DevpSlave devp : slaveProperties.getDevp()) {
// 閬嶅巻鍏ュ簱鍙� 鍏ュ簱棰勮皟搴�
+ for()
List<Integer> staNos = Arrays.asList(1042, 1043, 1105, 1104);
for (Integer staNo : staNos) {
SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, devp.getId());
diff --git a/src/main/java/com/zy/core/MainProcess.java b/src/main/java/com/zy/core/MainProcess.java
index 3fa201d..4e09342 100644
--- a/src/main/java/com/zy/core/MainProcess.java
+++ b/src/main/java/com/zy/core/MainProcess.java
@@ -123,7 +123,12 @@
// RGV ===>> 灏忚溅浠诲姟浣滀笟涓嬪彂
try{
+ //RGV灏忚溅鍑哄叆鍙d笅鍙�
+ mainService.rgvIoExecute(11);
+ //灏忚溅鍙栬揣涓嬪彂
mainService.rgvRunWrkMastFullSta();
+ //灏忚溅鏀捐揣浠诲姟鏇存柊
+ //灏忚溅棰勮皟搴�
mainService.rgvPreScheduling();
}catch (Exception e){
log.error("RGV ===>> 灏忚溅浠诲姟浣滀笟涓嬪彂寮傚父"+e);
diff --git a/src/main/java/com/zy/core/model/RgvSlave.java b/src/main/java/com/zy/core/model/RgvSlave.java
index 5e6df0b..90e3310 100644
--- a/src/main/java/com/zy/core/model/RgvSlave.java
+++ b/src/main/java/com/zy/core/model/RgvSlave.java
@@ -37,6 +37,15 @@
// RGV鍑哄簱鐩爣绔欑偣
private List<RgvStn> rgvDestStn = new ArrayList<>();
+ // RGV鍏ュ簱鍙栬揣绔欑偣
+ private List<RgvStn> rgvInTStn = new ArrayList<>();
+ // RGV鍏ュ簱鏀捐揣绔欑偣
+ private List<RgvStn> rgvInPStn = new ArrayList<>();
+ // RGV鍑哄簱鍙栬揣绔欑偣
+ private List<RgvStn> rgvOutTStn = new ArrayList<>();
+ //RGV鍑哄簱鏀捐揣绔欑偣
+ private List<RgvStn> rgvOutPStn = new ArrayList<>();
+
@Data
public static class RgvStn {
diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java
index 3ce65ed..67269ed 100644
--- a/src/main/java/com/zy/core/thread/RgvThread.java
+++ b/src/main/java/com/zy/core/thread/RgvThread.java
@@ -114,8 +114,8 @@
command2.setTaskNo2(0); // 宸ヤ綔鍙�
command2.setAckFinish2(true); // 浠诲姟瀹屾垚纭浣�
command2.setTaskStatus2(RgvTaskStatusType.NONE); // 浠诲姟妯″紡
- command2.setSourceStaNo2((short)0); // 婧愮珯
- command2.setDestinationStaNo2((short)0); // 鐩爣绔�
+ command2.setTargetPosition2( 0); // 婧愮珯
+ command2.setEndStaNo2(0); // 鐩爣绔�
command2.setCommand(false);
write2(command2);
break;
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 3104bca..cf079d9 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -174,27 +174,62 @@
port: 502
rack: 0
slot: 0
- #RGV鍏ュ簱婧愮珯鐐�
- rgvInSStn[0]:
+ #RGV鍏ュ簱鍙栬揣绔欑偣
+ rgvInTStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 100
- rgvInSStn[1]:
+ staNo: 1042
+ rgvInTStn[1]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 101
- #RGV鍑哄簱婧愮珯鐐�
- rgvOutSStn[0]:
+ staNo: 1105
+ rgvInTStn[2]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 110
- rgvOutSStn[1]:
+ staNo: 1038
+ rgvInTStn[3]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 112
- #RGV鐩爣绔欑偣
- rgvDestStn[0]:
+ staNo: 1036
+ #RGV鍏ュ簱鏀捐揣绔欑偣
+ rgvInPStn[0]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 102
- rgvDestStn[1]:
+ staNo: 1004
+ rgvInPStn[1]:
devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 103
+ staNo: 1014
+ rgvInPStn[2]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1018
+ rgvInPStn[3]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1028
+ rgvInPStn[4]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1035
+ #RGV鍑哄簱鍙栬揣绔欑偣
+ rgvOutTStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1007
+ rgvOutTStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1010
+ rgvOutTStn[2]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1021
+ rgvOutTStn[3]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1024
+ rgvOutTStn[4]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1031
+ #RGV鍑哄簱鏀捐揣绔欑偣
+ rgvOutPStn[0]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1106
+ rgvOutPStn[1]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1041
+ rgvOutPStn[2]:
+ devpPlcId: ${wcs-slave.devp[0].id}
+ staNo: 1036
+
# RGV绌挎杞�2
rgv[1]:
id: 2
@@ -202,27 +237,46 @@
port: 502
rack: 0
slot: 0
- #RGV鍏ュ簱婧愮珯鐐�
- rgvInSStn[0]:
- devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 100
- rgvInSStn[1]:
- devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 101
- #RGV鍑哄簱婧愮珯鐐�
- rgvOutSStn[0]:
- devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 110
- rgvOutSStn[1]:
- devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 112
- #RGV鐩爣绔欑偣
- rgvDestStn[0]:
- devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 102
- rgvDestStn[1]:
- devpPlcId: ${wcs-slave.devp[0].id}
- staNo: 103
+ #RGV鍏ュ簱鍙栬揣绔欑偣
+ rgvInTStn[0]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2037
+ #RGV鍏ュ簱鏀捐揣绔欑偣
+ rgvInPStn[0]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2006
+ rgvInPStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2012
+ rgvInPStn[2]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2018
+ rgvInPStn[3]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2024
+ rgvInPStn[4]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2030
+ #RGV鍑哄簱鍙栬揣绔欑偣
+ rgvOutTStn[0]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2003
+ rgvOutTStn[1]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2009
+ rgvOutTStn[2]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2015
+ rgvOutTStn[3]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2021
+ rgvOutTStn[4]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2027
+ #RGV鍑哄簱鏀捐揣绔欑偣
+ rgvOutPStn[0]:
+ devpPlcId: ${wcs-slave.devp[1].id}
+ staNo: 2031
# 杈撻�佺嚎1
devp[0]:
id: 1
diff --git a/src/main/webapp/static/js/console.map.js b/src/main/webapp/static/js/console.map.js
index 5bb44ae..6c02ca4 100644
--- a/src/main/webapp/static/js/console.map.js
+++ b/src/main/webapp/static/js/console.map.js
@@ -309,8 +309,8 @@
"stns": [
{"type": "track", "id": "lb_trCart11", "text": "", "top": 65, "left": 1000, "width": 6, "height": 560},
{"type": "track", "id": "lb_trCart12", "text": "", "top": 65, "left": 1020, "width": 6, "height": 560},
- { "type": "stn", "id": "site-1", "text": "1", "top": 84, "left": 984, "width": 30, "height": 20 },
- { "type": "stn", "id": "site-2", "text": "2", "top": 84, "left": 1016, "width": 30, "height": 20 },
+ { "type": "stn", "id": "site-2", "text": "2", "top": 84, "left": 984, "width": 30, "height": 20 },
+ { "type": "stn", "id": "site-1", "text": "1", "top": 84, "left": 1016, "width": 30, "height": 20 },
{ "type": "stn", "id": "site-1001", "text": "1001", "top": 84, "left": 870, "width": 35, "height": 20 },
{ "type": "stn", "id": "site-1002", "text": "1002", "top": 84, "left": 907, "width": 35, "height": 20 },
@@ -446,8 +446,8 @@
"width": 2900,
"height": 600,
"stns": [
- { "type": "stn", "id": "site-3", "text": "1", "top": 84, "left": 984, "width": 30, "height": 20 },
- { "type": "stn", "id": "site-4", "text": "2", "top": 84, "left": 1016, "width": 30, "height": 20 },
+ { "type": "stn", "id": "site-4", "text": "2", "top": 84, "left": 984, "width": 30, "height": 20 },
+ { "type": "stn", "id": "site-3", "text": "1", "top": 84, "left": 1016, "width": 30, "height": 20 },
{"type": "track", "id": "lb_trCart21", "text": "", "top": 65, "left": 1000, "width": 6, "height": 560},
{"type": "track", "id": "lb_trCart22", "text": "", "top": 65, "left": 1020, "width": 6, "height": 560},
{ "type": "stn", "id": "site-2003", "text": "2003", "top": 84, "left": 926, "width": 54, "height": 20 },
--
Gitblit v1.9.1