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 | 72 +++++++++++++++++++++++------------
1 files changed, 47 insertions(+), 25 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
index 6b141cc..ab86444 100644
--- a/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
+++ b/JiuMuMesParent/moduleService/DeviceInteractionModule/src/main/java/com/mes/job/PLCCleaning.java
@@ -1,21 +1,21 @@
package com.mes.job;
import cn.hutool.json.JSONObject;
-import com.mes.common.S7object;
+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.tools.WebSocketServer;
+import com.mes.websocket.WebSocketServer;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
-import java.util.ArrayList;
import java.util.List;
-import java.util.Objects;
/**
* @author SNG-010
@@ -24,43 +24,65 @@
@Slf4j
public class PLCCleaning {
- PlcParameterObject plcParameterObject = S7object.getinstance().PlcMesObject;
+ PlcParameterObject plcParameterObject =null;
@Autowired
TaskingService taskingService;
@Autowired
MachineMapper machineMapper;
+ public S7objectMachine s7objectMachine;
+
//@Scheduled(fixedDelay = 500)
- public void plcRinse() {
- //纾ㄨ竟绾块�熷害
- String edgingSpeed = plcParameterObject.getPlcParameter("edgingSpeed").getValue();
- if(!Objects.equals(edgingSpeed, "")){
- //缁欐竻娲楁満鍣ㄥ彂閫佺(杈规満閫熷害
- S7object.getinstance().plccontrol.writeWord(plcParameterObject.getPlcParameter("rinseSpeed").getAddress(), Integer.parseInt(edgingSpeed));
+ 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 edgingWeb() {
+ //@Scheduled(fixedDelay = 1000)
+ public void cleaningTask() {
//鑾峰彇鎶ヨ鐘舵��
JSONObject jsonObject = new JSONObject();
-// String warning = plcParameterObject.getPlcParameter("rinseWarning").getValue();
-// if (!Objects.equals(warning, "0")) {
-// //log.info("鎶ヨ淇℃伅锛�"+warning);
-// jsonObject.append("rinseWarning", warning);
-// }
Machine machine=machineMapper.selectById(7L);
List<Tasking> taskingList=taskingService.findMachineTask(machine);
jsonObject.append("taskingList", taskingList);
jsonObject.append("machine", machine);
- ArrayList<WebSocketServer> sendwServer = WebSocketServer.sessionMap.get("cleaning");
+ List<WebSocketServer> sendwServer = WebSocketServer.SESSIONMAP.get("cleaning");
if (sendwServer != null) {
for (WebSocketServer webserver : sendwServer) {
if (webserver != null) {
- webserver.sendMessage(jsonObject.toString());
- List<String> messages = webserver.getMessages();
- if (!messages.isEmpty()) {
- // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
- webserver.clearMessages();
+ try {
+ webserver.sendToWeb("",jsonObject.toString());
+ List<String> messages = webserver.getMessages();
+ if (!messages.isEmpty()) {
+ // // 灏嗘渶鍚庝竴涓秷鎭浆鎹负鏁存暟绫诲瀷鐨勫垪琛�
+ webserver.clearMessages();
+ }
+ }catch (Exception e) {
+
}
} else {
log.info("Home is closed");
--
Gitblit v1.8.0