From ee84c191faa2c235703eaa8cdc765729bed71a4f Mon Sep 17 00:00:00 2001
From: clll <1320612696@qq.com>
Date: 星期三, 06 九月 2023 17:37:46 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.150:10101/r/CanadaMes

---
 springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java |  144 ++++++++++++++++++++++++++++-------------------
 1 files changed, 85 insertions(+), 59 deletions(-)

diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java b/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
index c64dcaf..4fc251a 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/Plcaction.java
@@ -6,70 +6,96 @@
 import java.util.List;
 
 public class Plcaction extends Thread {
-  @Override
-  public void run() {
-    while (this != null) {
-      try {
-        Thread.sleep(10000);
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
+    private static final long SEND_INTERVAL = 2000; // 鍙戦�佹秷鎭殑鏃堕棿闂撮殧
+    private static final long WRITE_INTERVAL = 100; // 鍐欏叆PLC鐨勬椂闂撮棿闅�
 
-      List<Short> paramlist = S7control.getinstance().ReadWord("DB100.DBW", 12);
+    @Override
+    public void run() {
+        try {
+            // 鍙戦�佷竴娆℃秷鎭�
+            sendMessages();
 
-      JSONObject jsonObject = new JSONObject();
-      jsonObject.append("params", new short[] { 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0
-      });
-      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("action");
-      if (sendwServer != null) {
-        sendwServer.sendMessage(jsonObject.toString());
-      }
+            // 寤惰繜涓�娈垫椂闂�
+            Thread.sleep(SEND_INTERVAL);
 
-      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("action");
-      if (webSocketServer != null) {
-        List<String> messages = webSocketServer.getMessages();
+            while (true) {
+                // 鍐欏叆PLC
+                writeToPlc();
+                Thread.sleep(WRITE_INTERVAL);
 
-        String addressList = "DB100.DBW0";
-        // addressList.add("DB100.DBW0");
-        // addressList.add("DB100.DBW2");
-        // addressList.add("DB100.DBW4");
-        // addressList.add("DB100.DBW6");
-        // addressList.add("DB100.DBW8");
-        // addressList.add("DB100.DBW10");
-        // addressList.add("DB100.DBW12");
-        // addressList.add("DB100.DBW14");
-        // addressList.add("DB100.DBW16");
-        // addressList.add("DB100.DBW18");
-        // addressList.add("DB100.DBW20");
-        // addressList.add("DB100.DBW22");
-
-        if (!messages.isEmpty()) {
-          // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
-          String lastMessage = messages.get(messages.size() - 1);
-          System.out.println("messages锛�" + messages);
-          String[] parts = lastMessage.split(",");
-          List<Short> messageValues = new ArrayList<>();
-          for (String part : parts) {
-            try {
-              // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
-              String cleanedPart = part.replaceAll("[^0-9-]", "");
-              short value = Short.parseShort(cleanedPart.trim());
-              messageValues.add(value);
-            } catch (NumberFormatException e) {
-              // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-
-              e.printStackTrace();
+                // 鍙戦�佹秷鎭�
+                sendMessages();
+                Thread.sleep(SEND_INTERVAL);
             }
-          }
 
-          // 灏嗘秷鎭�煎啓鍏� PLC
-          // S7control.getinstance().WriteWord(addressList, messageValues);
-          System.out.println("messageValues锛�" + messageValues);
-          System.out.println("addressList锛�" + addressList);
-          // 娓呯┖娑堟伅鍒楄〃
-          webSocketServer.clearMessages();
+        } catch (InterruptedException e) {
+            e.printStackTrace();
         }
-      }
     }
-  }
-}
+
+
+    private void sendMessages() {
+        WebSocketServer sendwServer = WebSocketServer.sessionMap.get("action");
+        if (sendwServer != null) {
+
+            List<Boolean> paramlist = S7control.getinstance().ReadBits("DB100.DBW", 12);
+            //        new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0}
+            JSONObject jsonObject = new JSONObject();
+            jsonObject.append("params", new short[]{1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0});
+
+            sendwServer.sendMessage(jsonObject.toString());
+        }
+
+
+
+
+    }
+
+    private void writeToPlc() {
+        WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("action");
+        if (webSocketServer != null) {
+            List<String> messages = webSocketServer.getMessages();
+
+            String addressList = "DB100.DBW0";
+
+            if (!messages.isEmpty()) {
+                // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                String lastMessage = messages.get(messages.size() - 1);
+                System.out.println("messages锛�" + messages);
+                String[] parts = lastMessage.split(",");
+                List<Integer> messageValues = new ArrayList<>();
+                for (String part : parts) {
+                    try {
+                        // 浣跨敤姝e垯琛ㄨ揪寮忔竻闄ら潪鏁板瓧瀛楃
+                        String cleanedPart = part.replaceAll("[^0-9-]", "");
+                        Integer value = Integer.parseInt(cleanedPart.trim());
+                        messageValues.add(value);
+                    } catch (NumberFormatException e) {
+                        // 濡傛灉鏃犳硶瑙f瀽涓烘暣鏁扮被鍨嬶紝鍒欏拷鐣ヨ閮ㄥ垎
+                        e.printStackTrace();
+                    }
+                }
+
+                // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃
+                List<Boolean> messageBooleans = new ArrayList<>();
+                for (Integer value : messageValues) {
+                    messageBooleans.add(value == 0 ? true : false);
+                }
+
+                // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC
+                S7control.getinstance().WriteBit(addressList, messageBooleans);
+                System.out.println("messageValues锛�" + messageBooleans);
+                System.out.println("addressList锛�" + addressList);
+
+                // 娓呯┖娑堟伅鍒楄〃
+                webSocketServer.clearMessages();
+            }
+        }
+    }
+
+    private List<Boolean> paramList() {
+        // 鑾峰彇鍙傛暟鍒楄〃鐨勯�昏緫
+
+        return new ArrayList<>(); // 鍋囪杩斿洖绌哄垪琛�
+    }
+}
\ No newline at end of file

--
Gitblit v1.8.0