From 41d4e8a4cd7d54102498e4cd0cb41d1d7ae9c9d8 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期三, 16 二月 2022 15:30:32 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/MelsecCrnThread.java |   49 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
index 57d10ea..efd3d32 100644
--- a/src/main/java/com/zy/core/thread/MelsecCrnThread.java
+++ b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
@@ -39,6 +39,7 @@
     private MelsecMcNet melsecMcNet;
     private CrnSlave slave;
     private CrnProtocol crnProtocol;
+    private short heartBeatVal = 1;
     private boolean resetFlag = false;
 
     public MelsecCrnThread(CrnSlave slave) {
@@ -86,12 +87,40 @@
                     default:
                         break;
                 }
+                // 蹇冭烦
+//                heartbeat();
                 Thread.sleep(500);
             } catch (Exception e) {
                 e.printStackTrace();
             }
 
         }
+    }
+
+    /**
+     * 鍒濆鍖栧爢鍨涙満鐘舵��
+     */
+    private void initCrn() {
+        if (null == crnProtocol) {
+            crnProtocol = new CrnProtocol();
+        }
+        crnProtocol.setMode((short) -1);
+//        crnProtocol.setTaskNo((short)0);
+        crnProtocol.setStatus((short)-1);
+        crnProtocol.setBay((short)0);
+        crnProtocol.setLevel((short)0);
+        crnProtocol.setForkPos((short) -1);
+        crnProtocol.setLiftPos((short) -1);
+        crnProtocol.setWalkPos((short)0);
+        crnProtocol.setLoaded((short)0);
+        crnProtocol.setAlarm((short)0);
+        crnProtocol.setXSpeed(0F);
+        crnProtocol.setYSpeed(0F);
+        crnProtocol.setZSpeed(0F);
+        crnProtocol.setXDistance(0F);
+        crnProtocol.setYDistance(0F);
+        crnProtocol.setXDuration(0F);
+        crnProtocol.setYDuration(0F);
     }
 
     @Override
@@ -106,6 +135,7 @@
         } else {
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戝爢鍨涙満plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] ", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
             log.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            initCrn();
         }
         melsecMcNet.ConnectClose();
         return result;
@@ -116,6 +146,9 @@
      */
     private void readStatus(){
         try {
+            if (this.slave.getId() == 1) {
+                System.out.println("===");
+            }
             OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70);
             if (result.IsSuccess) {
                 if (null == crnProtocol) {
@@ -174,6 +207,7 @@
             e.printStackTrace();
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆戣鍙栧爢鍨涙満plc鐘舵�佷俊鎭け璐� ===>> [id:{1}] [ip:{2}] [port:{3}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort()));
             log.error("璇诲彇鍫嗗灈鏈簆lc鐘舵�佷俊鎭け璐� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
+            initCrn();
         }
 
     }
@@ -244,6 +278,21 @@
         melsecMcNet.ConnectClose();
     }
 
+    /**
+     * 蹇冭烦
+     */
+    private void heartbeat(){
+        if (heartBeatVal == 1) {
+            heartBeatVal = 2;
+        } else {
+            heartBeatVal = 1;
+        }
+        OperateResult write = melsecMcNet.Write("D10", heartBeatVal);
+        if (!write.IsSuccess) {
+            log.error("杈撻�佺嚎plc缂栧彿={} 蹇冭烦澶辫触", slave.getId());
+        }
+    }
+
 
     /******************************************************************************************/
     /**************************************** 娴嬭瘯涓撶敤 *****************************************/

--
Gitblit v1.9.1