From d2bb7362d92f0809572e15f8299ac608fe263a87 Mon Sep 17 00:00:00 2001
From: whycq <123456>
Date: 星期一, 21 四月 2025 16:23:47 +0800
Subject: [PATCH] 输送线命令下发失败重新推送队列

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   77 ++++++++++++++++++++++++++------------
 1 files changed, 52 insertions(+), 25 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index afc84f3..2f6fcd1 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -53,6 +53,8 @@
         add(401);add(402);
     }};
 
+    private Integer count=0;
+
     /**
      * 鏉$爜鏁伴噺
      */
@@ -123,26 +125,30 @@
      * 鍒濆鍖栫珯鐐圭姸鎬�
      */
     private void initSite() {
+        count ++;
         ArrayList<Integer> staNos = getStaNo();
-        // 绔欑偣缂栧彿
-        for (Integer siteId : staNos) {
-            StaProtocol staProtocol = station.get(siteId);
-            if (null == staProtocol) {
-                staProtocol = new StaProtocol();
-                staProtocol.setSiteId(siteId);
-                station.put(siteId, staProtocol);
-            }
-            staProtocol.setWorkNo((short) 0);    // ID
-            staProtocol.setAutoing(false);      // 鑷姩
-            staProtocol.setLoading(false);      // 鏈夌墿
-            staProtocol.setInEnable(false);     // 鍙叆
-            staProtocol.setOutEnable(false);    // 鍙嚭
-            staProtocol.setEmptyMk(false);      // 绌烘澘淇″彿
-            staProtocol.setStaNo((short) 0);     // 鐩爣绔�
+        if(count > 10) {
+            // 绔欑偣缂栧彿
+            for (Integer siteId : staNos) {
+                StaProtocol staProtocol = station.get(siteId);
+                if (null == staProtocol) {
+                    staProtocol = new StaProtocol();
+                    staProtocol.setSiteId(siteId);
+                    station.put(siteId, staProtocol);
+                }
+                staProtocol.setWorkNo((short) 0);    // ID
+                staProtocol.setAutoing(false);      // 鑷姩
+                staProtocol.setLoading(false);      // 鏈夌墿
+                staProtocol.setInEnable(false);     // 鍙叆
+                staProtocol.setOutEnable(false);    // 鍙嚭
+                staProtocol.setEmptyMk(false);      // 绌烘澘淇″彿
+                staProtocol.setStaNo((short) 0);     // 鐩爣绔�
 
-            if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
-                staProtocol.setPakMk(true);
+                if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
+                    staProtocol.setPakMk(true);
+                }
             }
+            count = 0;
         }
     }
 
@@ -224,6 +230,7 @@
                     if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                         staProtocol.setPakMk(true);
                     }
+                    count = 0;
                 }
             }
         } else if(slave.getId()==2) {
@@ -246,20 +253,35 @@
                         staProtocol.setPakMk(true);
                     }
                 }
+                count = 0;
             }
         }
 
         Thread.sleep(200);
-        OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.150",(short)(barcodeSize*8));
-        if (result2.IsSuccess) {
-            for (int i = 0; i < barcodeSize; i++) {
-                String barcode = siemensS7Net.getByteTransform().TransString(result2.Content,i*8,8, "UTF-8");
-                BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
-                if(!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-                    barcodeThread.setBarcode(barcode);
+        if(slave.getId()==1) {
+            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.150", (short) (barcodeSize * 8));
+            if (result2.IsSuccess) {
+                for (int i = 0; i < barcodeSize; i++) {
+                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
+                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
+                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                        barcodeThread.setBarcode(barcode);
+                    }
                 }
-            }
 
+            }
+        } else if(slave.getId()==2) {
+            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB100.150", (short) (1 * 8));
+            if (result2.IsSuccess) {
+                for (int i = 0; i < 1; i++) {
+                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 8, "UTF-8");
+                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 4);
+                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                        barcodeThread.setBarcode(barcode);
+                    }
+                }
+
+            }
         }
 
 //        OperateResultExOne<Short> result2 = siemensS7Net.ReadInt16("DB200.0");
@@ -315,6 +337,11 @@
 //        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 鐩爣绔�
 
         if (!write.IsSuccess) {
+            log.warn("鐩樼偣鍐嶅叆搴撶粰杈撻�佺嚎涓嬪彂鍛戒护瀹屾垚锛歿}",JSON.toJSON(staProtocol));
+            boolean result = MessageQueue.offer(SlaveType.Devp, slave.getId(), new Task(2, staProtocol));
+            if (!result) {
+                log.error("鐩樼偣鍐嶅叆搴撳啓鍏ヨ緭閫佺嚎绔欑偣鏁版嵁澶辫触锛岄噸鏂版帹閫侀槦鍒楀け璐ワ紒锛侊紒 [plc缂栧彿锛歿}]", slave.getId());
+            }
             staProtocol = station.get(staProtocol.getSiteId());
             if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
                 staProtocol.setPakMk(true);

--
Gitblit v1.9.1