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