From 945764de58898661a3f3197e58353141b5deaf91 Mon Sep 17 00:00:00 2001
From: pang.jiabao <pang_jiabao@163.com>
Date: 星期三, 22 十月 2025 16:21:15 +0800
Subject: [PATCH] 侧面输送线出入库流程对接

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

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index baec76c..a1f5de1 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -164,6 +164,11 @@
                         write3((StaProtocol) task.getData());
                         read();
                         break;
+                    // 渚ч潰鐮佺洏瀹屾垚涓婃姤wms鎴愬姛鍚庨噸缃畃lc
+                    case 4:
+                        write4((StaProtocol) task.getData());
+                        read();
+                        break;
                     default:
                         break;
                 }
@@ -295,6 +300,15 @@
                         staProtocol.setPakMk(true);
                     }
                 }
+            }
+
+            // 璇讳晶闈㈢爜鐩樺畬鎴愪俊鍙�
+            OperateResultExOne<byte[]> resultMp = siemensS7Net.Read("DB79.362", (short) 4);
+            if (resultMp.IsSuccess) {
+                StaProtocol staProtocol207 = station.get(207);
+                StaProtocol staProtocol212 = station.get(212);
+                staProtocol207.setMpCompletedFlag(siemensS7Net.getByteTransform().TransInt16(resultMp.Content, 0));
+                staProtocol212.setMpCompletedFlag(siemensS7Net.getByteTransform().TransInt16(resultMp.Content, 2));
             }
 
             // 璇诲彇姝i潰鏉$爜
@@ -580,7 +594,7 @@
                 } else {
 
                     String[] split = barcode.split("#");
-                    int offset = 48 + (staNo - 201) * 24;
+                    int offset = (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];
@@ -684,7 +698,7 @@
             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);
+                    log.info("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔熴�恵},{},{},{}銆戯紝骞朵笖鍥炶鎴愬姛锛屽啓鍏ユ鏁�={}", staProtocol.getSiteId(),staProtocol.getMp(),staProtocol.getLx(),staProtocol.getLev(), writeCount);
                     break;
             } else {
                 writeCount++;
@@ -693,10 +707,38 @@
         }
 
         //鍐欏懡浠ゅ皾璇曚簡5娆¤繕鏄け璐ヤ簡
-        if (!writeFlag) {
-            //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒�
-            MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
-            log.error("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ラ噸鏂版帹閫侀槦鍒椼�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+//        if (!writeFlag) {
+//            //閲嶆柊娣诲姞鏁版嵁鍒颁换鍔¢槦鍒�
+//            MessageQueue.offer(SlaveType.Devp, 1, new Task(3, staProtocol));
+//            log.error("鐮佺洏淇℃伅鍐欏叆杈撻�佺嚎鍛戒护灏濊瘯5娆″け璐ラ噸鏂版帹閫侀槦鍒椼�傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={}", slave.getId(), JSON.toJSON(staProtocol));
+//        }
+    }
+
+    private void write4(StaProtocol staProtocol){
+
+        int offset = 0;
+
+        switch (staProtocol.getSiteId()) {
+            case 207: offset = 362;break;
+            case 212: offset = 364 ;break;
+            default:
+                log.error("閲嶇疆鐮佺洏淇″彿绔欑偣鏈夎锛歿}" , staProtocol.getSiteId());
+                return;
+        }
+
+        String addressPre = "DB79.";
+
+        //浠诲姟涓嬪彂娆℃暟
+        int writeCount = 0;
+        while (writeCount < 5) {
+            OperateResult writeResult1 = siemensS7Net.Write(addressPre + offset, (short) 0);
+            if (writeResult1.IsSuccess) {
+                log.info("渚ч潰鐮佺洏瀹屾垚涓婃姤wms鎴愬姛鍚庨噸缃俊鍙峰啓鍏ヨ緭閫佺嚎鍛戒护鍚庤繑鍥炴垚鍔熴�恵}銆戯紝骞朵笖鍥炶鎴愬姛锛屽啓鍏ユ鏁�={}", staProtocol.getSiteId(), writeCount);
+                break;
+            } else {
+                writeCount++;
+                log.error("渚ч潰鐮佺洏瀹屾垚涓婃姤wms鎴愬姛鍚庨噸缃俊鍙峰啓鍏ヨ緭閫佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+            }
         }
     }
 

--
Gitblit v1.9.1