From 6f3dba8f0db1e0992d9c755fd232b4a5c4d5b66c Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期三, 16 三月 2022 14:23:59 +0800
Subject: [PATCH] #

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

diff --git a/src/main/java/com/zy/core/thread/MelsecCrnThread.java b/src/main/java/com/zy/core/thread/MelsecCrnThread.java
index 0f4c004..240532f 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) {
@@ -49,6 +50,11 @@
     @SuppressWarnings("InfiniteLoopStatement")
     public void run() {
         this.connect();
+//        try {
+//            Thread.sleep(2000);
+//        } catch (InterruptedException e) {
+//            e.printStackTrace();
+//        }
         while (true) {
             try {
                 int step = 1;
@@ -86,6 +92,8 @@
                     default:
                         break;
                 }
+                // 蹇冭烦
+                heartbeat();
                 Thread.sleep(500);
             } catch (Exception e) {
                 e.printStackTrace();
@@ -101,6 +109,7 @@
         if (null == crnProtocol) {
             crnProtocol = new CrnProtocol();
         }
+        crnProtocol.setCrnNo(slave.getId());
         crnProtocol.setMode((short) -1);
 //        crnProtocol.setTaskNo((short)0);
         crnProtocol.setStatus((short)-1);
@@ -134,7 +143,7 @@
             log.error("鍫嗗灈鏈簆lc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}]", slave.getId(), slave.getIp(), slave.getPort());
             initCrn();
         }
-        melsecMcNet.ConnectClose();
+//        melsecMcNet.ConnectClose();
         return result;
     }
 
@@ -143,11 +152,17 @@
      */
     private void readStatus(){
         try {
+//            if (this.slave.getId() == 1 && flag1.equals(0)) {
+//                Thread.sleep(3000);
+//                flag1=1;
+//                System.out.println("===");
+//            }
             OperateResultExOne<byte[]> result = melsecMcNet.Read("D20", (short) 70);
             if (result.IsSuccess) {
                 if (null == crnProtocol) {
                     crnProtocol = new CrnProtocol();
                 }
+                crnProtocol.setCrnNo(slave.getId());
                 crnProtocol.setMode(melsecMcNet.getByteTransform().TransInt16(result.Content, 0));
                 crnProtocol.setTaskNo(melsecMcNet.getByteTransform().TransInt16(result.Content, 2));
                 crnProtocol.setStatus(melsecMcNet.getByteTransform().TransInt16(result.Content, 4));
@@ -183,6 +198,7 @@
                         }
                     }
                 }
+
 
                 // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                 BasCrnpService basCrnpService = SpringUtils.getBean(BasCrnpService.class);
@@ -272,6 +288,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