package com.example.springboot.component;
|
|
import com.example.springboot.entity.device.PlcBitObject;
|
import com.example.springboot.entity.device.PlcParameterObject;
|
|
import java.io.IOException;
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import static com.example.springboot.component.InitUtil.readAndUpdateBitValues;
|
import static com.example.springboot.component.InitUtil.readAndUpdateWordValues;
|
|
public class PLCAutoMes extends Thread {
|
|
// 用于存储应用程序的配置信息
|
private Configuration config;
|
private static InitUtil initUtil;
|
// 创建一个自定义的 S7 控制器消息处理器对象
|
MessageHandler customS7Control = new MessageHandler();
|
|
// 单例实例
|
private static PLCAutoMes instance;
|
|
// 私有构造函数
|
public PLCAutoMes() throws IOException {
|
config = new Configuration("config.properties");
|
initUtil = new InitUtil();
|
}
|
|
// 获取单例实例
|
public static synchronized PLCAutoMes getInstance() throws IOException {
|
if (instance == null) {
|
instance = new PLCAutoMes();
|
}
|
return instance;
|
}
|
|
@Override
|
public void run() {
|
while (this != null) {
|
try {
|
Thread.sleep(1000);
|
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
|
|
|
String jsonFilePath = PLCAutoMes.class.getResource("/JsonFile/PlcMes.json").getPath();
|
|
String jsonFilePath2 = PLCAutoMes.class.getResource("/JsonFile/PlcRead.json").getPath();
|
String jsonFilePath3 = PLCAutoMes.class.getResource("/JsonFile/Plcframe.json").getPath();
|
System.out.println(jsonFilePath);
|
|
// 调用initword方法
|
PlcParameterObject PlcMesObject= initUtil.initword(jsonFilePath);
|
// 调用initbit方法
|
PlcParameterObject PlcReadObject= initUtil.initword(jsonFilePath2);
|
// 调用initbit方法
|
PlcParameterObject PlcframeObject= initUtil.initword(jsonFilePath3);
|
readAndUpdateWordValues(PlcframeObject);
|
readAndUpdateWordValues(PlcMesObject);
|
readAndUpdateWordValues(PlcReadObject);
|
|
|
// readAndUpdateWordValues(plcStateObject);
|
int index = PlcMesObject.getPlcParameter("AddStart").getAddressIndex();
|
System.out.println(index);
|
PlcMesObject.getPlcParameter("AddStart").getAddress(index);
|
System.out.println(PlcMesObject.getPlcParameter("AddStart").getAddress(index));
|
List<String> addresses = new ArrayList<>();
|
addresses.add("FeedCarStatus");
|
addresses.add("OutRequest");
|
System.out.println(PlcReadObject.getPlcParameterValues(addresses));
|
List<String> addresses2 = new ArrayList<>();
|
addresses2.add("conveyorVelocity(AutoSLOW)");
|
addresses2.add("D01.SRdec");
|
|
System.out.println(PlcReadObject.getPlcParameterValues(addresses2));
|
|
|
|
|
}
|
}
|
}
|