wang
2024-03-28 04adb88a2ed54cdf4c2958c79972c30109b9b5b6
UnLoadGlassModule/src/main/java/com/mes/service/Plcaction.java
@@ -1,20 +1,25 @@
package com.mes.service;
import com.mes.common.PlcTools.MockS7PLCtwo;
import com.mes.entity.DownGlassInfo;
import com.mes.mapper.DownWorkstationMapper;
import com.mes.tools.WebSocketServer;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.Collections;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class Plcaction extends Thread {
  private static DownGlassInfoService downGlassInfoService; // 静态变量
  public static void setDownGlassInfoService(DownGlassInfoService service) {
    downGlassInfoService = service;
  }
  private List<DownGlassInfo> downGlassInfo; //
  @Autowired
  private DownWorkstationMapper downWorkstationMapper;
  private DownGlassInfo downGlassInfo; //
  private DownGlassInfoService downGlassInfoService;
  private int i =1; //
    //MockS7PLC mockS7PLC=new MockS7PLC();
  @Override
  public void run() {
    while (!Thread.currentThread().isInterrupted()) {
@@ -25,11 +30,74 @@
        Thread.currentThread().interrupt();
        e.printStackTrace();
      }
      downWorkstationMapper = WebSocketServer.applicationContext.getBean(DownWorkstationMapper.class);
      downGlassInfoService = WebSocketServer.applicationContext.getBean(DownGlassInfoService.class);
      int workstationId = 1;
      int deviceId = 2;
      int newWorkState = 9;
      downWorkstationMapper.updateWorkStateByWorkstationIdAndDeviceId(workstationId, deviceId, newWorkState);
      downGlassInfo  = downGlassInfoService.getDownGlassInfoById(1); // 设置需要查询的id
//   System.out.println("Down Glass Info in new thread: "+i + downGlassInfo);
      Boolean[] value4 = { false, true, true, true, true, true, false, false, false,
              false};
     List<Boolean> booldata2 = new ArrayList<>(Arrays.asList(value4));
       // MockS7PLCtwo.getInstance().writeBoolean("DB1.DBX0.0", false);
       // MockS7PLCtwo.getInstance().writebits("DB4.0.0",booldata2);
// 从相同的地址读取布尔值
      boolean value = MockS7PLCtwo.getInstance().readBoolean("DB1.DBX0.0");
      Short[] values1 = { 0, 1, 1, 1, 1, 1, 1, 1, 1, 1};
      Short[] values2 = { 11, 12, 13, 14, 15, 16, 17, 18, 19, 20};
   List<Short> data = new ArrayList<>(Arrays.asList(values1));
      List<Short> data2 = new ArrayList<>(Arrays.asList(values2));
        List<String> addresses3 = new ArrayList<>();
        addresses3.add("DB1.0.0");
        addresses3.add("DB1.0.3");
        addresses3.add("DB1.0.5");
      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");
      downGlassInfo  = Collections.singletonList(downGlassInfoService.getDownGlassInfoById(1)); // 设置需要查询的id
   System.out.println("Down Glass Info in new thread: "+i + downGlassInfo);
      List<String> addresses2 = new ArrayList<>();
      addresses2.add("DB101.0");
      addresses2.add("DB101.2");
      addresses2.add("DB101.4");
      addresses2.add("DB101.6");
      addresses2.add("DB101.8");
      addresses2.add("DB101.10");
      addresses2.add("DB101.12");
      addresses2.add("DB101.14");
      addresses2.add("DB101.16");
      addresses2.add("DB101.18");
//      mockPLC.writeword("DB100.2",data );
        MockS7PLCtwo.getInstance().WriteWords(addresses, data);
        MockS7PLCtwo.getInstance().WriteWords(addresses2, data2);
  //DB100.2,DB100.4,DB100.6,DB100.28,DB100.30,DB100.32,DB100.36,DB100.38,DB100.40
  List<Short> data5= MockS7PLCtwo.getInstance().readwords("DB104.0", 9);
      List<Short> data3= MockS7PLCtwo.getInstance().ReadWords(addresses);
      List<Boolean> data4= MockS7PLCtwo.getInstance().readbits("DB4.0.0",10);
        List<Boolean> data6= MockS7PLCtwo.getInstance().readBits(addresses3);
    //  System.out.println("读取的布尔值: " + value); // 应该输出 true
     // System.out.println("读取的word值: " + data3);
      System.out.println("读取的word值: " + data4);
//        System.out.println("读取的bit值: " + data4);
//        System.out.println("读取的bit值: " + data6);
     //   System.out.println("读取的word值: " + MockS7PLCtwo.getInstance().readInt16("DB5.0.0"));
    }
  }
}