From d79cdd2c6f3ffa6822b9a15576081c1d87e1d0ba Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 01 八月 2023 13:12:32 +0800
Subject: [PATCH] 出入库调度

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

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index df325e7..c6302bd 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -78,14 +78,18 @@
                         break;
                     // 鍐欐暟鎹� ID+鐩爣绔�
                     case 2:
-                        write((StaProtocol)task.getData());
+                        write((StaProtocol) task.getData());
                         read();
                         break;
                     // 鍑哄叆搴撴ā寮�
                     case 3:
-                        write3((StaProtocol)task.getData());
+                        write3((StaProtocol) task.getData());
                         read();
                         break;
+                    //102绔欏洖閫�淇″彿
+                    case 5:
+                        write5((StaProtocol) task.getData());
+                        read();
                     default:
                         break;
                 }
@@ -466,6 +470,50 @@
     }
 
     /**
+     * 鍐欏叆 ID+鐩爣绔� =====> 鍗曠珯鐐瑰啓鍏�
+     */
+    private void write5(StaProtocol staProtocol) throws InterruptedException {
+        if (null == staProtocol) {
+            return;
+        }
+
+        OperateResult writeResult;
+        //浠诲姟涓嬪彂娆℃暟
+        int writeCount = 0;
+        while(writeCount < 5){
+            writeResult = siemensS7Net.Write("DB100.310", staProtocol.getRollback102().shortValue());
+            if(writeResult.IsSuccess){
+                Thread.sleep(200);
+                OperateResultExOne<byte[]> readResult = siemensS7Net.Read("DB100.310", (short)2);
+                if(readResult.IsSuccess){
+                    short rollback = siemensS7Net.getByteTransform().TransInt16(readResult.Content, 0);
+                    if (staProtocol.getRollback102() == (int) rollback) {
+                        //浠诲姟鍛戒护鍐欏叆鎴愬姛
+                        log.info("鍐欏叆杈撻�佺嚎鍛戒护鍚庤繑鍥炴垚鍔燂紝骞朵笖鍥炶鎴愬姛銆傝緭閫佺嚎plc缂栧彿={}锛寋}锛屽啓鍏ユ鏁�={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+                        return;
+                    } 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}",
+                        slave.getId(), JSON.toJSON(staProtocol),writeCount));
+                log.error("鍐欏叆杈撻�佺嚎鍛戒护澶辫触銆傝緭閫佺嚎plc缂栧彿={}锛岀珯鐐规暟鎹�={},鍐欏叆娆℃暟={}", slave.getId(), JSON.toJSON(staProtocol), writeCount);
+            }
+            Thread.sleep(200);
+        }
+    }
+
+    /**
      * 蹇冭烦
      */
     private void heartbeat(){

--
Gitblit v1.9.1