From 31101f632c27c05d15f30ca3084e3ed3da2a29af Mon Sep 17 00:00:00 2001 From: wu <731351411@qq.com> Date: 星期五, 08 十二月 2023 11:42:08 +0800 Subject: [PATCH] Merge branch 'master' of http://10.153.19.25:10101/r/CanadaMes --- springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java | 179 ++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 126 insertions(+), 53 deletions(-) diff --git a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java index 59124ce..6a4a0e7 100644 --- a/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java +++ b/springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java @@ -7,6 +7,7 @@ import java.io.*; import java.util.ArrayList; import java.util.Arrays; +import java.util.Collections; import java.util.List; public class PlcParameter2 extends Thread { @@ -61,25 +62,15 @@ public void run() { while (this != null) { try { - Thread.sleep(500); + Thread.sleep(1000); } catch (InterruptedException e) { e.printStackTrace(); } - + // 鎵嬪姩鐘舵�佸湴鍧� List<String> addressList1 = new ArrayList<>(); -// addressList1.add("DB103.32~45"); -// addressList1.add("DB103.46~59"); -// addressList1.add("DB103.60~73"); -// addressList1.add("DB103.74~101"); -// addressList1.add("DB103.102~115"); -// addressList1.add("DB103.116~143"); -// addressList1.add("DB103.144~157"); -// addressList1.add("DB103.158~171"); -// addressList1.add("DB103.172~185"); -// addressList1.add("DB103.200~213"); -// addressList1.add("DB103.228~241"); + addressList1.add("DB103.44");//D01 addressList1.add("DB103.58");//D02 addressList1.add("DB103.72");//D03 @@ -87,15 +78,16 @@ addressList1.add("DB103.100");//D05 addressList1.add("DB103.114");//D06 addressList1.add("DB103.128");//A01 - addressList1.add("DB103.156");//A01 2 - addressList1.add("DB103.142");//A02 - addressList1.add("DB103.212");//B01 - addressList1.add("DB103.184");//B02 + addressList1.add("DB103.142");//A01 2 + addressList1.add("DB103.156");//A02 + addressList1.add("DB103.184");//B01 + addressList1.add("DB103.212");//B02 List<String> paramlist = S7control.getinstance().readStrings(addressList1); + //娓呴櫎ID鍦板潃 List<String> addresses = new ArrayList<>(); addresses.add("DB103.0"); addresses.add("DB103.2"); @@ -110,45 +102,88 @@ List<Short> data = S7control.getinstance().readWords(addresses); + //id + List<String> addressList0 = new ArrayList<>(); - List<Boolean> data2 = S7control.getinstance().ReadBits("DB101.9.2", 10); + addressList0.add("DB101.9.2"); + addressList0.add("DB101.9.3"); + addressList0.add("DB101.9.4"); + addressList0.add("DB101.9.5"); + addressList0.add("DB101.9.6"); + addressList0.add("DB101.9.7"); + + addressList0.add("DB101.10.0"); + addressList0.add("DB101.10.1"); + addressList0.add("DB101.10.2"); + addressList0.add("DB101.10.3"); + + // 鎵爜鏋� + List<Boolean> data2 = S7control.getinstance().readBits(addressList0); List<String> addressList3 = new ArrayList<>(); - addressList3.add("DB106.64"); - List<String> data3 = S7control.getinstance().readStrings(addressList3); + addressList3.add("DB103.256"); + addressList3.add("DB103.270"); + + + + List<String> niuanaddressList3 = new ArrayList<>(); + + niuanaddressList3.add("DB101.10.4"); + List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3); + + + + List<String> data3 = S7control.getinstance().readStrings(addressList3); +// A01 A02 B01 B02 List<String> addresses4 = new ArrayList<>(); addresses4.add("DB103.52"); addresses4.add("DB103.54"); addresses4.add("DB103.56"); addresses4.add("DB103.60"); - List<Short> data4 = S7control.getinstance().readWords(addresses4); + List<Short> data4 = S7control.getinstance().readWords(addresses4); + +// List<Long> TIME2 = Collections.singletonList(S7control.getinstance().readtime("DB100.194")); +// System.out.println("addressList锛�" + TIME2); -// Boolean[] values = { false, true, true, true, true, true, true, true, true, -// true}; -// List<Boolean> paramlist = new ArrayList<>(Arrays.asList(values)); -// Short[] values1 = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; + // + + + + +// String[] values6 = { ".x1 ","x2 ","x3",";;x4","x5","x6","x7","x8","x9","x10","x11"}; +// List<String> paramlist = new ArrayList<>(Arrays.asList(values6)); +// Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1}; // List<Short> data = new ArrayList<>(Arrays.asList(values1)); -// Short[] values2 = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1}; -// List<Short> data2 = new ArrayList<>(Arrays.asList(values2)); -// Short[] values3 = { 11}; -// List<Short> data3 = new ArrayList<>(Arrays.asList(values3)); +// Boolean[] value4 = { false, false, false, false, false, false, false, false, false, +// false}; +// List<Boolean> data2 = new ArrayList<>(Arrays.asList(value4)); +// String[] values3 = { ".x11 ","x21 "}; +// List<String> data3 = new ArrayList<>(Arrays.asList(values3)); // Short[] values4 = { 2,2,3,4}; // List<Short> data4 = new ArrayList<>(Arrays.asList(values4)); - - +// +// JSONObject jsonObject = new JSONObject(); short[] params = new short[data2.size()]; for (int i = 0; i < data2.size(); i++) { boolean value = data2.get(i); params[i] = value ? (short) 1 : (short) 0; } + + short[] anniuparams = new short[anniuread.size()]; + for (int i = 0; i < anniuread.size(); i++) { + boolean value = anniuread.get(i); + anniuparams[i] = value ? (short) 1 : (short) 0; + } + jsonObject.append("params", params); jsonObject.append("params", paramlist); jsonObject.append("params", data); jsonObject.append("params", data3); jsonObject.append("params", data4); + jsonObject.append("jiting", anniuparams); WebSocketServer sendwServer = WebSocketServer.sessionMap.get("Parameter2"); @@ -160,37 +195,75 @@ if (webSocketServer != null) { List<String> messages = webSocketServer.getMessages(); + List<String> addressList = new ArrayList<>(); - String addressList = "DB101.9.2"; + addressList.add("DB101.9.2"); + addressList.add("DB101.9.3"); + addressList.add("DB101.9.4"); + addressList.add("DB101.9.5"); + addressList.add("DB101.9.6"); + addressList.add("DB101.9.7"); + addressList.add("DB101.10.0"); + addressList.add("DB101.10.1"); + addressList.add("DB101.10.2"); + addressList.add("DB101.10.3"); + + 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(); +// System.out.println("lastMessage锛�" + lastMessage); + JSONArray messageArray = new JSONArray(lastMessage); + + if (messageArray.getJSONArray(0).size() > 0) { + JSONArray jsonArray3 = messageArray.getJSONArray(0); + 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(addressList, sValue3); + System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3); + } + } + // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC + if (messageArray.getJSONArray(1).size() > 0) { + JSONArray jsonArray3 = messageArray.getJSONArray(1); + 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(niuanaddressList3, sValue3); + + System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3); } } - // 灏嗘秷鎭�艰浆鎹负甯冨皵鍒楄〃 - List<Boolean> messageBooleans = new ArrayList<>(); - for (Integer value : messageValues) { - messageBooleans.add(value == 1 ? true : false); - } - // 灏嗗竷灏斿垪琛ㄥ啓鍏� PLC - S7control.getinstance().WriteBit(addressList, messageBooleans); - System.out.println("messageValues锛�" + messageBooleans); - System.out.println("addressList锛�" + addressList); // 娓呯┖娑堟伅鍒楄〃 webSocketServer.clearMessages(); } -- Gitblit v1.8.0