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/job/PLCCleaning.java |   95 +++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 95 insertions(+), 0 deletions(-)

diff --git a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
new file mode 100644
index 0000000..ab86444
--- /dev/null
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
@@ -0,0 +1,95 @@
+package com.mes.job;
+
+import cn.hutool.json.JSONObject;
+import com.github.xingshuangs.iot.protocol.s7.enums.EPlcType;
+import com.mes.common.S7objectCleaning;
+import com.mes.common.S7objectMachine;
+import com.mes.device.PlcParameterInfo;
+import com.mes.device.PlcParameterObject;
+import com.mes.md.entity.Machine;
+import com.mes.md.entity.Tasking;
+import com.mes.md.mapper.MachineMapper;
+import com.mes.md.service.TaskingService;
+import com.mes.websocket.WebSocketServer;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @author SNG-010
+ */
+@Component
+@Slf4j
+public class PLCCleaning {
+
+    PlcParameterObject plcParameterObject =null;
+    @Autowired
+    TaskingService taskingService;
+    @Autowired
+    MachineMapper machineMapper;
+    public S7objectMachine s7objectMachine;
+
+    //@Scheduled(fixedDelay = 500)
+    public void cleaning() throws Exception {
+        //纾ㄨ竟绾块�熷害  10.36.164.200
+        Long machineId=8L;
+        Machine machine=machineMapper.selectById(machineId);
+        S7objectMachine s7objectMachine = new S7objectMachine(machine.getIp(),machine.getPort(),"PlcCleaning", EPlcType.S200_SMART);
+        s7objectMachine.readData();//鎸夌収json鏂囦欢璇诲彇鍐呭
+        PlcParameterObject plcParameterObject = s7objectMachine.PlcMesObject;
+        if (plcParameterObject == null) {
+            s7objectMachine.plccontrol.closeS7client();
+            return;
+        }
+        try {
+            PlcParameterInfo edgSpeed =plcParameterObject.getPlcParameter("edgSpeed");//纾ㄨ竟鏈洪�熷害
+            PlcParameterInfo thinness =plcParameterObject.getPlcParameter("thinness");//鍘氬害
+            if (machine.getIsLog()>0){
+                s7objectMachine.consoleLogInfo();
+            }
+            int edgSpeedInt=0;
+            int edgThinnessInt=0;
+            if(!(edgSpeedInt+"").equals(edgSpeed.getValue())||!(edgThinnessInt+"").equals(thinness.getValue())){
+                //缁欐竻娲楁満鍣ㄥ彂閫佺(杈规満閫熷害
+                S7objectCleaning.getinstance().plccontrol.writeWord(edgSpeed.getAddress(), edgSpeedInt);
+                S7objectCleaning.getinstance().plccontrol.writeWord(thinness.getAddress(), edgThinnessInt);
+            }
+        }catch (Exception e) {
+            s7objectMachine.plccontrol.closeS7client();
+            log.info("閫昏緫澶勭悊寮傚父锛氳澶噄d銆恵}銆�", machine.getId());
+        }
+
+    }
+    //@Scheduled(fixedDelay = 1000)
+    public void cleaningTask() {
+        //鑾峰彇鎶ヨ鐘舵��
+        JSONObject jsonObject = new JSONObject();
+        Machine machine=machineMapper.selectById(7L);
+        List<Tasking> taskingList=taskingService.findMachineTask(machine);
+        jsonObject.append("taskingList", taskingList);
+        jsonObject.append("machine", machine);
+        List<WebSocketServer> sendwServer = WebSocketServer.SESSIONMAP.get("cleaning");
+        if (sendwServer != null) {
+            for (WebSocketServer webserver : sendwServer) {
+                if (webserver != null) {
+                    try {
+                        webserver.sendToWeb("",jsonObject.toString());
+                        List<String> messages = webserver.getMessages();
+                        if (!messages.isEmpty()) {
+                            // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+                            webserver.clearMessages();
+                        }
+                    }catch (Exception e) {
+
+                    }
+                } else {
+                    log.info("Home is closed");
+                }
+            }
+
+        }
+    }
+
+}
\ No newline at end of file

--
Gitblit v1.8.0