From 425a0c6764e932594c7289a62c84fe7c695ee27a Mon Sep 17 00:00:00 2001
From: 1 <1>
Date: 星期一, 01 十二月 2025 15:02:38 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   63 +++++++++++++++++++++++++++----
 1 files changed, 55 insertions(+), 8 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index b24cb6d..e11fb71 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -121,6 +121,12 @@
         put(2031, 464);put(2032, 348);put(2033, 556);put(2034, 92);put(2035, 0);
         put(2037, 256);
 
+//        put(2101, 0);put(2102, 92);put(2103, 184);put(2104, 276);put(2105, 368);
+//        put(2106, 460);put(2107, 552);put(2108, 644);put(2109, 736);put(2110, 828);
+//        put(2111, 920);put(2112, 1012);put(2113, 1104);put(2114, 1196);put(2115, 1288);
+//        put(2116, 1380);put(2117, 1472);put(2118, 1564);put(2119, 1656);put(2120, 1748);
+//        put(2121, 1840);put(2122, 1932);
+
         put(4001, 0);put(4002, 116);put(4003, 508);put(4004, 392);put(4005, 300);
         put(4006, 208);
         // 鍏朵粬绔欑偣鍚岀悊缁х画鍔�
@@ -167,6 +173,10 @@
         put(1036, 512);put(1103, 476);put(1047, 452);put(2037, 270);put(4001,294);
 
     }};
+    public static final Map<Integer, Integer> siteAgvOffsetMap = new HashMap<Integer, Integer>() {{
+        put(1037, 0);put(1039, 2);put(1041, 4);put(2033, 0);put(2034,2);put(4003,4);put(4006,6);
+
+    }};
 
     // 鐗规畩绔欑偣闆嗗悎
     private static final Set<Integer> specialSites = new HashSet<>(
@@ -179,6 +189,8 @@
     private static final Set<Integer> specialSites3 = new HashSet<>(//鏈烘鑷傜珯鐐�
             Arrays.asList(1098,1093,1087,1082,1074,1071,1061,1058));
 
+    private static final Set<Integer> specialAgvSites = new HashSet<>(//agv鍙栨斁璐х珯鐐�
+            Arrays.asList(1037,1039,1041,2033,2034,4003,4006));
 
     public static final ArrayList<Integer> BarcodeList = new ArrayList<Integer>() {{
         add(0); add(1); add(2);
@@ -329,6 +341,9 @@
                         write((StaProtocol)task.getData());
                         log.error("杈撻�佺嚎涓嬪彂鍛戒护锛�"+((StaProtocol) task.getData()).getWorkNo()+","+((StaProtocol) task.getData()).getStaNo());
                         break;
+//                    case 3:
+//                        writeAgv((StaProtocol)task.getData());
+//                        break;
                     default:
                         break;
                 }
@@ -448,8 +463,11 @@
         OperateResultExOne<byte[]> result3 = null;//1042-1053
         OperateResultExOne<byte[]> result4 = null;//1054-1079
         OperateResultExOne<byte[]> result5 = null;//1080-1110
+        OperateResultExOne<byte[]> result6 = null;//2101-2122
+
         OperateResultExOne<byte[]> resultErr = null;
-        OperateResultExOne<byte[]> resultAlarm = null;
+        OperateResultExOne<byte[]> resultPlc = null;
+        OperateResultExOne<byte[]> resultAgv = null;
 
         if(staNoSize == 102){
             result1 = siemensS7Net.Read("DB100.0", (short) (2768));//1001-1028
@@ -458,14 +476,16 @@
             result4 = siemensS7Net.Read("DB103.0", (short) (2824));//1054-1079
             result5 = siemensS7Net.Read("DB102.0", (short) (3428));//1080-1110
             resultErr = siemensS7Net.Read("DB3.0", (short) (536));
-//            resultAlarm = siemensS7Net.Read("DB800.0", (short) (220));
+//            resultAgv = siemensS7Net.Read("DB901.0", (short) (5)); //agv鍙栨斁璐ц姹�
+//            resultPlc = siemensS7Net.Read("DB902.0", (short) (5)); //杈撻�佺嚎纭
         }else{
             result1 = siemensS7Net.Read("DB200.0", (short) (3000));//2001-2030
             result2 = siemensS7Net.Read("DB201.0", (short) (720));//2031-2037
             result3 = siemensS7Net.Read("DB400.0", (short) (600));//4001-4006
+//            result6 = siemensS7Net.Read("DB400.0", (short) (7400));//2101-2122
             resultErr = siemensS7Net.Read("DB3.0", (short) (354));
-//            resultAlarm = siemensS7Net.Read("DB800.0", (short) (126));
-
+//            resultAgv = siemensS7Net.Read("DB901.0", (short) (7)); //agv鍙栨斁璐ц姹�
+//            resultPlc = siemensS7Net.Read("DB902.0", (short) (7)); //杈撻�佺嚎纭
         }
 
 
@@ -496,9 +516,12 @@
                 }else{
                     if (siteId < 2031) {
                         result = result1;
-                    } else if (siteId < 4001) {
+                    } else if (siteId < 2040) {
                         result = result2;
-                    } else {
+                    } else if(siteId<4000){
+//                        result = result6;
+                    }
+                    else {
                         result = result3;
                     }
                 }
@@ -631,6 +654,30 @@
                     staProtocol.setSensorDecL(statusSign[19]);
                     staProtocol.setSensorArriveR(statusSign[20]);
                     staProtocol.setSensorDecR(statusSign[21]);
+
+//                    Integer offsetAgv = siteAgvOffsetMap.get(siteId);
+//
+//                    boolean[] statusPlc = siemensS7Net.getByteTransform().TransBool(resultPlc.Content, offsetAgv, 1);
+//                    boolean[] statusAgv = siemensS7Net.getByteTransform().TransBool(resultAgv.Content, offsetAgv, 1);
+//
+//                    if(specialAgvSites.contains(siteId)){
+//                        // 蹇冭烦
+//                        staProtocol.setHeartbeatDevp(statusPlc[0]);
+//                        staProtocol.setHeartbeatAgv(statusAgv[0]);
+//                        // 杈撻�佺嚎锛圥LC锛�
+//                        staProtocol.setConveyorAllowPick(statusPlc[1]);
+//                        staProtocol.setConveyorAllowPlace(statusPlc[2]);
+//                        staProtocol.setConveyorPickDone(statusPlc[3]);
+//                        staProtocol.setConveyorPlaceDone(statusPlc[4]);
+//                        staProtocol.setSafetyDoorOpen(statusPlc[5]);
+//                        staProtocol.setExternalEmergencyStop(statusPlc[6]);
+//                        // AGV
+//                        staProtocol.setAgvRequestPlace(statusAgv[1]);
+//                        staProtocol.setAgvRequestPick(statusAgv[2]);
+//                        staProtocol.setAgvPickDone(statusAgv[3]);
+//                        staProtocol.setAgvPlaceDone(statusAgv[4]);
+//                        staProtocol.setAgvForbidden(statusAgv[5]);
+//                    }
 
 
                     if( (staProtocol.getPassTimeOut() ||
@@ -899,8 +946,8 @@
                     staProtocol.isHighErr()? 1L:0L,
                     staProtocol.isLeftErr()? 1L:0L,
                     staProtocol.isRightErr()? 1L:0L,
-                    staProtocol.isBarcodeErr()? 1L:0L
-
+                    staProtocol.isBarcodeErr()? 1L:0L,
+                    staProtocol.getErrCode()
             );
             bean.insert(basDevpOpt);
         } catch (Exception ignore) {

--
Gitblit v1.9.1