From bdf490f12fa38c99593fdace907fa5379cc04413 Mon Sep 17 00:00:00 2001
From: zjj <3272660260@qq.com>
Date: 星期日, 07 一月 2024 15:17:42 +0800
Subject: [PATCH] #输送报警对接+回退

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |   53 ++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 42 insertions(+), 11 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 11e0670..3ef813e 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -63,6 +63,15 @@
         add(308);add(309);add(310);add(311);
         add(312);
     }};
+    public static final ArrayList<Integer> staNosErr1 = new ArrayList<Integer>() {{
+        add(101); add(103); add(105);
+    }};
+    public static final ArrayList<Integer> staNosErr2 = new ArrayList<Integer>() {{
+        add(201); add(203); add(205);
+    }};
+    public static final ArrayList<Integer> staNosErr3 = new ArrayList<Integer>() {{
+        add(301); add(303); add(305);
+    }};
     private ArrayList<Integer> getStaNo() {
         switch (slave.getId()) {
             case 1:
@@ -71,6 +80,18 @@
                 return staNos2;
             case 3:
                 return staNos3;
+            default:
+                throw new CoolException("鑾峰彇绔欑偣澶辫触锛�");
+        }
+    }
+    private ArrayList<Integer> getStaNoErr() {
+        switch (slave.getId()) {
+            case 1:
+                return staNosErr1;
+            case 2:
+                return staNosErr2;
+            case 3:
+                return staNosErr3;
             default:
                 throw new CoolException("鑾峰彇绔欑偣澶辫触锛�");
         }
@@ -173,9 +194,7 @@
 //                    System.out.println(i);
                 }
                 Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-//                if(siteId==206){
-//                    System.out.println(1);
-//                }
+
                 StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
                     staProtocol = new StaProtocol();
@@ -195,10 +214,28 @@
                 staProtocol.setFullPlt(status[5]);  // 婊℃墭鐩�
                 staProtocol.setHigh(status[6]);     // 楂樺簱浣�
                 staProtocol.setLow(status[7]);      // 浣庡簱浣�
-
+                staProtocol.setWeight(status[8]);  //鏄惁涓洪噸璐�
                 if (!staProtocol.isPakMk() && !staProtocol.isLoading()) {
                     staProtocol.setPakMk(true);
                 }
+            }
+        }
+        //澶栧舰妫�娴�
+        ArrayList<Integer> staNoErrs = getStaNoErr();
+        int staNoErrsSize = staNoErrs.size();
+        OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.800", (short) (staNoErrsSize*8));
+        if (resultErr.IsSuccess){
+            for (int i = 0;i<3;i++){
+                Integer siteId = staNoErrs.get(i); // 绔欑偣缂栧彿
+                boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i*4+2, 1);
+                StaProtocol staProtocol = station.get(siteId);
+                staProtocol.setFrontErr(status[0]);
+                staProtocol.setBackErr(status[1]);
+                staProtocol.setHighErr(status[2]);
+                staProtocol.setLeftErr(status[3]);
+                staProtocol.setRightErr(status[4]);
+                staProtocol.setWeightErr(status[5]);
+                staProtocol.setBarcodeErr(status[6]);
             }
         }
 
@@ -285,16 +322,10 @@
             return;
         }
         int index = staNos.indexOf(staProtocol.getSiteId());
-//        int[] array = new int[2];
-//        array[0] = staProtocol.getWorkNo();
-//        array[1] = staProtocol.getStaNo();
+
         OperateResult write1 = siemensS7Net.Write("DB100." + (index*6+4),staProtocol.getStaNo());
         OperateResult write = siemensS7Net.Write("DB100." + index*6, staProtocol.getWorkNo().intValue());
 
-
-//        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
-//        Thread.sleep(500);
-//        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 鐩爣绔�
 
         if (!write.IsSuccess && !write1.IsSuccess) {
             staProtocol = station.get(staProtocol.getSiteId());

--
Gitblit v1.9.1