| | |
| | | List<String> addressList3 = new ArrayList<>(); |
| | | 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<>(); |
| | |
| | | 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"); |
| | |
| | | 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) { |
| | | // 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 cleanedPart = part.replaceAll("[^0-9-]", ""); |
| | | Integer value = Integer.parseInt(cleanedPart.trim()); |
| | | messageValues.add(value); |
| | | 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) { |
| | | // 如果无法解析为整数类型,则忽略该部分 |
| | | // e.printStackTrace(); |
| | | // 如果无法解析为 boolean 类型,则忽略该部分 |
| | | System.err.println("Could not parse value: " + value); |
| | | } |
| | | } |
| | | |
| | | // 将消息值转换为布尔列表 |
| | | List<Boolean> messageBooleans = new ArrayList<>(); |
| | | for (Integer value : messageValues) { |
| | | messageBooleans.add(value == 1 ? true : false); |
| | | } |
| | | |
| | | if (!sValue3.isEmpty()) { |
| | | S7control.getinstance().WriteBit(addressList, sValue3); |
| | | System.out.println("Values " + sValue3 + " written to PLC at address " + sValue3); |
| | | } |
| | | } |
| | | // 将布尔列表写入 PLC |
| | | S7control.getinstance().WriteBit(addressList, messageBooleans); |
| | | System.out.println("messageValues:" + messageBooleans); |
| | | System.out.println("addressList:" + addressList); |
| | | 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) { |
| | | // 如果无法解析为 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); |
| | | } |
| | | } |
| | | |
| | | |
| | | // 清空消息列表 |
| | | webSocketServer.clearMessages(); |
| | | } |