From 1ebc598658f85c07c7cbabaf289ab89838a8acc9 Mon Sep 17 00:00:00 2001
From: clll <1320612696@qq.com>
Date: 星期一, 27 十一月 2023 08:54:26 +0800
Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes

---
 springboot-vue3/src/main/java/com/example/springboot/component/S7control.java |   52 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 52 insertions(+), 0 deletions(-)

diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
index 593a8b9..5caea97 100644
--- a/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
+++ b/springboot-vue3/src/main/java/com/example/springboot/component/S7control.java
@@ -90,6 +90,8 @@
         s7PLC.writeMultiData(addressWrite);
     }
 
+
+
     /**
      * 鎸夋寚瀹氱殑鍦板潃 鍐欏叆涓�涓狟it
      * 
@@ -162,6 +164,56 @@
         return s7PLC.readInt16(address);
     }
 
+    public List<Short> readWords(List<String> addresses) {
+        if (s7PLC == null) {
+            return null;
+        }
+
+        List<Short> data = new ArrayList<>();
+
+        for (String address : addresses) {
+            if (address.contains("-")) {
+                String[] range = address.split("-");
+                String startAddress = range[0];
+                String endAddress = range[1];
+
+                if (startAddress.equals(endAddress)) {
+                    // 鍗曚釜鍦板潃
+                    Short value = s7PLC.readInt16(startAddress);
+                    data.add(value);
+                } else {
+                    // 鑼冨洿鍦板潃
+                    int startIndex = getIndexFromAddress(startAddress);
+                    int endIndex = getIndexFromAddress(endAddress);
+
+                    for (int i = startIndex; i <= endIndex; i++) {
+                        String currentAddress = getAddressFromIndex(i);
+                        Short value = s7PLC.readInt16(currentAddress);
+                        data.add(value);
+                    }
+                }
+            } else {
+                // 鍗曚釜鍦板潃
+                Short value = s7PLC.readInt16(address);
+                data.add(value);
+            }
+        }
+
+        return data;
+    }
+
+    private int getIndexFromAddress(String address) {
+
+        // 鍙互瑙f瀽鍑哄湴鍧�涓殑鏁板瓧閮ㄥ垎锛屽苟杞崲涓烘暣鏁�
+        return 0;
+    }
+
+    private String getAddressFromIndex(int index) {
+
+        // 鏁存暟杞崲涓哄湴鍧�鏍煎紡鐨勫瓧绗︿覆
+        return "";
+    }
+
     /**
      * 鎸夋寚瀹氱殑鍦板潃 璇诲彇word缁撴灉闆�
      * 

--
Gitblit v1.8.0