| | |
| | |
|
| | | 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;
|
| | |
|
| | |
| | | while (this != null) {
|
| | | try {
|
| | | Thread.sleep(500);
|
| | |
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | // this.readValue();
|
| | | // this.readValue();
|
| | | // String PlcAddress = this.name;
|
| | | // Integer Plccount = this.count;
|
| | |
|
| | |
| | | addresses.add("DB100.116");
|
| | | addresses.add("DB100.16");
|
| | |
|
| | | addresses.add("DB103.20");
|
| | | addresses.add("DB106.2");
|
| | | List<Short> arraylist = S7control.getinstance().readWords(addresses);
|
| | | // System.out.println(arraylist);
|
| | |
|
| | |
| | | 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<>();
|
| | |
| | | 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();
|
| | |
|
| | |
| | | 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) {
|
| | |
| | | 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");
|
| | |
| | | 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 类型的列表
|
| | |
| | | // 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);
|
| | |
| | | // 清空消息列表
|
| | | webserver.clearMessages();
|
| | | }
|
| | | }else{
|
| | | log.info("ManualonePosition2 is closed");
|
| | | }
|
| | | }
|
| | | }
|
| | | } catch (InterruptedException e) {
|
| | | e.printStackTrace();
|
| | | }
|
| | | |
| | | }
|
| | | }
|
| | | }
|