wuyouming666
2024-02-23 692c1a185d768a18c2007348806d775b2fbdeaa7
springboot-vue3/src/main/java/com/example/springboot/component/PLCAutomaticParameterSetting.java
@@ -11,8 +11,16 @@
public class PLCAutomaticParameterSetting extends Thread {
  // 用于存储应用程序的配置信息
  private Configuration config;
  // 创建一个自定义的 S7 控制器消息处理器对象
  MessageHandler customS7Control = new MessageHandler();
  public PLCAutomaticParameterSetting() throws IOException {
    config = new Configuration("config.properties");
  }
  @Override
  public void run() {
    while (this != null) {
@@ -25,24 +33,14 @@
      // System.out.println(stt);
      List<Short> arraylist = S7control.getinstance().ReadWord("DB100.120", 8);
      List<Short> dache1 = S7control.getinstance().ReadWord("DB100.18", 1);
      List<Short> xiaoche1 = S7control.getinstance().ReadWord("DB100.22", 1);
      List<Short> fanzhuan1 = S7control.getinstance().ReadWord("DB100.14", 1);
      List<String> addresses = new ArrayList<>();
      addresses.add("DB100.0");
      addresses.add("DB100.2");
      addresses.add("DB100.4");
      addresses.add("DB100.6");
      addresses.add("DB100.26");
      addresses.add("DB100.28");
      addresses.add("DB100.30");
      addresses.add("DB100.32");
      addresses.add("DB100.34");
      addresses.add("DB100.36");
      addresses.add("DB100.38");
      addresses.add("DB100.40");
      List<String> addresses = Arrays.asList(config.getProperty("Auto.addresses").split(","));
      List<Short> arraylist2 = S7control.getinstance().readWords(addresses);
      //System.out.println("lastMessage:" + arraylist2);
//翻转
      List<Short> fanzhuan2 = S7control.getinstance().ReadWord("DB100.8", 1);
      List<Short> xiaoche2 = S7control.getinstance().ReadWord("DB100.12", 1);
@@ -116,43 +114,21 @@
              System.out.println(messageArray);
              // 写入第一个地址
              customS7Control.WriteWordsToPLC(messageArray, addressList2,2);
              // 写入第二个地址
              customS7Control.WriteWordsToPLC(messageArray, addressList3,3);
              // 写入第三个地址
              customS7Control.WriteWordsToPLC(messageArray, addressList4,4);
              // 写入第四个地址
              if (!mergedList.isEmpty()) {
                S7control.getinstance().WriteWord(addressList1, mergedList);
                System.out.println("messageValue:" + mergedList + " written to PLC at address " + addressList1);
              }
              List<String> waddresses1 = new ArrayList<>();
              waddresses1.add("DB100.0");
              waddresses1.add("DB100.2");
              waddresses1.add("DB100.4");
              waddresses1.add("DB100.6");
              waddresses1.add("DB100.26");
              waddresses1.add("DB100.28");
              waddresses1.add("DB100.30");
              waddresses1.add("DB100.32");
              waddresses1.add("DB100.34");
              waddresses1.add("DB100.36");
              waddresses1.add("DB100.38");
              waddresses1.add("DB100.40");
              List<String> waddresses1 = Arrays.asList(config.getProperty("Auto.shusong").split(","));
              String addressList22 = "DB100.8";
              String addressList33 = "DB100.12";
              if (!messages.isEmpty()) {
                // 将最后一个消息转换为 short 类型的列表
                // 整合第 1 到 3 个数组并去掉 null 元素
                List<Short> mergedList2 = new ArrayList<>();
                for (int i = 5; i < 8; i++) {
@@ -174,18 +150,13 @@
                // 写入第伍个地址
                customS7Control.WriteWordsToPLC(messageArray, addressList22,8);
                // 写入第六个地址
                customS7Control.WriteWordsToPLC(messageArray, addressList33,9);
                // 写入第七个地址
                if (!mergedList2.isEmpty()) {
                  S7control.getinstance().WriteWord(waddresses1, mergedList2);
                  System.out.println("messageValue:" + mergedList2 + " written to PLC at address " + waddresses1);
                }
                // 清空消息列表
                webserver.clearMessages();
              }