From a1e94379b115721b2e604070dc48063b8016f72f Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期二, 21 十月 2025 19:32:59 +0800
Subject: [PATCH] 侧面输送线出库码盘信息对接

---
 src/main/java/com/zy/core/thread/SiemensDevpThread.java |  303 ++++++++++++++++++++++++++++++++++++++++++--------
 1 files changed, 255 insertions(+), 48 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index af6d15e..baec76c 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -38,23 +38,61 @@
 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); // 渚ч潰浠� index 16寮�濮� 闀垮害12
-        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(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); // 渚ч潰浠� index 16寮�濮� 闀垮害12
+        add(201);
+        add(202);
+        add(203);
+        add(204);
+        add(205);
+        add(206);
+        add(207);
+        add(208);
+        add(209);
+        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);
     }};
 
     // 姝i潰5涓潯鐮佹壂鎻忕珯
     public static final ArrayList<Integer> barcodeSite2 = new ArrayList<Integer>() {{
-        add(102);add(105);add(108);add(111);add(114);
+        add(102);
+        add(105);
+        add(108);
+        add(111);
+        add(114);
     }};
 
     // 渚ч潰涓変釜鏉$爜鎵弿绔�
     public static final ArrayList<Integer> barcodeSite = new ArrayList<Integer>() {{
-        add(202);add(206);add(211);
+        add(202);
+        add(206);
+        add(211);
     }};
 
     /**
@@ -121,6 +159,11 @@
                         write((StaProtocol) task.getData());
                         read();
                         break;
+                    // 鍑哄叆搴撳啓鐮佺洏淇℃伅
+                    case 3:
+                        write3((StaProtocol) task.getData());
+                        read();
+                        break;
                     default:
                         break;
                 }
@@ -159,6 +202,7 @@
         }
     }
 
+
     @Override
     public boolean connect() {
         boolean result = false;
@@ -185,6 +229,8 @@
      * 璇诲彇鐘舵�� ====> 鏁村潡plc
      */
     private void read() throws InterruptedException {
+        // 鏇存柊鍏ュ嚭搴撴ā寮�
+        updateIoMode();
 
         ArrayList<Integer> staNos = getStaNo();
         int staNoSize = staNos.size();
@@ -252,30 +298,36 @@
             }
 
             // 璇诲彇姝i潰鏉$爜
