ZengTao
2024-05-08 9472449b4ca46f482d13b6e628660c61101b443f
springboot-vue3/src/main/java/com/example/springboot/component/PlcManualonePosition2.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 PlcManualonePosition2 extends Thread {
    private Configuration config;
@@ -52,11 +54,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;
@@ -72,7 +70,7 @@
            addresses2.add("DB100.118");
            addresses2.add("DB100.192");
            addresses2.add("DB103.22");
            addresses2.add("DB106.14");
            List<Short> arraylist2 = S7control.getinstance().readWords(addresses2);
            List<String> addresses9 = new ArrayList<>();
@@ -124,6 +122,32 @@
            short[] combinedBinaryShortArray = PLCBooleanConverter.convertListsToBinaryShortArray(
                    A01readstart, A02readstart
            );
            // 故障地址
            List<String> waddresses3 = new ArrayList<>();
            waddresses3.add("DB103.242");
            waddresses3.add("DB103.248");
            // 复位地址
            List<String> waddresses4 = new ArrayList<>();
            waddresses4.add("DB101.3.6");
            waddresses4.add("DB101.4.1");
            // 回零地址
            List<String> waddresses5 = new ArrayList<>();
            waddresses5.add("DB101.3.7");
            waddresses5.add("DB101.4.2");
            List<Boolean> readreast = S7control.getinstance().readBits(waddresses4);
            short[] reast6 = PlcManualonePosition.PLCBooleanConverter.convertListsToBinaryShortArray(readreast);
            List<Boolean> readhuiling = S7control.getinstance().readBits(waddresses5);
            short[] huiling7 = PlcManualonePosition.PLCBooleanConverter.convertListsToBinaryShortArray(readhuiling);
            JSONObject jsonObject = new JSONObject();
@@ -132,6 +156,9 @@
            jsonObject.append("guzhang", params2);
            jsonObject.append("weihuiling", params3);
            jsonObject.append("qidong", combinedBinaryShortArray);
            jsonObject.append("fuwei", reast6);
            jsonObject.append("huiling", huiling7);
            // System.out.println(jsonObject);
//      WebSocketServer sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
//      if (sendwServer != null) {
@@ -140,10 +167,11 @@
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("ManualonePosition2");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
//      WebSocketServer webSocketServer = WebSocketServer.sessionMap.get("ManualonePosition2");
                    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.116");
@@ -155,20 +183,6 @@
                        waddresses2.add("DB100.192");
                        // 故障地址
                        List<String> waddresses3 = new ArrayList<>();
                        waddresses3.add("DB103.242");
                        waddresses3.add("DB103.248");
                        // 复位地址
                        List<String> waddresses4 = new ArrayList<>();
                        waddresses4.add("DB101.3.6");
                        waddresses4.add("DB101.4.1");
                        // 回零地址
                        List<String> waddresses5 = new ArrayList<>();
                        waddresses5.add("DB101.3.7");
                        waddresses5.add("DB101.4.2");
                        if (!messages.isEmpty()) {
                            // 将最后一个消息转换为 short 类型的列表
@@ -179,18 +193,14 @@
                            // A01下发
                            customS7Control.WriteWordToPLC(messageArray, waddresses1, 0);
                            // A02下发
                            customS7Control.WriteWordToPLC(messageArray, waddresses2, 1);
                            // 写入故障地址
                            customS7Control.WriteWordToPLC(messageArray, waddresses3, 2);
                            // 写入复位地址
                            customS7Control.writeBitToPLC(messageArray, waddresses4, 3);
                            // 写入回零地址
                            customS7Control.writeBitToPLC(messageArray, waddresses5, 4);
@@ -201,9 +211,15 @@
                            // 清空消息列表
                            webserver.clearMessages();
                        }
                    }else{
                        log.info("ManualonePosition2 is closed");
                    }
                }
            }
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }
}