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/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java |   86 ++++++++++++++++++++++++++++---------------
 1 files changed, 56 insertions(+), 30 deletions(-)

diff --git a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
index 579f3b1..314c23f 100644
--- a/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
+++ b/hangzhoumesParent/moduleService/TemperingGlassModule/src/main/java/com/mes/job/OpcNGTemperingTask.java
@@ -2,6 +2,7 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.github.xingshuangs.iot.protocol.modbus.service.ModbusTcp;
 import com.github.xingshuangs.iot.protocol.s7.serializer.S7Serializer;
 import com.kangaroohy.milo.model.ReadWriteEntity;
 import com.kangaroohy.milo.service.MiloService;
@@ -44,6 +45,11 @@
     @Qualifier("s7SerializerGHOne")
     private S7Serializer s7SerializerGHOne;
 
+    @Autowired
+    ModbusTcp tempModbusTcp;
+
+    private Integer offset = 40001;
+
     /**
      * 鎽嗙墖鍙拌姹傝繘鐗囬�昏緫澶勭悊
      * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
@@ -51,20 +57,21 @@
      */
     @Scheduled(fixedDelay = 1000)
     public void requestTemperingTask() throws Exception {
-        S7DataGHOne s7DataGHOne=s7SerializerGHOne.read(S7DataGHOne.class);
+        S7DataGHOne s7DataGHOne = s7SerializerGHOne.read(S7DataGHOne.class);
+        log.info("璇诲彇鍒扮殑GH1S7.GH1S7鏁版嵁锛歿}", s7DataGHOne);
 //        ReadWriteEntity requestInTempering = miloService.readFromOpcUa("GH1S7.GH1S7.requestInTempering");//璇锋眰杩涚墖
 //        ReadWriteEntity requestTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.requestTemperingId");//璇锋眰杩涚墖 鐐夊彿ID
 //        Integer request = Integer.parseInt(requestInTempering.getValue().toString());
 //        Integer id = Integer.parseInt(requestTemperingId.getValue().toString());
-        Integer request = (int)s7DataGHOne.getRequestInTempering();
-        Integer id = (int)s7DataGHOne.getRequestTemperingId();
+        Integer request = (int) s7DataGHOne.getRequestInTempering();
+        Integer id = (int) s7DataGHOne.getRequestTemperingId();
         if (request == 0) {
 //            miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 0));//鍏佽閫佺墖娓呴浂
             s7SerializerGHOne.write(
-                    S7DataGHOne.builder().responseInTempering((short)0).build()
+                    S7DataGHOne.builder().responseInTempering(0).build()
             );
         } else {
-            if (id == 0){
+            if (id == 0) {
                 log.info("鐐夊彿涓嶈兘涓�0");
                 return;
             }
@@ -75,12 +82,12 @@
             if (Integer.parseInt(placedNumber) == glassList.size()) {
 //                miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 1));//鍐欏叆鍏佽閫佺墖
                 s7SerializerGHOne.write(
-                        S7DataGHOne.builder().responseInTempering((short)1).build()
+                        S7DataGHOne.builder().responseInTempering(1).build()
                 );
             } else {
 //                miloService.writeToOpcUa(generateReadWriteEntity("GH1S7.GH1S7.responseInTempering", 2));//涓嶆弧瓒宠繘鐐夋潯浠�
                 s7SerializerGHOne.write(
-                        S7DataGHOne.builder().responseInTempering((short)2).build()
+                        S7DataGHOne.builder().responseInTempering(2).build()
                 );
             }
         }
@@ -93,12 +100,15 @@
      */
     @Scheduled(fixedDelay = 1000)
     public void loadTemperingTask() throws Exception {
-        S7DataGHOne s7DataGHOne=s7SerializerGHOne.read(S7DataGHOne.class);
-//        ReadWriteEntity loadTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.loadTemperingId");//杩涚墖瀹屾垚 鐐夊彿ID
-//        getNewTemperingID(Integer.parseInt(loadTemperingId.getValue().toString()));//杩涚墖瀹屾垚 涓嬪彂鍙傛暟
-        String loadTemperingId=s7DataGHOne.getLoadTemperingId().toString();//杩涚墖瀹屾垚 鐐夊彿ID
-        getNewTemperingID(Integer.parseInt(loadTemperingId));//杩涚墖瀹屾垚 涓嬪彂鍙傛暟
+        S7DataGHOne s7DataGHOne = s7SerializerGHOne.read(S7DataGHOne.class);
+        log.info("璇诲彇鍒扮殑GH1S7.GH1S7鏁版嵁锛歿}", s7DataGHOne);
+        Integer loadTemperingId = s7DataGHOne.getLoadTemperingId();//杩涚墖瀹屾垚 鐐夊彿ID
+        getNewTemperingID(loadTemperingId);//杩涚墖瀹屾垚 涓嬪彂鍙傛暟
+//      ReadWriteEntity loadTemperingId = miloService.readFromOpcUa("GH1S7.GH1S7.loadTemperingId");//杩涚墖瀹屾垚 鐐夊彿ID
+//      getNewTemperingID(Integer.parseInt(loadTemperingId.getValue().toString()));//杩涚墖瀹屾垚 涓嬪彂鍙傛暟
+//        getNewTemperingID(19);
     }
+
     /**
      * 鏇存柊閽㈠寲灏忕墖琛ㄥ唴鐨勭幓鐠冪姸鎬�
      * fixedRate : 涓婁竴涓皟鐢ㄥ紑濮嬪悗鍐嶆璋冪敤鐨勫欢鏃讹紙涓嶇敤绛夊緟涓婁竴娆¤皟鐢ㄥ畬鎴愶級
@@ -106,11 +116,14 @@
      */
     @Scheduled(fixedDelay = 5000)
     public void updateTemperingTask() throws Exception {
-        ReadWriteEntity furanchiIdEntity = miloService.readFromOpcUa("GH1.GH1.Furanch1Id");//杩涚墖瀹屾垚 鐐夊彿ID
-        if (StringUtils.isNotBlank(furanchiIdEntity.getValue()+"")){
-            int temperingid = Integer.parseInt(furanchiIdEntity.getValue().toString());
+        int furanchiIdEntity = tempModbusTcp.readUInt16(40461 - offset);
+        if (StringUtils.isNotBlank(furanchiIdEntity + "")) {
+            int temperingid = furanchiIdEntity;
+//        ReadWriteEntity furanchiIdEntity = miloService.readFromOpcUa("GH1.GH1.Furanch1Id");//杩涚墖瀹屾垚 鐐夊彿ID
+//        if (StringUtils.isNotBlank(furanchiIdEntity.getValue()+"")){
+//            int temperingid = Integer.parseInt(furanchiIdEntity.getValue().toString());
             temperingAgoService.update(new LambdaUpdateWrapper<TemperingGlassInfo>().set(TemperingGlassInfo::getState, Const.TEMPERING_START)
-                    .in(TemperingGlassInfo::getState, Const.TEMPERING_OUT, Const.TEMPERING_DROP).eq(TemperingGlassInfo::getTemperingLayoutId,temperingid));
+                    .in(TemperingGlassInfo::getState, Const.TEMPERING_OUT, Const.TEMPERING_DROP).eq(TemperingGlassInfo::getTemperingLayoutId, temperingid));
         }
 
 
@@ -118,14 +131,19 @@
 
     //鑾峰彇鍒扮倝鍙穒d鎵ц鍙傛暟涓嬪彂浠诲姟
     private void getNewTemperingID(Integer temperingid) throws Exception {
-        ReadWriteEntity autoStatus = miloService.readFromOpcUa("GH1.GH1.AutoStatus");
-        if (1 != Integer.parseInt(autoStatus.getValue().toString())) {
+        int autoStatus = tempModbusTcp.readUInt16(40451 - offset);
+        if (1 != autoStatus) {
+//        ReadWriteEntity autoStatus = miloService.readFromOpcUa("GH1.GH1.AutoStatus");
+//        if (1 != Integer.parseInt(autoStatus.getValue().toString())) {
             log.info("褰撳墠涓洪潪鑱旀満鐘舵�侊紝缁撴潫閽㈠寲涓嬪彂鍙傛暟浠诲姟");
             return;
         }
-        ReadWriteEntity QandA = miloService.readFromOpcUa("GH1.GH1.QandA");
-        ReadWriteEntity RecipeStatus = miloService.readFromOpcUa("GH1.GH1.RecipeStatus");
-        if (1 == Integer.parseInt(QandA.getValue().toString()) && 2 == Integer.parseInt(RecipeStatus.getValue().toString())) {
+        int QandA = tempModbusTcp.readUInt16(40422 - offset);
+        int RecipeStatus = tempModbusTcp.readUInt16(40456 - offset);
+        if (1 == QandA && 2 == RecipeStatus) {
+//        ReadWriteEntity QandA = miloService.readFromOpcUa("GH1.GH1.QandA");
+//        ReadWriteEntity RecipeStatus = miloService.readFromOpcUa("GH1.GH1.RecipeStatus");
+//        if (1 == Integer.parseInt(QandA.getValue().toString()) && 2 == Integer.parseInt(RecipeStatus.getValue().toString())) {
             log.info("鐗堥潰淇℃伅宸茬粡涓嬪彂锛屽苟涓斿凡缁忓尮閰嶅弬鏁帮紝缁撴潫閽㈠寲涓嬪彂鍙傛暟浠诲姟");
             return;
         }
@@ -153,17 +171,25 @@
             shape = shape > 10000 ? 10000 : shape;
             int workmode = 0; //宸ヤ綅鏁�
             int furmode = 0; //鍙屽/鑱斿
+            tempModbusTcp.writeUInt16(40408 - offset, temperingid);
+            tempModbusTcp.writeUInt16(40409 - offset, glasstype);
+            tempModbusTcp.writeUInt16(40411 - offset, process);
+            tempModbusTcp.writeUInt16(40412 - offset, thiness);
+            tempModbusTcp.writeUInt16(40413 - offset, loadingRate);
+            tempModbusTcp.writeUInt16(40414 - offset, shape);
+            tempModbusTcp.writeUInt16(40415 - offset, workmode);
+            tempModbusTcp.writeUInt16(40416 - offset, furmode);
 
-            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.TemperingId", temperingid));//鍐欏叆鐐夊彿
-            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.GlassType", glasstype));//鍐欏叆鐜荤拑绫诲瀷
-            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Process", process));//鍐欏叆閽㈠寲绫诲瀷 鍏ㄩ挗 鍗婇挗 闃茬伀
-            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Thickness", thiness));//鍐欏叆鍘氬害
-            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.LoadingRate", loadingRate));//鍐欏叆瑁呰浇鐜�
-            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Shape", shape));//鍐欏叆澶х墖姣斾緥
-            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.WorkMode", workmode));//鍐欏叆宸ヤ綅鏁�
-            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.FurnaceMode", furmode));//鍐欏叆鐐変綋宸ヤ綔鏂瑰紡
+//            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.TemperingId", temperingid));//鍐欏叆鐐夊彿
+//            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.GlassType", glasstype));//鍐欏叆鐜荤拑绫诲瀷
+//            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Process", process));//鍐欏叆閽㈠寲绫诲瀷 鍏ㄩ挗 鍗婇挗 闃茬伀
+//            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Thickness", thiness));//鍐欏叆鍘氬害
+//            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.LoadingRate", loadingRate));//鍐欏叆瑁呰浇鐜�
+//            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.Shape", shape));//鍐欏叆澶х墖姣斾緥
+//            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.WorkMode", workmode));//鍐欏叆宸ヤ綅鏁�
+//            miloService.writeToOpcUa(generateReadWriteEntity("GH1.GH1.FurnaceMode", furmode));//鍐欏叆鐐変綋宸ヤ綔鏂瑰紡
             log.info("鐐夊彿" + temperingid + "鐗堥潰淇℃伅灏濊瘯涓嬪彂");
-       }
+        }
     }
 
 

--
Gitblit v1.8.0