-            OperateResultExOne<byte[]> result2 = siemensS7Net.Read("DB103.0", (short) (5 * 40));
-            if (result2.IsSuccess) {
+            OperateResultExOne<byte[]> result3 = siemensS7Net.Read("DB103.0", (short) (5 * 40));
+            if (result3.IsSuccess) {
                 for (int i = 0; i < 5; i++) {
-                    String barcode = siemensS7Net.getByteTransform().TransString(result2.Content, i * 40, 40, "UTF-8");
-                    if(!Cools.isEmpty()){
+                    String barcode = siemensS7Net.getByteTransform().TransString(result3.Content, i * 40, 40, "UTF-8");
+                    if (!Cools.isEmpty()) {
                         barcode = barcode.trim();
                     }
-                    List<String> barcodeList = Arrays.stream(barcode.split(",")).collect(Collectors.toList());
+                    List<String> barcodeList = Arrays.stream(barcode.split(";")).collect(Collectors.toList());
                     Iterator<String> iterator = barcodeList.iterator();
-                    while (iterator.hasNext()){
+                    while (iterator.hasNext()) {
                         String next = iterator.next();
-                        if(next.length() == 6) {
+                        if (next.length() == 6) {
                             barcode = next;
                             iterator.remove();
                             break;
                         }
                     }
 
-                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i);
+                    BarcodeThread barcodeThread = (BarcodeThread) SlaveConnection.get(SlaveType.Barcode, i + 1);
                     if (!Cools.isEmpty(barcodeThread) && !barcodeThread.getBarcode().equals(barcode)) {
                         barcodeThread.setBarcode(barcode);
                     }
                     StaProtocol staProtocol = station.get(barcodeSite2.get(i));
                     if (staProtocol != null) {
+                        while (iterator.hasNext()) {
+                            String next = iterator.next();
+                            if (next.length() < 7 || next.length() > 10 || !next.matches("[0-9]*")) {
+                                iterator.remove();
+                            }
+                        }
                         staProtocol.setMatIdList(barcodeList);
                     }
                 }
@@ -368,11 +420,11 @@
             }
 
             // 璇绘闈㈡晠闅滃弽棣�
-            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.922.0", (short) (16 * 4));
+            OperateResultExOne<byte[]> resultErr = siemensS7Net.Read("DB101.2340.0", (short) (16 * 2));
             if (resultErr.IsSuccess) {
                 for (int i = 0; i < 16; i++) {
                     Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 4, 1);
+                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErr.Content, i * 2, 2);
                     StaProtocol staProtocol = station.get(siteId);
                     staProtocol.setBreakerErr(status[0]);
                     staProtocol.setInfraredErr(status[1]);
@@ -382,16 +434,20 @@
                     staProtocol.setInverterErr(status[5]);
                     staProtocol.setContactErr(status[6]);
                     staProtocol.setUpcontactErr(status[7]);
-
+                    staProtocol.setPushTheEnvelopeErr(status[8]);
+                    staProtocol.setRaiseTheLowerLimitErr(status[9]);
+                    staProtocol.setLeftProtectionTriggersErr(status[10]);
+                    staProtocol.setRightProtectionTriggersErr(status[11]);
+                    staProtocol.setGratingBlockingErr(status[12]);
                 }
             }
 
             // 璇讳晶闈㈡晠闅滃弽棣�
-            OperateResultExOne<byte[]> resultErrCM = siemensS7Net.Read("DB101.2540.0", (short) (12 * 4));
+            OperateResultExOne<byte[]> resultErrCM = siemensS7Net.Read("DB101.2540.0", (short) (12 * 2));
             if (resultErrCM.IsSuccess) {
                 for (int i = 16; i < staNoSize; i++) {
                     Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
-                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrCM.Content, (i - 16) * 4, 1);
+                    boolean[] status = siemensS7Net.getByteTransform().TransBool(resultErrCM.Content, (i - 16) * 2, 1);
                     StaProtocol staProtocol = station.get(siteId);
                     staProtocol.setBreakerErr(status[0]);
                     staProtocol.setInfraredErr(status[1]);
@@ -481,15 +537,18 @@
         String workNoAddress;
         // 鐩爣绔欏湴鍧�
         String staNoAddress;
-        // 楂樺害绫诲瀷鍦板潃
+        // 鐩爣绔欏湴鍧�
         String heightAddress = null;
         if (index < 16) {
             workNoAddress = "DB100." + index * 4;
             staNoAddress = "DB100." + (index * 4 + 2);
-            heightAddress = "DB104." + (index * 4);
         } else {
             workNoAddress = "DB100." + (400 + (index - 16) * 4);
             staNoAddress = "DB100." + (400 + (index - 16) * 4 + 2);
+        }
+        int i = barcodeSite2.indexOf(staProtocol.getSiteId());
+        if (i != -1) {
+            heightAddress = "DB104." + (i * 2);
         }
 
         OperateResult writeResult;
@@ -498,15 +557,49 @@
         //浠诲姟涓嬪彂鎴愬姛鏍囪瘑
         boolean writeFlag = false;
         while (writeCount < 5) {
-            OperateResult writeResult1 = siemensS7Net.Write(workNoAddress, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
-            OperateResult writeResult2 = siemensS7Net.Write(staNoAddress, staProtocol.getStaNo());// 鐩爣绔�
             if (!Cools.isEmpty(staProtocol.getHeight()) && heightAddress != null) {
-                OperateResult writeResult3 = siemensS7Net.Write(heightAddress, Short.valueOf(staProtocol.getHeight()));    // 楂樺害绫诲瀷
+                OperateResult writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight()));
+                writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight()));
+                writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight()));
+                writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight()));
+                log.info("鍐欏叆楂樺害鍦板潃锛歿},{}", heightAddress, writeResult3);
                 if (!writeResult3.IsSuccess) {
-                    log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触锛屽皾璇曢噸鏂板啓鍏ワ紝杈撳叆鍙傛暟={}锛岃緭鍑哄弬鏁�={}", JSON.toJSON(staProtocol), writeResult3);// 鍐欏叆杈撻�佺嚎鍛戒护澶辫触锛屽皾璇曢噸鏂板啓鍏ワ紝杈撳叆鍙傛暟={}锛岃緭鍑哄弬鏁�={}", JSON.toJSON(staProtocol), writeResult3);
-                    writeResult3 = siemensS7Net.Write(heightAddress, staProtocol.getHeight());    // 楂樺害绫诲瀷
+                    //fangzhi xierukushibai,jiu duoxiejici,meixunhuan
+                    writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight()));
+                    if (!writeResult3.IsSuccess) {
+                        writeResult3 = siemensS7Net.Write(heightAddress, Short.parseShort(staProtocol.getHeight()));    // 鐩爣绔�
+                    }
                 }
             }
