From a626f882f179f87efa1c370d1d484c0c0213b813 Mon Sep 17 00:00:00 2001 From: liuhanqing Date: Fri, 21 Nov 2025 10:29:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A0=86=E5=9E=9B=E6=9C=BA=E8=AF=BB=E5=8F=96?= =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/ruoyi/device/ddj/domain/MsgDdj.java | 3 +++ .../ruoyi/device/ssj/domain/DeviceSsj.java | 2 ++ .../com/ruoyi/schedule/ScheduleThread.java | 23 ++++++++++--------- .../schedule/plcRead/ddj/PlcDdjRead.java | 12 ++++------ ruoyi-ui/src/views/device/ddj/index.vue | 2 +- 5 files changed, 22 insertions(+), 20 deletions(-) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/ddj/domain/MsgDdj.java b/ruoyi-admin/src/main/java/com/ruoyi/device/ddj/domain/MsgDdj.java index 9f797b8..bbc2ca1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/ddj/domain/MsgDdj.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/ddj/domain/MsgDdj.java @@ -100,6 +100,9 @@ public class MsgDdj extends BaseEntity private String plcDbReadAddress; + private String ip; + private String port; + } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java b/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java index 2e4b9fb..8a53c8b 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/device/ssj/domain/DeviceSsj.java @@ -40,6 +40,8 @@ public class DeviceSsj extends BaseEntity @Excel(name = "设备IP") private String ipAddress; + private String port; + /** PLC读取地址 */ @Excel(name = "PLC读取地址") private String plcDbReadAddress; diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java index 1a49778..fea3498 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/ScheduleThread.java @@ -1,5 +1,6 @@ package com.ruoyi.schedule; +import com.ruoyi.common.core.text.Convert; import com.ruoyi.device.ddj.domain.MsgDdj; import com.ruoyi.device.ddj.service.IMsgDdjService; import com.ruoyi.device.ssj.domain.DeviceSsj; @@ -101,29 +102,29 @@ public class ScheduleThread { for (DeviceSsj deviceSsj : deviceSsjs) { ssjList.put(deviceSsj.getDeviceCode(), deviceSsj); } + PlcSsjRead plcSsjRead = new PlcSsjRead(ssjList, new PlcConnectInfo(deviceSsjs.get(0).getIpAddress(), Convert.toInt(deviceSsjs.get(0).getPort()))); + Thread plcSsjReadThread = new Thread(plcSsjRead); + plcSsjReadCustomThread = new CustomThread(plcSsjReadThread, plcSsjRead); + PlcSsjRead.deviceSsjMap = ssjList; - - + //获取堆垛机 ConcurrentHashMap ddjList = new ConcurrentHashMap<>(); List msgDdjs = msgDdjService.selectMsgDdjList(new MsgDdj()); for (MsgDdj msgDdj : msgDdjs) { + msgDdj.setPlcDbReadAddress(msgDdj.getPlcDbReadAddress()); + PlcDdjRead plcDdjRead = new PlcDdjRead(msgDdj, new PlcConnectInfo(msgDdj.getIp(), Convert.toInt(msgDdj.getPort()))); + Thread plcDdjReadThread = new Thread(plcDdjRead); switch (msgDdj.getId()){ case 1: - msgDdj.setPlcDbReadAddress("DB41.0"); - PlcDdjRead plcDdjRead1 = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.1", 102)); - Thread plcDdjReadThread1 = new Thread(plcDdjRead1); - plcDdj1ReadCustomThread = new CustomThread(plcDdjReadThread1, plcDdjRead1); + plcDdj1ReadCustomThread = new CustomThread(plcDdjReadThread, plcDdjRead); break; case 2: - msgDdj.setPlcDbReadAddress("DB42.0"); - PlcDdjRead plcDdjRead2 = new PlcDdjRead(ddjList, new PlcConnectInfo("127.0.0.2", 102)); - Thread plcDdjReadThread2 = new Thread(plcDdjRead2); - plcDdj2ReadCustomThread = new CustomThread(plcDdjReadThread2, plcDdjRead2); + plcDdj2ReadCustomThread = new CustomThread(plcDdjReadThread, plcDdjRead); break; - } ddjList.put("ddj" + msgDdj.getId(), msgDdj); } + PlcDdjRead.deviceDdjMap = ddjList; } diff --git a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ddj/PlcDdjRead.java b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ddj/PlcDdjRead.java index ad91de3..5ac3fb1 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ddj/PlcDdjRead.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/schedule/plcRead/ddj/PlcDdjRead.java @@ -26,9 +26,10 @@ public class PlcDdjRead extends Thread { private final String ip; private final int port; private boolean success = false; + private MsgDdj msgDdj; - public PlcDdjRead(ConcurrentHashMap deviceDdjMap, PlcConnectInfo plcConnectInfo) { - PlcDdjRead.deviceDdjMap = deviceDdjMap; + public PlcDdjRead(MsgDdj msgDdj, PlcConnectInfo plcConnectInfo) { + this.msgDdj = msgDdj; this.ip = plcConnectInfo.getIp(); this.port = plcConnectInfo.getPort(); } @@ -46,12 +47,7 @@ public class PlcDdjRead extends Thread { while (isRun) { try { if (IsConnect()) { - for (String key : deviceDdjMap.keySet()) { - MsgDdj msgDdj = deviceDdjMap.get(key); - if (msgDdj != null) { - readPlcDdj(msgDdj); - } - } + readPlcDdj(msgDdj); Thread.sleep(1000); } else { reConnect(); diff --git a/ruoyi-ui/src/views/device/ddj/index.vue b/ruoyi-ui/src/views/device/ddj/index.vue index b691746..31a5817 100644 --- a/ruoyi-ui/src/views/device/ddj/index.vue +++ b/ruoyi-ui/src/views/device/ddj/index.vue @@ -315,7 +315,7 @@ export default { this.initMockData() }, mounted() { - this.timer = setInterval(() => { + this.timer = setInterval(() => {x this.initMockData(); }, 1000); // 每1秒刷新一次 },