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