From c49dc2f40279bcc360948cea68dec69cf213b85f Mon Sep 17 00:00:00 2001
From: wuyouming666 <2265557248@qq.com>
Date: 星期一, 25 十二月 2023 15:33:34 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java |  423 ++++++++++++++++++----------------------------------
 1 files changed, 149 insertions(+), 274 deletions(-)

diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
index 51b0640..458ccf8 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.java
@@ -10,321 +10,196 @@
 import java.util.List;
 
 public class PlcManualonePosition2 extends Thread {
-  private Configuration config;
+    private Configuration config;
 
-  public PlcManualonePosition2() throws IOException {
-    config = new Configuration("config.properties");
-  }
-
-  public static class PLCBooleanConverter {
-
-    public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
-      // 璁$畻鎵�鏈夊垪琛ㄤ腑鍏冪礌鐨勬�绘暟
-      int totalSize = 0;
-      for (List<Boolean> list : lists) {
-        totalSize += list.size();
-      }
-
-      // 鍒涘缓涓�涓冻澶熷ぇ鐨勬暟缁勬潵瀛樻斁鎵�鏈夌殑浜岃繘鍒跺��
-      short[] binaryShortArray = new short[totalSize];
-
-      // 褰撳墠鏁扮粍濉厖浣嶇疆鎸囬拡
-      int currentIndex = 0;
-
-      // 閬嶅巻鎵�鏈夌殑鍒楄〃
-      for (List<Boolean> list : lists) {
-        // 灏嗘瘡涓竷灏斿�艰浆鎹负 0 鎴� 1 骞跺~鍏ユ暟缁�
-        for (Boolean value : list) {
-          binaryShortArray[currentIndex++] = (short) (value ? 1 : 0);
-        }
-      }
-
-      return binaryShortArray;
+    public PlcManualonePosition2() throws IOException {
+        config = new Configuration("config.properties");
     }
-  }
 
 
+    MessageHandler customS7Control = new MessageHandler();
+
+    public static class PLCBooleanConverter {
+
+        public static short[] convertListsToBinaryShortArray(List<Boolean>... lists) {
+            // 璁$畻鎵�鏈夊垪琛ㄤ腑鍏冪礌鐨勬�绘暟
+            int totalSize = 0;
+            for (List<Boolean> list : lists) {
+                totalSize += list.size();
+            }
+
+            // 鍒涘缓涓�涓冻澶熷ぇ鐨勬暟缁勬潵瀛樻斁鎵�鏈夌殑浜岃繘鍒跺��
+            short[] binaryShortArray = new short[totalSize];
+
+            // 褰撳墠鏁扮粍濉厖浣嶇疆鎸囬拡
+            int currentIndex = 0;
+
+            // 閬嶅巻鎵�鏈夌殑鍒楄〃
+            for (List<Boolean> list : lists) {
+                // 灏嗘瘡涓竷灏斿�艰浆鎹负 0 鎴� 1 骞跺~鍏ユ暟缁�
+                for (Boolean value : list) {
+                    binaryShortArray[currentIndex++] = (short) (value ? 1 : 0);
+                }
+            }
+
+            return binaryShortArray;
+        }
+    }
 
 
-  @Override
-  public void run() {
-    while (this != null) {
-      try {
-        Thread.sleep(500);
+    @Override
+    public void run() {
+        while (this != null) {
+            try {
+                Thread.sleep(500);
 
-      } catch (InterruptedException e) {
-        e.printStackTrace();
-      }
-      // this.readValue();
-      // String PlcAddress = this.name;
-      // Integer Plccount = this.count;
+            } catch (InterruptedException e) {
+                e.printStackTrace();
+            }
+            // this.readValue();
+            // String PlcAddress = this.name;
+            // Integer Plccount = this.count;
 
-      List<String> addresses = new ArrayList<>();
-      addresses.add("DB100.116");
-      addresses.add("DB100.16");
+            List<String> addresses = new ArrayList<>();
+            addresses.add("DB100.116");
+            addresses.add("DB100.16");
 
-      addresses.add("DB103.20");
-      List<Short> arraylist = S7control.getinstance().readWords(addresses);
-      // System.out.println(arraylist);
+            addresses.add("DB106.2");
+            List<Short> arraylist = S7control.getinstance().readWords(addresses);
+            // System.out.println(arraylist);
 
-      List<String> addresses2 = new ArrayList<>();
-      addresses2.add("DB100.118");
-      addresses2.add("DB100.192");
+            List<String> addresses2 = new ArrayList<>();
+            addresses2.add("DB100.118");
+            addresses2.add("DB100.192");
 
-      addresses2.add("DB103.22");
-      List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
+            addresses2.add("DB106.14");
+            List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
 
-      List<String> addresses9 = new ArrayList<>();
+            List<String> addresses9 = new ArrayList<>();
 
-      addresses9.add("DB104.1.2");
-      addresses9.add("DB104.1.3");
-      List<Boolean> arraylist9 = S7control.getinstance().readBits(addresses9);
-      short[] params2 = new short[arraylist9.size()];
-      for (int i = 0; i < arraylist9.size(); i++) {
-        boolean value = arraylist9.get(i);
-        params2[i] = value ? (short) 1 : (short) 0;
-      }
+            addresses9.add("DB104.1.2");
+            addresses9.add("DB104.1.3");
+            List<Boolean> arraylist9 = S7control.getinstance().readBits(addresses9);
+            short[] params2 = new short[arraylist9.size()];
+            for (int i = 0; i < arraylist9.size(); i++) {
+                boolean value = arraylist9.get(i);
+                params2[i] = value ? (short) 1 : (short) 0;
+            }
 
-      // Short[] values1 = { 1, 2, 3 };
-      // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
-      // Short[] values2 = { 1, 2, 3 };
-      // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
-      // Boolean[] values9 = { false, true };
-      // List<Boolean> arraylist9 = new ArrayList<>(Arrays.asList(values9));
-      // short[] params2 = new short[arraylist9.size()];
-      // for (int i = 0; i < arraylist9.size(); i++) {
-      // boolean value = arraylist9.get(i);
-      // params2[i] = value ? (short) 1 : (short) 0;
-      // }
+            // Short[] values1 = { 1, 2, 3 };
+            // List<Short> arraylist = new ArrayList<>(Arrays.asList(values1));
+            // Short[] values2 = { 1, 2, 3 };
+            // List<Short> arraylist2 = new ArrayList<>(Arrays.asList(values2));
+            // Boolean[] values9 = { false, true };
+            // List<Boolean> arraylist9 = new ArrayList<>(Arrays.asList(values9));
+            // short[] params2 = new short[arraylist9.size()];
+            // for (int i = 0; i < arraylist9.size(); i++) {
+            // boolean value = arraylist9.get(i);
+            // params2[i] = value ? (short) 1 : (short) 0;
+            // }
 
-      // Boolean[] values10 = { false, true };
-      List<String> addresses10 = new ArrayList<>();
+            // Boolean[] values10 = { false, true };
+            List<String> addresses10 = new ArrayList<>();
 
-      addresses10.add("DB104.9.0");
-      addresses10.add("DB104.9.1");
-      List<Boolean> arraylist10 = S7control.getinstance().readBits(addresses10);
-      short[] params3 = new short[arraylist10.size()];
-      for (int i = 0; i < arraylist10.size(); i++) {
-        boolean value = arraylist10.get(i);
-        params3[i] = value ? (short) 1 : (short) 0;
-      }
+            addresses10.add("DB104.9.0");
+            addresses10.add("DB104.9.1");
+            List<Boolean> arraylist10 = S7control.getinstance().readBits(addresses10);
+            short[] params3 = new short[arraylist10.size()];
+            for (int i = 0; i < arraylist10.size(); i++) {
+                boolean value = arraylist10.get(i);
+                params3[i] = value ? (short) 1 : (short) 0;
+            }
 
 
-
-      //A01鍚姩鍦板潃
-      List<String> A01start = Arrays.asList(config.getProperty("mlp2.A01start"));
-      //A02鍚姩鍦板潃
-      List<String> A02start = Arrays.asList(config.getProperty("mlp2.A02start"));
+            //A01鍚姩鍦板潃
+            List<String> A01start = Arrays.asList(config.getProperty("mlp2.A01start"));
+            //A02鍚姩鍦板潃
+            List<String> A02start = Arrays.asList(config.getProperty("mlp2.A02start"));
 
 
-
-      List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
-      List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
+            List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
+            List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
 
 
-      short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
-              A01readstart,  A02readstart
-      );
+            short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
+                    A01readstart, A02readstart
+            );
 
-      JSONObject jsonObject = new JSONObject();
+            JSONObject jsonObject = new JSONObject();
 
-      jsonObject.append("zuhe1", arraylist);
-      jsonObject.append("zuhe2", arraylist2);
-      jsonObject.append("guzhang", params2);
-      jsonObject.append("weihuiling", params3);
-      jsonObject.append("qidong", combinedBinaryShortArray);
-      // System.out.println(jsonObject);
+            jsonObject.append("zuhe1", arraylist);
+            jsonObject.append("zuhe2", arraylist2);
+            jsonObject.append("guzhang", params2);
+            jsonObject.append("weihuiling", params3);
+            jsonObject.append("qidong", combinedBinaryShortArray);
+            // System.out.println(jsonObject);
 //      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
 //      if (sendwServer != null) {
 //        sendwServer.sendMessage(jsonObject.toString());
 //      }
-      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
-      if (sendwServer != null) {
-        for (WebSocketServer webserver : sendwServer) {
-          webserver.sendMessage(jsonObject.toString());
+            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
+            if (sendwServer != null) {
+                for (WebSocketServer webserver : sendwServer) {
+                    webserver.sendMessage(jsonObject.toString());
 
 //      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition2");
-          if (webserver != null) {
-            List<String> messages = webserver.getMessages();
-            List<String> waddresses1 = new ArrayList<>();
-            waddresses1.add("DB100.116");
-            waddresses1.add("DB100.16");
+                    if (webserver != null) {
+                        List<String> messages = webserver.getMessages();
+                        List<String> waddresses1 = new ArrayList<>();
+                        waddresses1.add("DB100.116");
+                        waddresses1.add("DB100.16");
 
 
-            List<String> waddresses2 = new ArrayList<>();
-            waddresses2.add("DB100.118");
-            waddresses2.add("DB100.192");
+                        List<String> waddresses2 = new ArrayList<>();
+                        waddresses2.add("DB100.118");
+                        waddresses2.add("DB100.192");
 
 
-            // 鏁呴殰鍦板潃
-            List<String> waddresses3 = new ArrayList<>();
-            waddresses3.add("DB103.242");
-            waddresses3.add("DB103.248");
+                        // 鏁呴殰鍦板潃
+                        List<String> waddresses3 = new ArrayList<>();
+                        waddresses3.add("DB103.242");
+                        waddresses3.add("DB103.248");
 
-            // 澶嶄綅鍦板潃
-            List<String> waddresses4 = new ArrayList<>();
-            waddresses4.add("DB101.3.6");
-            waddresses4.add("DB101.4.1");
+                        // 澶嶄綅鍦板潃
+                        List<String> waddresses4 = new ArrayList<>();
+                        waddresses4.add("DB101.3.6");
+                        waddresses4.add("DB101.4.1");
 
-            // 鍥為浂鍦板潃
-            List<String> waddresses5 = new ArrayList<>();
-            waddresses5.add("DB101.3.7");
-            waddresses5.add("DB101.4.2");
+                        // 鍥為浂鍦板潃
+                        List<String> waddresses5 = new ArrayList<>();
+                        waddresses5.add("DB101.3.7");
+                        waddresses5.add("DB101.4.2");
 
-            if (!messages.isEmpty()) {
-              // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
-              String lastMessage = messages.get(messages.size() - 1);
-              // System.out.println("lastMessage锛�" + lastMessage);
-              JSONArray messageArray = new JSONArray(lastMessage);
+                        if (!messages.isEmpty()) {
+                            // 灏嗘渶鍚庝竴涓秷鎭浆鎹负 short 绫诲瀷鐨勫垪琛�
+                            String lastMessage = messages.get(messages.size() - 1);
+                            // System.out.println("lastMessage锛�" + lastMessage);
+                            JSONArray messageArray = new JSONArray(lastMessage);
 
-              // A01涓嬪彂
-              if (messageArray.getJSONArray(0).size() > 0) {
-                JSONArray jsonArray = messageArray.getJSONArray(0);
-                List<Short> sValue = new ArrayList<>();
-                for (int i = 0; i < jsonArray.size(); i++) {
-                  Object value = jsonArray.get(i);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      short val = Short.parseShort(cleanedValue.trim());
-                      sValue.add(val);
-                      System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
+                            // A01涓嬪彂
+                            customS7Control.WriteWordToPLC(messageArray, waddresses1, 0);
+
+                            // A02涓嬪彂
+                            customS7Control.WriteWordToPLC(messageArray, waddresses2, 1);
+
+                            // 鍐欏叆鏁呴殰鍦板潃
+                            customS7Control.WriteWordToPLC(messageArray, waddresses3, 2);
+
+                            // 鍐欏叆澶嶄綅鍦板潃
+                            customS7Control.writeBitToPLC(messageArray, waddresses4, 3);
+
+                            // 鍐欏叆鍥為浂鍦板潃
+                            customS7Control.writeBitToPLC(messageArray, waddresses5, 4);
+
+                            customS7Control.writeBitToPLC(messageArray, A01start, 5);
+                            customS7Control.writeBitToPLC(messageArray, A02start, 6);
+
+                            // 娓呯┖娑堟伅鍒楄〃
+                            webserver.clearMessages();
+                        }
                     }
-                  }
                 }
-                if (!sValue.isEmpty()) {
-                  S7control.getinstance().WriteWord(waddresses1, sValue);
-                  if (A01readstart != null && !A01readstart.isEmpty()) {
-                    // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                    List<Boolean> a01startval = new ArrayList<>();
-                    // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                    for (Boolean bit : A01readstart) {
-                      // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                      a01startval.add(!bit);
-                    }
-                    // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                    S7control.getinstance().WriteBit(A01start, a01startval);
-                  }
-                  System.out.println("Values " + sValue + " written to PLC at address " + waddresses1);
-                }
-              }
-
-              // A02涓嬪彂
-              if (messageArray.getJSONArray(1).size() > 0) {
-                JSONArray jsonArray = messageArray.getJSONArray(1);
-                List<Short> sValue2 = new ArrayList<>();
-                for (int i = 0; i < jsonArray.size(); i++) {
-                  Object value = jsonArray.get(i);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      short val = Short.parseShort(cleanedValue.trim());
-                      sValue2.add(val);
-                      System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
-                    }
-                  }
-                }
-                if (!sValue2.isEmpty()) {
-                  S7control.getinstance().WriteWord(waddresses2, sValue2);
-                  if (A02readstart != null && !A02readstart.isEmpty()) {
-                    // 鍒涘缓涓�涓柊鐨勫垪琛ㄧ敤浜庡啓鍏ユ柊鍊�
-                    List<Boolean> a02startval = new ArrayList<>();
-                    // 閬嶅巻鎵�鏈夎鍙栧埌鐨勪綅鍊�
-                    for (Boolean bit : A02readstart) {
-                      // 鍙栧弽褰撳墠浣嶇殑鍊煎苟娣诲姞鍒版柊鐨勫垪琛ㄤ腑
-                      a02startval.add(!bit);
-                    }
-                    // 鍐欏叆鏂扮殑浣嶅�煎垪琛�
-                    S7control.getinstance().WriteBit(A02start, a02startval);
-                  }
-                  System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses2);
-                }
-              }
-
-              // 鍐欏叆鏁呴殰鍦板潃
-              if (messageArray.getJSONArray(2).size() > 0) {
-                JSONArray jsonArray = messageArray.getJSONArray(2);
-                List<Short> sValue2 = new ArrayList<>();
-                for (int i = 0; i < jsonArray.size(); i++) {
-                  Object value = jsonArray.get(i);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      short val = Short.parseShort(cleanedValue.trim());
-                      sValue2.add(val);
-                      System.out.println("messageValue锛�" + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� short 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
-                    }
-                  }
-                }
-                if (!sValue2.isEmpty()) {
-                  S7control.getinstance().WriteWord(waddresses3, sValue2);
-                  System.out.println("Values " + sValue2 + " written to PLC at address " + waddresses3);
-                }
-              }
-
-              // 鍐欏叆澶嶄綅鍦板潃
-              if (messageArray.getJSONArray(3).size() > 0) {
-                JSONArray jsonArray3 = messageArray.getJSONArray(3);
-                List<Boolean> sValue3 = new ArrayList<>();
-                for (int i = 0; i < jsonArray3.size(); i++) {
-                  Object value = jsonArray3.get(i);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      boolean val = "1".equals(cleanedValue.trim());
-                      sValue3.add(val);
-                      System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
-                    }
-                  }
-                }
-                if (!sValue3.isEmpty()) {
-                  S7control.getinstance().WriteBit(waddresses4, sValue3);
-                  System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses4);
-                }
-              }
-
-              // 鍐欏叆鍥為浂鍦板潃
-              if (messageArray.getJSONArray(4).size() > 0) {
-                JSONArray jsonArray3 = messageArray.getJSONArray(4);
-                List<Boolean> sValue3 = new ArrayList<>();
-                for (int i = 0; i < jsonArray3.size(); i++) {
-                  Object value = jsonArray3.get(i);
-                  if (value != null && !value.toString().equals("null")) {
-                    try {
-                      String cleanedValue = value.toString().replaceAll("[^0-9-]", "");
-                      boolean val = "1".equals(cleanedValue.trim());
-                      sValue3.add(val);
-                      System.out.println("messageValue: " + Arrays.asList(val) + " added to the list");
-                    } catch (NumberFormatException e) {
-                      // 濡傛灉鏃犳硶瑙f瀽涓� boolean 绫诲瀷锛屽垯蹇界暐璇ラ儴鍒�
-                      System.err.println("Could not parse value: " + value);
-                    }
-                  }
-                }
-                if (!sValue3.isEmpty()) {
-                  S7control.getinstance().WriteBit(waddresses5, sValue3);
-                  System.out.println("Values " + sValue3 + " written to PLC at address " + waddresses5);
-                }
-              }
-
-              // 娓呯┖娑堟伅鍒楄〃
-              webserver.clearMessages();
             }
-          }
         }
-      }
     }
-  }
 }

--
Gitblit v1.8.0