From a39dd3c3e7a4e338a6a286ee3692456fd8f602a6 Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@163.com>
Date: 星期一, 28 十二月 2020 18:46:03 +0800
Subject: [PATCH] ##

---
 src/main/java/com/zy/core/thread/MelsecDevpThread.java |   52 ++++++++++++++++++++++++++++------------------------
 1 files changed, 28 insertions(+), 24 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/MelsecDevpThread.java b/src/main/java/com/zy/core/thread/MelsecDevpThread.java
index e2c5b38..382c5b7 100644
--- a/src/main/java/com/zy/core/thread/MelsecDevpThread.java
+++ b/src/main/java/com/zy/core/thread/MelsecDevpThread.java
@@ -8,6 +8,7 @@
 import com.core.common.SpringUtils;
 import com.zy.asrs.entity.BasDevp;
 import com.zy.asrs.service.BasDevpService;
+import com.zy.asrs.utils.Utils;
 import com.zy.core.DevpThread;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
@@ -103,18 +104,20 @@
     private void read() throws InterruptedException {
         OperateResultExOne<byte[]> result = melsecMcNet.Read("D101", (short) 30);
         if (result.IsSuccess) {
-            for (int i = 1; i <= 7; i++) {
-                StaProtocol staProtocol = station.get(i);
+            // 绔欑偣鏁版嵁
+            for (int i = 0; i < staNos.size(); i++) {
+                Integer siteId = staNos.get(i); // 绔欑偣缂栧彿
+                StaProtocol staProtocol = station.get(siteId);
                 if (null == staProtocol) {
                     staProtocol = new StaProtocol();
-                    staProtocol.setSiteId(i);
-                    station.put(i, staProtocol);
+                    staProtocol.setSiteId(siteId);
+                    station.put(siteId, staProtocol);
                 }
                 staProtocol.setWorkNo(melsecMcNet.getByteTransform().TransInt16(result.Content, (i-1)*2));     // 宸ヤ綔鍙�
                 staProtocol.setStaNo(melsecMcNet.getByteTransform().TransInt16(result.Content, (i-1)*2+40));   // 鐩爣绔�
             }
         }
-        Thread.sleep(100);
+        Thread.sleep(5000);
         OperateResultExOne<boolean[]> result1 = melsecMcNet.ReadBool("M800", (short) 64);
         if (result1.IsSuccess) {
             for (int i = 1; i <= 7; i++) {
@@ -146,8 +149,8 @@
             // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
             try {
                 List<BasDevp> basDevps = new ArrayList<>();
-                for (int i = 1; i <= 7; i++) {
-                    StaProtocol staProtocol = station.get(i);
+                for (Integer siteId : staNos) {
+                    StaProtocol staProtocol = station.get(siteId);
                     basDevps.add(staProtocol.toSqlModel());
                 }
                 BasDevpService basDevpService = SpringUtils.getBean(BasDevpService.class);
@@ -172,9 +175,9 @@
         if (null == staProtocol) {
             return;
         }
-        OperateResult write = melsecMcNet.Write("D10" + staProtocol.getSiteId(), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
+        OperateResult write = melsecMcNet.Write("D1" + Utils.zerofill(String.valueOf(staNos.indexOf(staProtocol.getSiteId())+1), 2), staProtocol.getWorkNo());    // 宸ヤ綔鍙�
         Thread.sleep(400);
-        OperateResult write1 = melsecMcNet.Write("D12" + staProtocol.getSiteId(), staProtocol.getStaNo());    // 鐩爣绔�
+        OperateResult write1 = melsecMcNet.Write("D1" + Utils.zerofill(String.valueOf(staNos.indexOf(staProtocol.getSiteId())+21), 2), staProtocol.getStaNo());    // 鐩爣绔�
         if (!write.IsSuccess || !write1.IsSuccess) {
             staProtocol = station.get(staProtocol.getSiteId());
             if (staProtocol.getWorkNo() == 0 && staProtocol.getStaNo() ==0) {
@@ -222,23 +225,24 @@
 
     public static void main(String[] args) throws Exception {
         DevpSlave slave = new DevpSlave();
-        slave.setIp("192.168.2.125");
+        slave.setIp("192.168.6.21");
+        slave.setPort(6000);
         MelsecDevpThread devpThread = new MelsecDevpThread(slave);
         devpThread.connect();
-        devpThread.read();
-        // 鍐�
-        StaProtocol staProtocol = devpThread.getStation().get(1);
-        staProtocol.setWorkNo((short) 232);
-        staProtocol.setStaNo((short) 6);
-        staProtocol.setAutoing(true);
-        staProtocol.setEmptyMk(true);
-        staProtocol.setInEnable(true);
-        devpThread.write(staProtocol);
-        System.out.println("----------------------------------------");
-        // 璇�
-        devpThread.read();
-        System.out.println(JSON.toJSONString(devpThread.station));
-
+        for (int i = 1; i < 999; i ++) {
+            OperateResultExOne<Short> d = devpThread.getMelsecMcNet().ReadInt16("D" + i);
+            Thread.sleep(200);
+            if (d.IsSuccess) {
+                System.out.println(DateUtils.convert(new Date()) + d.Content);
+            } else {
+                System.out.println("璇诲彇澶辫触");
+            }
+        }
+        devpThread.getMelsecMcNet().ConnectClose();
     }
 
+
+
+
+
 }

--
Gitblit v1.9.1