From 8d58c40af40493bd5f066cbfdb1ffd9f113c22fc Mon Sep 17 00:00:00 2001
From: 严智鑫 <test>
Date: 星期三, 03 九月 2025 16:37:21 +0800
Subject: [PATCH] 1.前端推数据使用了最新的webSokect客户现场总是掉线,修改为接口方式 2.设备交互整体增加异常处理以及PLC连接方式改为短连接
---
JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java | 50 +++++++++++++++++++++-----------------------------
1 files changed, 21 insertions(+), 29 deletions(-)
diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java
index 139d6f6..fea75a5 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/common/S7objectMachine.java
@@ -3,7 +3,6 @@
import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
import com.mes.device.PlcParameterInfo;
import com.mes.device.PlcParameterObject;
-import com.mes.service.ModbusTcp;
import com.mes.tools.InitUtil;
import com.mes.tools.S7control;
import lombok.extern.slf4j.Slf4j;
@@ -17,14 +16,15 @@
* @Description:
*/
@Slf4j
-public class S7objectMachine extends Thread {
+public class S7objectMachine{
public S7control plccontrol; // PLC閫氳绫诲疄渚�
private EPlcType plcType = EPlcType.S1200; // 瑗块棬瀛怭LC绫诲瀷
private String ip = ""; // plc ip鍦板潃
private int port = 102; // plc 绔彛鍙�
private String plcFileName=""; // json鍚嶇О
public PlcParameterObject PlcMesObject;
- public S7objectMachine(String ip,int port,String plcFileName,EPlcType plcType) {
+
+ public S7objectMachine(String ip, int port, String plcFileName, EPlcType plcType) {
initialize(ip,port,plcFileName,plcType);
if (plccontrol == null) {
plccontrol = new S7control(this.plcType, this.ip, this.port, 0, 0);
@@ -51,34 +51,26 @@
}
log.info(logInfo);
}
- @Override
- public void run() {
- while (this != null) {
- try {
- Thread.sleep(100);
- } catch (InterruptedException e) {
- e.printStackTrace();
+ public void readData() {
+ try {
+ byte[] resultValues=new byte[PlcMesObject.getPlcAddressLength()];
+ int maxRead=1092;
+ int size=PlcMesObject.getPlcAddressLength()%maxRead==0?
+ (PlcMesObject.getPlcAddressLength()/maxRead):
+ (PlcMesObject.getPlcAddressLength()/maxRead+1);
+ for (int i = 0; i <size ; i++) {
+ int begin=i*maxRead;
+ int length=(i==size-1?PlcMesObject.getPlcAddressLength()-begin:maxRead);
+ String beginAddress=PlcMesObject.getPlcAddressBegin().substring(0, PlcMesObject.getPlcAddressBegin().indexOf("."))+"."+begin;
+ byte[] getplcvlues = plccontrol.readByte(beginAddress, length);
+ System.arraycopy(getplcvlues,0,resultValues,begin,length);
}
- try {
- byte[] resultValues=new byte[PlcMesObject.getPlcAddressLength()];
- int maxRead=1092;
- int size=PlcMesObject.getPlcAddressLength()%maxRead==0?
- (PlcMesObject.getPlcAddressLength()/maxRead):
- (PlcMesObject.getPlcAddressLength()/maxRead+1);
- for (int i = 0; i <size ; i++) {
- int begin=i*maxRead;
- int length=(i==size-1?PlcMesObject.getPlcAddressLength()-begin:maxRead);
- String beginAddress=PlcMesObject.getPlcAddressBegin().substring(0, PlcMesObject.getPlcAddressBegin().indexOf("."))+"."+begin;
- byte[] getplcvlues = plccontrol.readByte(beginAddress, length);
- System.arraycopy(getplcvlues,0,resultValues,begin,length);
- }
- if (resultValues != null) {
- PlcMesObject.setPlcParameterList(resultValues);
- }
- } catch (Exception e) {
- //log.info("寮傚父:ip:{},port:{}",this.ip,this.port);
+ if (resultValues != null) {
+ PlcMesObject.setPlcParameterList(resultValues);
}
-
+ } catch (Exception e) {
+ PlcMesObject=null;
+ log.info("寮傚父:ip:{},port:{},閿欒{}",this.ip,this.port,e.getMessage());
}
}
}
--
Gitblit v1.8.0