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.ArrayList; import java.util.Arrays; import java.util.List; public class Plcaction extends Thread { @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()) { try { i++; Thread.sleep(1000); } catch (InterruptedException e) { 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 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 data = new ArrayList<>(Arrays.asList(values1)); List data2 = new ArrayList<>(Arrays.asList(values2)); List addresses3 = new ArrayList<>(); addresses3.add("DB1.0.0"); addresses3.add("DB1.0.3"); addresses3.add("DB1.0.5"); List 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"); List 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 data5= MockS7PLCtwo.getInstance().readwords("DB104.0", 9); List data3= MockS7PLCtwo.getInstance().ReadWords(addresses); List data4= MockS7PLCtwo.getInstance().readbits("DB4.0.0",10); List 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")); } } }