From d7765b799489db445388e528044ab3b2bd2e649e Mon Sep 17 00:00:00 2001
From: ZengTao <2773468879@qq.com>
Date: 星期四, 12 六月 2025 08:22:57 +0800
Subject: [PATCH] 钢化模块modbus和S7改造

---
 hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java |   69 ++++++++++++++++++++++++++++------
 1 files changed, 56 insertions(+), 13 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java
index ec3ade9..286fab4 100644
--- a/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java
+++ b/hangzhoumesParent/moduleService/CacheGlassModule/src/main/java/com/mes/job/OpcEdgTask.java
@@ -1,12 +1,15 @@
 package com.mes.job;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
 import com.kangaroohy.milo.model.ReadWriteEntity;
 import com.kangaroohy.milo.service.MiloService;
 import com.mes.glassinfo.entity.GlassInfo;
 import com.mes.glassinfo.service.GlassInfoService;
+import com.mes.s7.entity.S7DataMBExtra;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Qualifier;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 import org.springframework.util.StringUtils;
@@ -28,9 +31,12 @@
     @Autowired(required = false)
     MiloService miloService;
 
+    @Autowired
+    @Qualifier("s7SerializerMBExtra")
+    private S7Serializer s7SerializerMBExtra;
+
     @Resource
     GlassInfoService glassInfoService;
-
 
     @Scheduled(fixedDelay = 2000)
     public void startOneEdgTask() throws Exception {
@@ -43,27 +49,64 @@
     }
 
     private void startEdgTaskChild(String cell) throws Exception {
-        ReadWriteEntity request = miloService.readFromOpcUa("MB04.MB04.request" + cell);
-        if (null == request || "0".equals(request.getValue() + "")) {
+        S7DataMBExtra s7DataMBExtra = s7SerializerMBExtra.read(S7DataMBExtra.class);
+        log.info("MB04璇诲彇鏁版嵁{}", s7DataMBExtra);
+//        ReadWriteEntity request = miloService.readFromOpcUa("MB04.MB04.request" + cell);
+//        if (null == request || "0".equals(request.getValue() + "")) {
+        String request = "";
+        String glassIdEntity = "";
+        if ("01".equals(cell)) {
+            request = s7DataMBExtra.getRequestOne().toString();
+            glassIdEntity = s7DataMBExtra.getPlcGlassIdOne();
+        } else {
+            request = s7DataMBExtra.getRequestTwo().toString();
+            glassIdEntity = s7DataMBExtra.getPlcGlassIdTwo();
+        }
+        if (null == request || "0".equals(request)) {
             log.info("鏈敹鍒扮幓鐠冭姹傦紝缁撴潫鏈浠诲姟");
             return;
         }
-        ReadWriteEntity glassIdEntity = miloService.readFromOpcUa("MB04.MB04.plc_glass_id_" + cell);
-
-        if (null == glassIdEntity || StringUtils.isEmpty(glassIdEntity.getValue() + "")) {
+//        ReadWriteEntity glassIdEntity = miloService.readFromOpcUa("MB04.MB04.plc_glass_id_" + cell);
+//        if (null == glassIdEntity || StringUtils.isEmpty(glassIdEntity.getValue() + "")) {
+        if (null == glassIdEntity || StringUtils.isEmpty(glassIdEntity)) {
             log.info("鏈夎姹備絾鐜荤拑id涓虹┖锛岀粨鏉熸湰娆′换鍔�");
             return;
         }
-        String glassId = glassIdEntity.getValue() + "";
+//        String glassId = glassIdEntity.getValue() + "";
+        String glassId = glassIdEntity;
         log.info("鑾峰彇鍒皗}绾跨殑鐜荤拑id:{}", cell, glassId);
         GlassInfo glassInfo = glassInfoService.getOne(new LambdaQueryWrapper<GlassInfo>().eq(GlassInfo::getGlassId, glassId).last("limit 1"));
 
-        List<ReadWriteEntity> ualist = new ArrayList<>();
-        ualist.add(generateReadWriteEntity("MB04.MB04.width" + cell, (int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
-        ualist.add(generateReadWriteEntity("MB04.MB04.height" + cell, (int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
-        ualist.add(generateReadWriteEntity("MB04.MB04.thickness" + cell, (int) glassInfo.getThickness() * 10));
-        miloService.writeToOpcWord(ualist);
-        miloService.writeToOpcUa(generateReadWriteEntity("MB04.MB04.mes_glass_Id_" + cell, glassId));
+//        List<ReadWriteEntity> ualist = new ArrayList<>();
+//        ualist.add(generateReadWriteEntity("MB04.MB04.width" + cell, (int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+//        ualist.add(generateReadWriteEntity("MB04.MB04.height" + cell, (int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10)));
+//        ualist.add(generateReadWriteEntity("MB04.MB04.thickness" + cell, (int) glassInfo.getThickness() * 10));
+//        miloService.writeToOpcWord(ualist);
+//        miloService.writeToOpcUa(generateReadWriteEntity("MB04.MB04.mes_glass_Id_" + cell, glassId));
+        log.info("{}绾垮彂閫佸昂瀵镐俊鎭锛歿}锛岄珮锛歿}锛屽帤搴︼細{}", cell, Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10), Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10), glassInfo.getThickness() * 10);
+        if ("01".equals(cell)) {
+            s7SerializerMBExtra.write(
+                    S7DataMBExtra.builder()
+                            .widthOne((int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10))
+                            .heightOne((int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10))
+                            .thicknessOne((int) (glassInfo.getThickness() * 10))
+                            .build()
+            );
+            s7SerializerMBExtra.write(
+                    S7DataMBExtra.builder().mesGlassIdOne(glassId).build()
+            );
+        } else {
+            s7SerializerMBExtra.write(
+                    S7DataMBExtra.builder()
+                            .widthTwo((int) Math.max(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10))
+                            .heightTwo((int) Math.min(glassInfo.getWidth() * 10, glassInfo.getHeight() * 10))
+                            .thicknessTwo((int) (glassInfo.getThickness() * 10))
+                            .build()
+            );
+            s7SerializerMBExtra.write(
+                    S7DataMBExtra.builder().mesglassIdTwo(glassId).build()
+            );
+        }
     }
 
     private ReadWriteEntity generateReadWriteEntity(String identifier, Object value) {

--
Gitblit v1.8.0