package com.mes.common;
|
|
import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
|
import com.mes.device.PlcParameterObject;
|
import com.mes.tools.InitUtil;
|
import com.mes.tools.S7control;
|
|
|
/**
|
* @Author : zhoush
|
* @Date: 2024/4/9 15:13
|
* @Description:
|
*/
|
public class S7object extends Thread {
|
public S7control plccontrol; // PLC通讯类实例
|
private EPlcType plcType = EPlcType.S1200; // 西门子PLC类型
|
private String ip = "192.168.30.100"; // plc ip地址
|
private int port = 102; // plc 端口号
|
|
|
public PlcParameterObject PlcMesObject;
|
private static volatile S7object instance = null;
|
|
private S7object() {
|
if (plccontrol == null) {
|
plccontrol = new S7control(plcType, ip, port, 0, 0);
|
String PlcCacheGlass = System.getProperty("user.dir") + "/JsonFile/PlcdownGlass.json";
|
PlcMesObject = InitUtil.initword(PlcCacheGlass);
|
}
|
}
|
|
// 单例模式 获取类的唯一实例
|
public static S7object getinstance() {
|
if (instance == null) {
|
synchronized (S7object.class) {
|
if (instance == null) {
|
instance = new S7object();
|
}
|
}
|
}
|
return instance;
|
}
|
|
@Override
|
public void run() {
|
while (this != null) {
|
try {
|
Thread.sleep(100);
|
|
} catch (InterruptedException e) {
|
e.printStackTrace();
|
}
|
|
byte[] getplcvlues = plccontrol.readByte(PlcMesObject.getPlcAddressBegin(), PlcMesObject.getPlcAddressLength());
|
if (getplcvlues != null) {
|
PlcMesObject.setPlcParameterList(getplcvlues);
|
}
|
|
}
|
}
|
}
|