ZengTao
2024-05-08 9472449b4ca46f482d13b6e628660c61101b443f
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,11 +56,7 @@
        while (this != null) {
            try {
                Thread.sleep(500);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            // this.readValue();
                // this.readValue();
            // String PlcAddress = this.name;
            // Integer Plccount = this.count;
@@ -107,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);
@@ -163,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) {
@@ -172,23 +186,14 @@
            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> waddresses5 = Arrays.asList(config.getProperty("PlcManualonePosition.fault2").split(","));
                        // 复位地址
                        List<String> waddresses6 = Arrays.asList(config.getProperty("PlcManualonePosition.Reset").split(","));
                        // 回零地址
                        List<String> waddresses7 = Arrays.asList(config.getProperty("PlcManualonePosition.Zero").split(","));
@@ -205,7 +210,6 @@
                            // 写入A02
                            customS7Control.WriteWordToPLC(messageArray, addresses2, 1);
                            // 写入B01
                            customS7Control.WriteWordToPLC(messageArray, addresses3, 2);
@@ -237,9 +241,16 @@
                            // 清空消息列表
                            webserver.clearMessages();
                        }
                    }else{
                        log.info("ManualonePosition is closed");
                    }
                }
            }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}