From 0bdf2da5b1407d7d0dbb90ba11a6ba0f18856ac0 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期五, 09 五月 2025 16:55:17 +0800
Subject: [PATCH] 单机调试完成

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |  134 ++++++++++++++++++--------------------------
 1 files changed, 54 insertions(+), 80 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 77c318a..25b99fe 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -40,55 +40,13 @@
 public class SiemensDevpThread implements Runnable, DevpThread {
 
     public static final ArrayList<Integer> staNos1 = new ArrayList<Integer>() {{
-        add(101);
-        add(102);
-        add(103);
-        add(104);
-        add(105);
-        add(106);
-        add(107);
-        add(108);
-        add(109);
-        add(110);
-        add(111);
-        add(112);
-        add(113);
-        add(114);
-        add(115);
-        add(116);
-        add(117);
-        add(118);
-        add(119);
-        add(120);
-
-        add(201);
-        add(202);
-        add(203);
-        add(204);
-        add(205);
-        add(206);
-        add(207);
-        add(208);
-        add(209);
-        add(210);
-        add(211);
-        add(212);
-        add(213);
-        add(214);
-        add(215);
-        add(216);
-        add(217);
+        add(101);add(102);add(103);add(104);add(105);add(106);add(107);add(108);add(109);add(110);
+        add(111);add(112);add(113);add(114);add(115);add(116);
+        add(201);add(202);add(203);add(205);add(206);add(207);add(210);add(211);add(212);
     }};
 
     public static final ArrayList<Integer> staNos2 = new ArrayList<Integer>() {{
-        add(301);
-        add(302);
-        add(303);
-        add(304);
-        add(305);
-        add(306);
-        add(307);
-        add(308);
+        add(301);add(302);add(303);add(304);add(305);add(306);add(307);add(308);
     }};
     /**
      * 鍏ュ嚭搴撴ā寮�
@@ -218,10 +176,11 @@
      * 璇诲彇鐘舵�� ====> 鏁村潡plc
      */
     private void read() throws InterruptedException {
-        // 鏇存柊鍏ュ嚭搴撴ā寮�
-//        updateIoMode();
+
         ArrayList<Integer> staNos = getStaNo();
         int staNoSize = staNos.size();
+
+        // 璇昏揣浣嶄俊鎭弽棣�
         OperateResultExOne<byte[]> result = siemensS7Net.Read("DB101.0", (short) (staNoSize * 8));
         if (result.IsSuccess) {
             for (int i = 0; i < staNoSize; i++) {
@@ -252,32 +211,47 @@
             }
         }
 
-
         if (slave.getId() == 1) {
-            //鏉$爜
             //Thread.sleep(200);
-            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.848.0", (short) 8);
+            // 璇诲彇鏉$爜
+            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB101.1404", (short) (staNoSize*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 + 1);
-                    if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
-                        barcodeThread.setBarcode(barcode);
+                for (int i =0; i <staNoSize; i++) {
+                    int barcodeId = 0;
+                    switch (i){
+                        case 1:barcodeId=1;break;
+                        case 4:barcodeId=2;break;
+                        case 7:barcodeId=3;break;
+                        case 10:barcodeId=4;break;
+                        case 13:barcodeId=5;break;
+                        default:
+                    }
+                    if (barcodeId != 0) {
+                        String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 8, 6, "UTF-8");
+                        BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, barcodeId);
+                        if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
+                            barcodeThread.setBarcode(barcode);
+                        }
                     }
                 }
             }
 
-            //澶栧舰妫�娴�
-            OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.810.0", (short) (barcodeSize * 1));
-            StaProtocol staProtocol1 = station.get(116);
-            boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, 0, 1);
-            staProtocol1.setFrontErr(status1[0]);
-            staProtocol1.setBackErr(status1[1]);
-            staProtocol1.setHighErr(status1[2]);
-            staProtocol1.setLeftErr(status1[3]);
-            staProtocol1.setRightErr(status1[4]);
-            staProtocol1.setWeightErr(status1[5]);
-            staProtocol1.setBarcodeErr(status1[6]);
+            // 璇诲彇澶栧舰妫�娴�
+            OperateResultExOne<byte[]> resultErr1 = siemensS7Net.Read("DB101.936", (short) (staNoSize * 8));
+            if (resultErr1.IsSuccess) {
+                for (int i = 0; i < staNoSize; i++) {
+                    Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+                    StaProtocol staProtocol = station.get(siteId);
+                    boolean[] status1 = siemensS7Net.getByteTransform().TransBool(resultErr1.Content, i * 2, 1);
+                    staProtocol.setFrontErr(status1[0]);
+                    staProtocol.setBackErr(status1[1]);
+                    staProtocol.setHighErr(status1[2]);
+                    staProtocol.setLeftErr(status1[3]);
+                    staProtocol.setRightErr(status1[4]);
+                    staProtocol.setWeightErr(status1[5]);
+                    staProtocol.setBarcodeErr(status1[6]);
+                }
+            }
 
             OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (staNoSize * 4));
             if (resultErr.IsSuccess) {
@@ -347,25 +321,25 @@
         //浠诲姟涓嬪彂鎴愬姛鏍囪瘑
         boolean writeFlag = false;
         while (writeCount < 5) {
-            OperateResult writeResult1 = siemensS7Net.Write("DB100." + index * 6, staProtocol.getWorkNo().intValue());    // 宸ヤ綔鍙�
-            OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index * 6 + 4), staProtocol.getStaNo());    // 鐩爣绔�
+            OperateResult writeResult1 = siemensS7Net.Write("DB100." + index * 4, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+            OperateResult writeResult2 = siemensS7Net.Write("DB100." + (index * 4 + 2), staProtocol.getStaNo());    // 鐩爣绔�
             if (writeResult1.IsSuccess && writeResult2.IsSuccess) {
                 Thread.sleep(200);
-                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 6, (short) 6);
+                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 2);
                 if (readResult.IsSuccess) {
-                    Integer workNo = siemensS7Net.getByteTransform().TransInt32(readResult.Content, 0);
-                    short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 4);
-                    if (workNo.equals(staProtocol.getWorkNo().intValue()) && staProtocol.getStaNo().equals(staNo)) {
-                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
+//                    short workNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+//                    short staNo = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 2);
+//                    if (staProtocol.getWorkNo().equals(workNo) && staProtocol.getStaNo().equals(staNo)) {
+//                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
                         writeFlag = true;
                         log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
                         break;
-                    } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
-                        writeCount++;
-                        OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
-                                slave.getId(), JSON.toJSON(staProtocol), writeCount));
-                        log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
-                    }
+//                    } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
+//                        writeCount++;
+//                        OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
+//                                slave.getId(), JSON.toJSON(staProtocol), writeCount));
+//                        log.error("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+//                    }
                 } else {
                     writeCount++;
                     OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤鍙栧け璐ャ�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",

--
Gitblit v1.9.1