package com.example.springboot.component; import cn.hutool.json.JSONArray; import cn.hutool.json.JSONObject; import org.apache.commons.io.FileUtils; import java.io.*; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class PlcAlbaniaServo extends Thread { private Configuration config; public PlcAlbaniaServo() throws IOException { config = new Configuration("config.properties"); } @Override public void run() { while (this != null) { try { Thread.sleep(500); // List listA01param=new ArrayList<>(); // listA01param.add((short)100); // listA01param.add((short)100); // listA01param.add((short)100); // listA01param.add((short)100); // listA01param.add((short)100); // List listA01button=new ArrayList<>(); // listA01button.add(true); // listA01button.add(false); // for (Boolean boolean1 : listA01button) { // listA01param.add((short) (boolean1 ? 1 : 0)); // } JSONObject jsonObject = new JSONObject(); // jsonObject.append("listA01param", listA01param); //A01 List A01input = Arrays.asList(config.getProperty("PlcA01.param").split(",")); List listA01param = S7control.getinstance().readFloat32(A01input); List A01button = Arrays.asList(config.getProperty("PlcA01.button").split(",")); List listA01button = S7control.getinstance().readBits(A01button); for (Boolean boolean1 : listA01button) { listA01param.add((float) (boolean1 ? 1 : 0)); } jsonObject.append("listA01param", listA01param); //A02 List A02input = Arrays.asList(config.getProperty("PlcA02.param").split(",")); List listA02param = S7control.getinstance().readFloat32(A02input); List A02button = Arrays.asList(config.getProperty("PlcA02.button").split(",")); List listA02button = S7control.getinstance().readBits(A02button); for (Boolean boolean1 : listA02button) { listA02param.add((float) (boolean1 ? 1 : 0)); } jsonObject.append("listA02param", listA02param); //B01 List B01input = Arrays.asList(config.getProperty("PlcB01.param").split(",")); // List listB01param = S7control.getinstance().readFloat32(B01input); List listB01param = S7control.getinstance().readFloat32(B01input); List B01button = Arrays.asList(config.getProperty("PlcB01.button").split(",")); List listB01button = S7control.getinstance().readBits(B01button); for (Boolean boolean1 : listB01button) { listB01param.add((float) (boolean1 ? 1 : 0)); } jsonObject.append("listB01param", listB01param); //C01 List C01input = Arrays.asList(config.getProperty("PlcC01.param").split(",")); List listC01param = S7control.getinstance().readFloat32(C01input); List C01button = Arrays.asList(config.getProperty("PlcC01.button").split(",")); List listC01button = S7control.getinstance().readBits(C01button); for (Boolean boolean1 : listC01button) { listC01param.add((float) (boolean1 ? 1 : 0)); } jsonObject.append("listC01param", listC01param); //C02 List C02input = Arrays.asList(config.getProperty("PlcC02.param").split(",")); List listC02param = S7control.getinstance().readFloat32(C02input); List C02button = Arrays.asList(config.getProperty("PlcC02.button").split(",")); List listC02button = S7control.getinstance().readBits(C02button); for (Boolean boolean1 : listC02button) { listC02param.add((float) (boolean1 ? 1 : 0)); } jsonObject.append("listC02param", listC02param); //中空台 List Hollowinput = Arrays.asList(config.getProperty("PlcHollow.param").split(",")); List listHollowparam = S7control.getinstance().readFloat32(Hollowinput); List Hollowbutton = Arrays.asList(config.getProperty("PlcHollow.button").split(",")); List listHollowbutton = S7control.getinstance().readBits(Hollowbutton); for (Boolean boolean1 : listHollowbutton) { listHollowparam.add((float) (boolean1 ? 1 : 0)); } jsonObject.append("listHollowparam", listHollowparam); //当前位置 List positioninput = Arrays.asList(config.getProperty("Plc.position").split(",")); List listpositionparam = S7control.getinstance().readFloat32(positioninput); jsonObject.append("listpositionparam", listpositionparam); // System.out.println(listpositionparam); // System.out.println(S7control.getinstance().readFloat32("DB10.1758")); // System.out.println(new BigDecimal(S7control.getinstance().readFloat32("DB10.1758")).setScale(2, BigDecimal.ROUND_HALF_UP)); // System.out.println(S7control.getinstance().readFloat32("DB10.1440")); // System.out.println(S7control.getinstance().readFloat64("DB10.1444")); ArrayList sendwServer = WebSocketServer.sessionMap.get("AlbaniaServo"); if (sendwServer != null) { for (WebSocketServer webserver : sendwServer) { webserver.sendMessage(jsonObject.toString()); if (webserver != null) { List messages = webserver.getMessages(); // System.out.println(messages.isEmpty()); if (!messages.isEmpty()) { // 将最后一个消息转换为 short 类型的列表 String lastMessage = messages.get(messages.size() - 1); // System.out.println("lastMessage:" + lastMessage); JSONArray messageArray = new JSONArray(lastMessage); // 清空消息列表 webserver.clearMessages(); } } } } } catch (InterruptedException e) { e.printStackTrace(); } } } }