wuyouming666
2024-05-11 0417fafe757f09bfb166b1dd1d9f096e966a30d8
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition.java
@@ -2,13 +2,15 @@
import cn.hutool.json.JSONArray;
import cn.hutool.json.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.io.FileUtils;
import java.io.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@Slf4j
public class PlcManualonePosition extends Thread {
    private Configuration config;
@@ -54,55 +56,45 @@
        while (this != null) {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // this.readValue();
                // this.readValue();
            // String PlcAddress = this.name;
            // Integer Plccount = this.count;
            List<String> addresses = new ArrayList<>();
            addresses.add("DB100.108");
            addresses.add("DB100.20");
            addresses.add("DB103.32");
            //B01组合中地址
           // String b01Address = config.getProperty("B01.address");
            List<String> addresses = Arrays.asList(config.getProperty("PlcManualonePosition.addresses").split(","));
            List<Short> arraylist = S7control.getinstance().readWords(addresses);
            // System.out.println(arraylist);
            List<String> addresses2 = Arrays.asList(config.getProperty("PlcManualonePosition.addresses2").split(","));
            List<String> addresses2 = new ArrayList<>();
            addresses2.add("DB100.110");
            addresses2.add("DB100.176");
            addresses2.add("DB103.34");
            List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
            List<String> addresses3 = new ArrayList<>();
            addresses3.add("DB100.112");
            addresses3.add("DB100.24");
            addresses3.add("DB103.36");
            List<String> addresses3 = Arrays.asList(config.getProperty("PlcManualonePosition.addresses3").split(","));
            List<Short> arraylist3 = S7control.getinstance().readWords(addresses3);
            List<String> addresses4 = new ArrayList<>();
            addresses4.add("DB100.114");
            addresses4.add("DB100.178");
            addresses4.add("DB103.40");
            List<String> addresses4 = Arrays.asList(config.getProperty("PlcManualonePosition.addresses4").split(","));
            List<Short> arraylist4 = S7control.getinstance().readWords(addresses4);
            List<Short> arraylist5 = S7control.getinstance().ReadWord("DB106.0", 1);
            List<Short> arraylist6 = S7control.getinstance().ReadWord("DB106.12", 1);
            List<Short> arraylist7 = S7control.getinstance().ReadWord("DB106.40", 1);
            List<Short> arraylist8 = S7control.getinstance().ReadWord("DB106.50", 1);
            List<String> addresses9 = new ArrayList<>();
            addresses9.add("DB104.1.2");
            addresses9.add("DB104.1.3");
            addresses9.add("DB104.1.6");
            addresses9.add("DB104.1.7");
            //故障
            List<String> addresses9 = Arrays.asList(config.getProperty("PlcManualonePosition.fault").split(","));
            List<Boolean> arraylist9 = S7control.getinstance().readBits(addresses9);
            List<String> addresses10 = new ArrayList<>();
            addresses10.add("DB104.9.4");
            addresses10.add("DB104.9.5");
            addresses10.add("DB104.9.4");
            addresses10.add("DB104.9.5");
           //未回零
            List<String> addresses10 = Arrays.asList(config.getProperty("PlcManualonePosition.Notzero").split(","));
            List<Boolean> arraylist10 = S7control.getinstance().readBits(addresses10);
            //A01启动地址
@@ -113,6 +105,20 @@
            List<String> B01start = Arrays.asList(config.getProperty("mlp.B01start"));
            List<String> B02start = Arrays.asList(config.getProperty("mlp.B02start"));
            // 故障地址
            List<String> waddresses5 = Arrays.asList(config.getProperty("PlcManualonePosition.fault2").split(","));
            // 复位地址
            List<String> waddresses6 = Arrays.asList(config.getProperty("PlcManualonePosition.Reset").split(","));
            List<Boolean> readreast = S7control.getinstance().readBits(waddresses6);
            short[] reast6 = PLCBooleanConverter.convertListsToBinaryShortArray(readreast);
            // 回零地址
            List<String> waddresses7 = Arrays.asList(config.getProperty("PlcManualonePosition.Zero").split(","));
            List<Boolean> readhuiling = S7control.getinstance().readBits(waddresses7);
            short[] huiling7 = PLCBooleanConverter.convertListsToBinaryShortArray(readhuiling);
            List<Boolean> A01readstart = S7control.getinstance().readBits(A01start);
            List<Boolean> A02readstart = S7control.getinstance().readBits(A02start);
@@ -169,6 +175,8 @@
            jsonObject.append("guzhang", params2);
            jsonObject.append("weihuiling", params3);
            jsonObject.append("qidong", combinedBinaryShortArray);
            jsonObject.append("fuwei", reast6);
            jsonObject.append("huiling", huiling7);
//      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition");
//      if (sendwServer != null) {
@@ -178,50 +186,16 @@
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
//      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition");
                    if (webserver != null) {
                    if (webserver != null&&webserver.session.isOpen()) {
                        webserver.sendMessage(jsonObject.toString());
                        List<String> messages = webserver.getMessages();
                        List<String> waddresses1 = new ArrayList<>();
                        waddresses1.add("DB100.108");
                        waddresses1.add("DB100.20");
                        waddresses1.add("DB103.32");
                        List<String> waddresses2 = new ArrayList<>();
                        waddresses2.add("DB100.110");
                        waddresses2.add("DB100.176");
                        waddresses2.add("DB103.34");
                        List<String> waddresses3 = new ArrayList<>();
                        waddresses3.add("DB100.112");
                        waddresses3.add("DB100.24");
                        waddresses3.add("DB103.36");
                        List<String> waddresses4 = new ArrayList<>();
                        waddresses4.add("DB100.114");
                        waddresses4.add("DB100.178");
                        waddresses4.add("DB103.40");
                        // 故障地址
                        List<String> waddresses5 = new ArrayList<>();
                        // waddresses5.add("DB103.244");
                        // waddresses5.add("DB103.250");
                        waddresses5.add("DB103.252");
                        waddresses5.add("DB103.254");
                        // 复位地址
                        List<String> waddresses6 = new ArrayList<>();
                        waddresses6.add("DB101.4.0");
                        waddresses6.add("DB101.4.3");
                        waddresses6.add("DB101.4.4");
                        waddresses6.add("DB101.4.6");
                        // 回零地址
                        List<String> waddresses7 = new ArrayList<>();
                        waddresses7.add("DB101.4.5");
                        waddresses7.add("DB101.4.7");
                        // System.out.println(messages.isEmpty());
@@ -231,18 +205,17 @@
                            // System.out.println("lastMessage:" + lastMessage);
                            JSONArray messageArray = new JSONArray(lastMessage);
                            // 写入A01
                            customS7Control.WriteWordToPLC(messageArray, waddresses1, 0);
                            customS7Control.WriteWordToPLC(messageArray, addresses, 0);
                            // 写入A02
                            customS7Control.WriteWordToPLC(messageArray, waddresses2, 1);
                            customS7Control.WriteWordToPLC(messageArray, addresses2, 1);
                            // 写入B01
                            customS7Control.WriteWordToPLC(messageArray, waddresses3, 2);
                            customS7Control.WriteWordToPLC(messageArray, addresses3, 2);
                            // 写入B02
                            customS7Control.WriteWordToPLC(messageArray, waddresses4, 3);
                            customS7Control.WriteWordToPLC(messageArray, addresses4, 3);
                            // 写入故障地址
@@ -268,9 +241,16 @@
                            // 清空消息列表
                            webserver.clearMessages();
                        }
                    }else{
                        log.info("ManualonePosition is closed");
                    }
                }
            }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}