| | |
| | | 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()) {
|
| | |
| | | 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"));
|
| | | }
|
| | | }
|
| | | }
|