From 529d04102d54c3a2ed5da05ce4793af51472e454 Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期一, 22 七月 2024 08:10:18 +0800
Subject: [PATCH] 1、大理片笼进任务问题解决,不同版图进同一笼子问题解决 2、通信字电气未收到问题解决:发送后读取plc数据,未写进去一直写

---
 hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java |   56 +++++++++++++++++++++++++++++---------------------------
 1 files changed, 29 insertions(+), 27 deletions(-)

diff --git a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
index 62c5c84..22b7ce4 100644
--- a/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
+++ b/hangzhoumesParent/moduleService/CacheVerticalGlassModule/src/main/java/com/mes/job/PlcStorageCageTask.java
@@ -315,13 +315,16 @@
                     List<BigStorageCageOutTask> outTasks = list.stream().map(e -> new BigStorageCageOutTask(e.getGlassId(), first.getSlot(), second.getSlot(),
                             slotWidth, 0, 0, 1)).collect(Collectors.toList());
                     bigStorageCageOutTaskService.saveBatch(outTasks);
-                    boolean flag = Boolean.FALSE;
-                    int count = 3;
-                    while (!flag && count >= 0) {
-                        flag = S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
-                        count--;
+
+                    //鍚憄lc鍐欏叆纭瀛�
+                    int returnData = 0;
+                    int count = 1;
+                    while (returnData == 0) {
+                        log.info("宸插悜plc绗瑊}娆¢�佸崗璁�", count);
+                        S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+                        returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+                        log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
                     }
-                    log.info("宸插悜plc鍙戦�佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{}", mesToPLCAddress);
                     Date endDate = new Date();
                     log.info("澶х悊鐗囩鍑虹墖浠诲姟缁撴潫鏃堕棿锛歿}锛屽叡鑰楁椂锛歿}ms,缁撴潫鎵爜浠诲姟", endDate, endDate.getTime() - startDate.getTime());
                     return;
@@ -469,14 +472,15 @@
         }
         //鍚憄lc鍙戦�佽繘鐗囩‘璁�
         if (flag) {
-            boolean flagSend = Boolean.FALSE;
-            int count = 3;
-            while (!flagSend && count >= 0) {
-                flagSend = S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
-                count--;
-            }
-            log.info("杩涘崸杞珛鍙戦�佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓簕}", mesAddress);
+            //鍚憄lc鍐欏叆纭瀛�
+            int returnData = 0;
+            int count = 1;
+            while (returnData == 0) {
+                S7object.getinstance().plccontrol.writeWord(mesAddress, 1);
+                returnData = S7object.getinstance().plccontrol.readWord(mesAddress, 1).get(0);
+                log.info("杩涘崸杞珛绗瑊}娆″彂閫佺‘璁ゅ瓧瀹屾垚锛屽湴鍧�涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesAddress, returnData);
 
+            }
         }
         //璁板綍鏃犳硶鏀句笅鐜荤拑锛屽悗缁垽鏂惎鍔�
         return flag;
@@ -583,15 +587,13 @@
             s7control.writeWord(plcMesObject.getPlcParameter("StartAddToImport" + i).getAddress(), taskList.get(i - 1).getLine());
             s7control.writeWord(plcMesObject.getPlcParameter("TargetAddToImport" + i).getAddress(), taskList.get(i - 1).getTargetSlot());
         }
-
-        s7control.writeWord(outLine, 2);
-        boolean flag = Boolean.FALSE;
-        int count = 3;
-        while (!flag && count >= 0) {
-            flag = s7control.writeWord(outLine, 2);
-            count--;
+        int returnData = 0;
+        int count = 1;
+        while (returnData == 0) {
+            s7control.writeWord(outLine, 2);
+            returnData = s7control.readWord(outLine, 1).get(0);
+            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, outLine, returnData);
         }
-        log.info("閫佺墖浠诲姟宸插彂閫佸畬鎴愶紝浠诲姟绾胯矾涓猴細{}锛屽惎鍔ㄥ湴鍧�涓簕},纭瀛椾负{}", line, outLine, 2);
     }
 
     private <T extends BigStorageCageBaseInfo> Boolean computeOutGlassInfo(List<T> list, Boolean isTempering, String mesToPLCAddress) {
@@ -624,13 +626,13 @@
         //鏇存柊绗煎瓙鍐呮牸瀛愮殑鍓╀綑灏哄
         updateSlotRemain(list, glassIds);
 
-        boolean flag = Boolean.FALSE;
-        int count = 3;
-        while (!flag && count >= 0) {
-            flag = S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
-            count--;
+        int returnData = 0;
+        int count = 1;
+        while (returnData == 0) {
+            S7object.getinstance().plccontrol.writeWord(mesToPLCAddress, 1);
+            returnData = S7object.getinstance().plccontrol.readWord(mesToPLCAddress, 1).get(0);
+            log.info("宸插悜plc绗瑊}娆″彂閫佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{},鍐欏叆鐨勫唴瀹逛负{}", count++, mesToPLCAddress, returnData);
         }
-        log.info("宸插悜plc鍙戦�佸嚭鐗囦换鍔$‘璁わ紝鍦板潃涓猴細{}", mesToPLCAddress);
         return Boolean.TRUE;
     }
 

--
Gitblit v1.8.0