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