From f30a3efc28ee4d3f67ddf76bc360b676595e4b80 Mon Sep 17 00:00:00 2001
From: TQS <56479841@qq.com>
Date: 星期三, 01 三月 2023 12:38:30 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/core/thread/SiemensDevpThread.java b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
index 497ca67..a31efdc 100644
--- a/src/main/java/com/zy/core/thread/SiemensDevpThread.java
+++ b/src/main/java/com/zy/core/thread/SiemensDevpThread.java
@@ -15,6 +15,7 @@
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
 import com.zy.core.cache.SlaveConnection;
+import com.zy.core.enums.IoModeType;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.model.DevpSlave;
 import com.zy.core.model.Task;
@@ -58,6 +59,17 @@
         this.slave = slave;
     }
 
+    /**
+     * 鍏ュ嚭搴撴ā寮�
+     * 0锛氭湭鐭�
+     * 1锛氬叆搴撳惎鍔ㄤ腑
+     * 2.鍏ュ簱妯″紡
+     * 3.鍑哄簱鍚姩涓� 锛堜笉鑳界敓鎴愬叆搴撳伐浣滄。锛�
+     * 4.鍑哄簱妯″紡
+     */
+    public IoModeType ioModeOf1F = IoModeType.NONE;
+    public IoModeType ioModeOf2F = IoModeType.NONE;
+
     @Override
     @SuppressWarnings("InfiniteLoopStatement")
     public void run() {
@@ -77,6 +89,8 @@
                     // 鍐欐暟鎹� ID+鐩爣绔�
                     case 2:
                         write((StaProtocol)task.getData());
+                        Thread.sleep(300);
+                        read();
                         break;
                     default:
                         break;
@@ -114,6 +128,8 @@
      * 璇诲彇鐘舵�� ====> 鏁村潡plc
      */
     private void read() throws InterruptedException {
+        // 鏇存柊鍏ュ嚭搴撴ā寮�
+        updateIoMode();
         OperateResultExOne<byte[]> result = siemensS7Net.Read("DB100.0", (short) 50);
         if (result.IsSuccess) {
             for (int i = 0; i < 25; i++) {
@@ -238,6 +254,22 @@
         }
     }
 
+    // 鏇存柊鍏ュ嚭搴撴ā寮�
+    private void updateIoMode() throws InterruptedException {
+        if (this.ioModeOf1F != IoModeType.NONE) {
+            if (!siemensS7Net.Write("DB100.180", this.ioModeOf1F.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎103鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                News.error("鍐欏叆杈撻�佺嚎103鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+            }
+        }
+        if (this.ioModeOf2F != IoModeType.NONE) {
+            if (!siemensS7Net.Write("DB100.182", this.ioModeOf2F.id).IsSuccess) {
+                OutputQueue.DEVP.offer(MessageFormat.format("銆恵0}銆戝啓鍏ヨ緭閫佺嚎203鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={1}", slave.getId()));
+                News.error("鍐欏叆杈撻�佺嚎203鍏ュ嚭搴撴ā寮忓け璐ャ�傝緭閫佺嚎plc缂栧彿={}", slave.getId());
+            }
+        }
+    }
+
     /**
      * 蹇冭烦
      */

--
Gitblit v1.9.1