wuyouming666
2023-12-15 0795daf740782f708968e9fe12f4d034fcd6488d
springboot-vue3/src/main/java/com/example/springboot/component/PlcParameter2.java
@@ -13,84 +13,69 @@
public class PlcParameter2 extends Thread {
    // 用于存储应用程序的配置信息
    private Configuration config;
  // 用于存储应用程序的配置信息
  private Configuration config;
  // 创建一个自定义的 S7 控制器消息处理器对象
  MessageHandler customS7Control = new MessageHandler();
    // 创建一个自定义的 S7 控制器消息处理器对象
    MessageHandler customS7Control = new MessageHandler();
  public PlcParameter2() throws IOException {
    config = new Configuration("config.properties");
  }
    public PlcParameter2() throws IOException {
        config = new Configuration("config.properties");
    }
    @Override
    public void run() {
        while (this != null) {
            try {
                Thread.sleep(1000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
            //  id
            List<String> addressList1 = Arrays.asList(config.getProperty("Parameter2.id").split(","));
            List<String> paramlist = S7control.getinstance().readStrings(addressList1);
  public static String readFileToString(String filePath) throws IOException {
    File file = new File(filePath);
    return FileUtils.readFileToString(file, "UTF-8");
  }
            //手动状态
            List<String> addresses = Arrays.asList(config.getProperty("Parameter2.state").split(","));
            List<Short> data = S7control.getinstance().readWords(addresses);
  @Override
  public void run() {
    while (this != null) {
      try {
        Thread.sleep(1000);
      } catch (InterruptedException e) {
        e.printStackTrace();
      }
   //    id
      List<String> addressList1 = Arrays.asList(config.getProperty("Parameter2.id").split(","));
            //清除id
            List<String> addressList0 = Arrays.asList(config.getProperty("Parameter2.cleanid").split(","));
            // 扫码枪
            List<Boolean> data2 = S7control.getinstance().readBits(addressList0);
            List<String> addressList3 = Arrays.asList(config.getProperty("Parameter2.scanner").split(","));
      List<String> paramlist = S7control.getinstance().readStrings(addressList1);
//急停按钮
            List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(","));
            List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
   //清除ID地址
      List<String> addresses = Arrays.asList(config.getProperty("Parameter2.cleanid").split(","));
            List<String> data3 = S7control.getinstance().readStrings(addressList3);
// A01 A02 B01 B02
      List<Short> data = S7control.getinstance().readWords(addresses);
            List<String> addresses4 = Arrays.asList(config.getProperty("Parameter2.Currentcell").split(","));
      //手动状态
      List<String> addressList0 = Arrays.asList(config.getProperty("Parameter2.state").split(","));
      List<Boolean> data2 = S7control.getinstance().readBits(addressList0);
      // 扫码枪
      List<String> addressList3 = Arrays.asList(config.getProperty("Parameter2.scanner").split(","));
      List<String> data3 = S7control.getinstance().readStrings(addressList3);
//急停
      List<String> niuanaddressList3 = Arrays.asList(config.getProperty("Parameter2.stop").split(","));
      List<Boolean> anniuread = S7control.getinstance().readBits(niuanaddressList3);
// A01 A02 B01 B02 当前格子
      List<String> addresses4 = Arrays.asList(config.getProperty("Parameter2.Currentcell").split(","));
    List<Short> data4 = S7control.getinstance().readWords(addresses4);
            List<Short> data4 = S7control.getinstance().readWords(addresses4);
//      List<Long> TIME2 = Collections.singletonList(S7control.getinstance().readtime("DB100.194"));
//      System.out.println("addressList:" + TIME2);
      //
            //
//
//      String[] values6 = { ".x1 ","x2 ","x3",";;x4","x5","x6","x7","x8","x9","x10","x11"};
//      List<String> paramlist = new ArrayList<>(Arrays.asList(values6));
//      Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
@@ -104,61 +89,63 @@
//      List<Short> data4 = new ArrayList<>(Arrays.asList(values4));
//
//
      JSONObject jsonObject = new JSONObject();
      short[] params = new short[data2.size()];
      for (int i = 0; i < data2.size(); i++) {
        boolean value = data2.get(i);
        params[i] = value ? (short) 1 : (short) 0;
      }
            JSONObject jsonObject = new JSONObject();
            short[] params = new short[data2.size()];
            for (int i = 0; i < data2.size(); i++) {
                boolean value = data2.get(i);
                params[i] = value ? (short) 1 : (short) 0;
            }
//
            short[] anniuparams = new short[anniuread.size()];
            for (int i = 0; i < anniuread.size(); i++) {
                boolean value = anniuread.get(i);
                anniuparams[i] = value ? (short) 1 : (short) 0;
            }
      short[] anniuparams = new short[anniuread.size()];
      for (int i = 0; i < anniuread.size(); i++) {
        boolean value = anniuread.get(i);
        anniuparams[i] = value ? (short) 1 : (short) 0;
      }
      jsonObject.append("params", params);
      jsonObject.append("params", paramlist);
      jsonObject.append("params", data);
      jsonObject.append("params", data3);
      jsonObject.append("params", data4);
      jsonObject.append("jiting", anniuparams);
            jsonObject.append("params", params);
            jsonObject.append("params", paramlist);
            jsonObject.append("params", data);
            jsonObject.append("params", data3);
            jsonObject.append("params", data4);
            jsonObject.append("jiting", anniuparams);
//      WebSocketServer sendwServer = WebSocketServer.getWebSocketServer("Parameter2");
//      if (sendwServer != null) {
//        JSONObject jsonObject = new JSONObject();
//        jsonObject.set("message", "Hello, Parameter2!");
//        sendwServer.sendMessage(jsonObject.toString());
//      }
      ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2");
 if (sendwServer != null) {
 for (WebSocketServer webserver : sendwServer) {
 webserver.sendMessage(jsonObject.toString());
            ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("Parameter2");
            if (sendwServer != null) {
                for (WebSocketServer webserver : sendwServer) {
                    webserver.sendMessage(jsonObject.toString());
                    if (webserver != null) {
        List<String> messages = webserver.getMessages();
                        List<String> messages = webserver.getMessages();
        if (!messages.isEmpty()) {
          // 将最后一个消息转换为整数类型的列表
          String lastMessage = messages.get(messages.size() - 1);
                        if (!messages.isEmpty()) {
                            // 将最后一个消息转换为整数类型的列表
                            String lastMessage = messages.get(messages.size() - 1);
//        System.out.println("lastMessage:" + lastMessage);
          JSONArray messageArray = new JSONArray(lastMessage);
        //清除id
          customS7Control.writeBitToPLC( messageArray, addresses,0);
         //急停
          customS7Control.writeBitToPLC( messageArray, niuanaddressList3,1);
          // 清空消息列表
            webserver.clearMessages();
                            JSONArray messageArray = new JSONArray(lastMessage);
                            //清除ID
                            customS7Control.writeBitToPLC(messageArray, addressList0, 0);
                            //急停
                            customS7Control.writeBitToPLC(messageArray, niuanaddressList3, 1);
                            // 清空消息列表
                            webserver.clearMessages();
                        }
                    }
                }
            }
        }
      }
 }
    }
    }
  }
}