+            // 渚ч潰鍑哄簱锛岀粰杈撻�佺嚎鍐欐潯鐮�
+            Short staNo = staProtocol.getStaNo();
+            String barcode = staProtocol.getBarcode();
+            if (staNo == 203 || staNo == 207 || staNo == 212) {
+                if (Cools.isEmpty(barcode)) {
+                    log.error("渚ч潰鍑哄簱鍒帮細{}绔欑偣锛屾潯鐮佸�间负绌猴紝浠诲姟鍙凤細{}", staNo, staProtocol.getWorkNo());
+                } else {
+
+                    String[] split = barcode.split("#");
+                    int offset = 48 + (staNo - 201) * 24;
+                    byte[] bytes = new byte[(split.length + 1) * 6];
+                    for (int j = 0, k = 0; j < split.length; j++) {
+                        String s = split[j];
+                        for (int m = 0; m < s.length(); m++) {
+                            bytes[k++] = (byte) s.charAt(m);
+                        }
+                    }
+
+                    OperateResult writeResult4 = siemensS7Net.Write("DB79" + offset, bytes);
+                    if (writeResult4.IsSuccess) {
+                        log.info("渚ч潰鍑哄簱鍒帮細{}绔欑偣锛岀粰杈撻�佺嚎鍐欐潯鐮侊細{}鎴愬姛", staNo, barcode);
+                    } else {
+                        log.error("渚ч潰鍑哄簱鍒帮細{}绔欑偣锛岀粰杈撻�佺嚎鍐欐潯鐮侊細{}澶辫触", staNo, barcode);
+                    }
+                }
+            }
+
+            OperateResult writeResult1 = siemensS7Net.Write(workNoAddress, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+            OperateResult writeResult2 = siemensS7Net.Write(staNoAddress, staProtocol.getStaNo());    // 鐩爣绔�
             if (writeResult1.IsSuccess && writeResult2.IsSuccess) {
                 Thread.sleep(200);
                 OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100." + index * 4, (short) 2);
@@ -515,9 +608,9 @@
 //                    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;
+                    writeFlag = true;
+                    log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+                    break;
 //                    } else {//杩斿洖缁撴灉鏄垚鍔熶簡锛屼絾鏄湡瀹炲�间笉鐩稿悓
 //                        writeCount++;
 //                        OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝浣嗘槸璇诲彇浠诲姟鍊间笉涓�鑷淬�傝緭閫佺嚎plc缂栧彿={1}锛岀珯鐐规暟鎹�={2},鍐欏叆娆℃暟={3}",
@@ -565,6 +658,48 @@
 
     }
 
+    private void write3(StaProtocol staProtocol){
+
+        int lx = 0,mp = 0,lev = 0;
+
+        switch (staProtocol.getSiteId()) {
+            case 205: lx = 16;mp = 18;lev=344;break;
+            case 207: lx = 24;mp = 26;lev=348;break;
+            case 210: lx = 36;mp = 38;lev=354;break;
+            case 212: lx = 44;mp = 46;lev=358;break;
+            default:
+                log.error("鍐欑爜鐩樹俊鎭珯鐐规湁璇細{}" , staProtocol.getSiteId());
+                return;
+        }
+
+        String addressPre = "DB79.";
+
+        //浠诲姟涓嬪彂娆℃暟
+        int writeCount = 0;
+        //浠诲姟涓嬪彂鎴愬姛鏍囪瘑
+        boolean writeFlag = false;
+        while (writeCount < 5) {
+            OperateResult writeResult1 = siemensS7Net.Write(addressPre + lx, staProtocol.getLx());    // 宸ヨ绫诲瀷
+            OperateResult writeResult2 = siemensS7Net.Write(addressPre + mp, staProtocol.getMp());    // 鏄惁鐮佺洏
+            OperateResult writeResult3 = siemensS7Net.Write(addressPre + lev, staProtocol.getLev());    // 鐮佺洏灞傛暟
+            if (writeResult1.IsSuccess && writeResult2.IsSuccess && writeResult3.IsSuccess) {
+                    writeFlag = true;
+                    log.info("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+                    break;
+            } else {
+                writeCount++;
+                log.error("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+            }
+        }
+
+        //鍐欏懡浠ゅ皾璇曚簡5娆¤繕鏄け璐ヤ簡
+        if (!writeFlag) {
+            //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒�
+            MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
+            log.error("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ラ噸鏂版帹閫侀槦鍒椼�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+        }
+    }
+
 //    /**
 //     * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
 //     */
@@ -578,9 +713,10 @@
 //        array[1] = staProtocol.getStaNo();
 //        OperateResult write = siemensS7Net.Write("DB100." + index*4, array);
 //
-////        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
-////        Thread.sleep(500);
-////        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 鐩爣绔�
+
+    /// /        OperateResult write = siemensS7Net.Write("DB100." + index*2, staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+    /// /        Thread.sleep(500);
+    /// /        OperateResult write1 = siemensS7Net.Write("DB101." + index*2, staProtocol.getStaNo());    // 鐩爣绔�
 //
 //        if (!write.IsSuccess) {
 //            staProtocol = station.get(staProtocol.getSiteId());
@@ -600,7 +736,6 @@
 //            }
 //        }
 //    }
-
     private void write2(StaProtocol staProtocol) throws InterruptedException {
         if (null == staProtocol) {
             return;
@@ -688,27 +823,53 @@
     // 鏇存柊鍏ュ嚭搴撴ā寮�
     private void updateIoMode() throws InterruptedException {
         if (slave.getId() == 1 && this.ioModeOf1F1 != null) {
-            if (!siemensS7Net.Write("DB4.2", this.ioModeOf1F1.id).IsSuccess) {
-                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎21F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={2}", slave.getId()));
+            if (!siemensS7Net.Write("DB105.0", this.ioModeOf1F1.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎21F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                log.error("鍐欏叆杈撻�佺嚎1F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+            }
+        }
+        if (slave.getId() == 1 && this.ioModeOf1F2 != null) {
+            if (!siemensS7Net.Write("DB105.2", this.ioModeOf1F2.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                log.error("鍐欏叆杈撻�佺嚎1F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+            }
+        }
+        if (slave.getId() == 1 && this.ioModeOf1F3 != null) {
+            if (!siemensS7Net.Write("DB105.4", this.ioModeOf1F3.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                log.error("鍐欏叆杈撻�佺嚎1F3鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+            }
+        }
+        if (slave.getId() == 1 && this.ioModeOf1F4 != null) {
+            if (!siemensS7Net.Write("DB105.6", this.ioModeOf1F4.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                log.error("鍐欏叆杈撻�佺嚎1F4鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+            }
+        }
+        if (slave.getId() == 1 && this.ioModeOf1F5 != null) {
+            if (!siemensS7Net.Write("DB105.8", this.ioModeOf1F5.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                log.error("鍐欏叆杈撻�佺嚎1F5鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+            }
+        }
+
+
+        if (slave.getId() == 1 && this.ioModeOf2F1 != null) {
+            if (!siemensS7Net.Write("DB105.10", this.ioModeOf2F1.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
                 log.error("鍐欏叆杈撻�佺嚎2F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
             }
         }
-        if (slave.getId() == 1 && this.ioModeOf1F2 != null) {
-            if (!siemensS7Net.Write("DB4.4", this.ioModeOf1F2.id).IsSuccess) {
-                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={3}", slave.getId()));
+        if (slave.getId() == 1 && this.ioModeOf2F2 != null) {
+            if (!siemensS7Net.Write("DB105.12", this.ioModeOf2F2.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
                 log.error("鍐欏叆杈撻�佺嚎2F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
             }
         }
-        if (slave.getId() == 1 && this.ioModeOf1F2 != null) {
-            if (!siemensS7Net.Write("DB4.2", this.ioModeOf1F2.id).IsSuccess) {
-                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={2}", slave.getId()));
-                log.error("鍐欏叆杈撻�佺嚎3F1鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
-            }
-        }
-        if (slave.getId() == 1 && this.ioModeOf1F2 != null) {
-            if (!siemensS7Net.Write("DB4.4", this.ioModeOf1F2.id).IsSuccess) {
-                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={3}", slave.getId()));
-                log.error("鍐欏叆杈撻�佺嚎3F2鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+        if (slave.getId() == 1 && this.ioModeOf2F3 != null) {
+            if (!siemensS7Net.Write("DB105.14", this.ioModeOf2F3.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎2F3鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                log.error("鍐欏叆杈撻�佺嚎2F3鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
             }
         }
     }
@@ -729,6 +890,52 @@
     public void close() {
         siemensS7Net.ConnectClose();
     }
+    public static void main(String[] args) throws Exception {
+        DevpSlave slave = new DevpSlave();
+        slave.setIp("10.49.210.41");
+//        SiemensDevpThread devpThread = new SiemensDevpThread(slave);
+//        devpThread.connect();
+        SiemensS7Net siemensS7Net = new SiemensS7Net(SiemensPLCS.S1200, slave.getIp());
+        siemensS7Net.setRack(slave.getRack().byteValue());
+        siemensS7Net.setSlot(slave.getSlot().byteValue());
+        OperateResult connect = siemensS7Net.ConnectServer();
+        // 渚ч潰鍑哄簱锛岀粰杈撻�佺嚎鍐欐潯鐮�
+        Short staNo = 212;
+        String barcode = "800001#123456#811112#811113";
 
 
+        String[] split = barcode.split("#");
+        int offset = 48 + (staNo - 201) * 24;
+        byte[] bytes = new byte[(split.length + 1) * 6];
+        for (int j = 0, k = 0; j < split.length; j++) {
+            String s = split[j];
+            for (int m = 0; m < s.length(); m++) {
+                bytes[k++] = (byte) s.charAt(m);
+            }
+        }
+
+        OperateResult writeResult4 = siemensS7Net.Write("DB79" + offset, bytes);
+        if (writeResult4.IsSuccess) {
+            log.info("渚ч潰鍑哄簱鍒帮細{}绔欑偣锛岀粰杈撻�佺嚎鍐欐潯鐮侊細{}鎴愬姛", staNo, barcode);
+        } else {
+            log.error("渚ч潰鍑哄簱鍒帮細{}绔欑偣锛岀粰杈撻�佺嚎鍐欐潯鐮侊細{}澶辫触", staNo, barcode);
+        }
+
+//        devpThread.write2(0);
+//        devpThread.read();
+//        // 鍐�
+//        StaProtocol staProtocol = devpThread.getStation().get(1);
+//        staProtocol.setWorkNo((short) 232);
+//        staProtocol.setStaNo((short) 6);
+//        staProtocol.setAutoing(true);
+//        staProtocol.setEmptyMk(true);
+//        staProtocol.setInEnable(true);
+//        devpThread.write(staProtocol);
+//        System.out.println("----------------------------------------");
+//        // 璇�
+//        devpThread.read();
+//        System.out.println(JSON.toJSONString(devpThread.station));
+
+    }
+
 }

--
Gitblit v1.9.1