From a3c8ecbc8314964dd979d0ef7d8e7d52ba1a417a Mon Sep 17 00:00:00 2001
From: luxiaotao1123 <t1341870251@63.com>
Date: 星期二, 15 三月 2022 16:36:26 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/core/thread/SteThread.java |  146 +++++++++++++++++++++++++++---------------------
 1 files changed, 81 insertions(+), 65 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index 2d45b85..476a7f6 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -9,6 +9,7 @@
 import com.core.common.SpringUtils;
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasSte;
+import com.zy.asrs.entity.BasSteOpt;
 import com.zy.asrs.service.BasSteOptService;
 import com.zy.asrs.service.BasSteService;
 import com.zy.core.ThreadHandler;
@@ -72,7 +73,7 @@
                         break;
                 }
                 // 蹇冭烦
-                heartbeat();
+//                heartbeat();
                 Thread.sleep(500);
             } catch (Exception e) {
                 e.printStackTrace();
@@ -133,44 +134,44 @@
      */
     private void readStatus(){
         try {
-            OperateResultExOne<byte[]> result = siemensS7Net.Read("V20", (short) 70);
+            OperateResultExOne<byte[]> result = siemensS7Net.Read("DB4", (short) 70);
             if (result.IsSuccess) {
                 if (null == steProtocol) {
                     steProtocol = new SteProtocol();
                 }
-//                steProtocol.setSteNo();
-//                steProtocol.setMode();
-//                steProtocol.setStatus();
+                steProtocol.setSteNo(siemensS7Net.getByteTransform().TransInt16(result.Content, 0));
+                steProtocol.setMode(siemensS7Net.getByteTransform().TransInt16(result.Content, 2));
+                steProtocol.setStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 4));
 //                steProtocol.setExecute();
 //                steProtocol.setWaiting();
-//                steProtocol.setAlarm();
-//                steProtocol.setAlarm0();
-//                steProtocol.setCharge();
+                steProtocol.setAlarm(siemensS7Net.getByteTransform().TransInt32(result.Content, 6));
+                steProtocol.setAlarm0(siemensS7Net.getByteTransform().TransInt32(result.Content, 10));
+                steProtocol.setCharge(siemensS7Net.getByteTransform().TransInt16(result.Content, 14));
 //                steProtocol.setFullCharge();
 //                steProtocol.setLowCharge();
-//                steProtocol.setFeed();
-//                steProtocol.setLoca();
+                steProtocol.setFeed(siemensS7Net.getByteTransform().TransInt16(result.Content, 16));
+                steProtocol.setLoca(siemensS7Net.getByteTransform().TransInt16(result.Content, 18));
 //                steProtocol.setCloser();
 //                steProtocol.setSpeed();
-//                steProtocol.setPos();
-//                steProtocol.setLoad();
-//                steProtocol.setTrack();
-//                steProtocol.setTaskNo();
-//                steProtocol.setTaskType();
-//                steProtocol.setRow();
-//                steProtocol.setBay();
-//                steProtocol.setLev();
-//
-//                steProtocol.setHisTaskNo();
-//                steProtocol.setHisTaskStatus();
-//                steProtocol.setCheckQty();
-//                steProtocol.setReady();
-//                steProtocol.setChargeNo();
-//
-//                steProtocol.setHeart();
-//                steProtocol.setCrnStopRun();
-//                steProtocol.setCrnStopFork();
-//                steProtocol.setCrnAllowRun();
+                steProtocol.setPos(siemensS7Net.getByteTransform().TransInt16(result.Content, 28));
+                steProtocol.setLoad(siemensS7Net.getByteTransform().TransInt16(result.Content, 30));
+                steProtocol.setTrack(siemensS7Net.getByteTransform().TransInt16(result.Content, 32));
+                steProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt32(result.Content, 38));
+                steProtocol.setTaskType(siemensS7Net.getByteTransform().TransInt16(result.Content, 42));
+                steProtocol.setRow(siemensS7Net.getByteTransform().TransInt16(result.Content, 44));
+                steProtocol.setBay(siemensS7Net.getByteTransform().TransInt16(result.Content, 46));
+                steProtocol.setLev(siemensS7Net.getByteTransform().TransInt16(result.Content, 48));
+
+                steProtocol.setHisTaskNo(siemensS7Net.getByteTransform().TransInt32(result.Content, 58));
+                steProtocol.setHisTaskStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 62));
+                steProtocol.setCheckQty(siemensS7Net.getByteTransform().TransInt16(result.Content, 64));
+                steProtocol.setReady(siemensS7Net.getByteTransform().TransInt16(result.Content, 66));
+                steProtocol.setChargeNo(siemensS7Net.getByteTransform().TransInt16(result.Content, 68));
+
+                steProtocol.setHeart(siemensS7Net.getByteTransform().TransInt16(result.Content, 72));
+                steProtocol.setCrnStopRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 74));
+                steProtocol.setCrnStopFork(siemensS7Net.getByteTransform().TransInt16(result.Content, 76));
+                steProtocol.setCrnAllowRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 78));
 
                 OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
 
@@ -221,23 +222,35 @@
         OperateResult result = null;
         // 寮�濮嬩换鍔�
         if (!command.getComplete()) {
-            OperateResult result0 = siemensS7Net.Write("D0", command.getTaskNo());
-            short[] array = new short[10];
-            array[0] = command.getTaskMode();
-//            array[1] = command.getTaskNo();
-//            array[2] = command.getTaskMode();
-//            array[3] = command.getSourcePosX();
-//        array[4] = command.getSourcePosY();
-//        array[5] = command.getSourcePosZ();
-//        array[6] = command.getDestinationPosX();
-//        array[7] = command.getDestinationPosY();
-//        array[8] = command.getDestinationPosZ();
-//        array[9] = command.getCommand();
-            OperateResult result1 = siemensS7Net.Write("D0", array);
-            // 纭寮�濮嬩换鍔�
-            if (result0.IsSuccess) {
-                result = siemensS7Net.Write("D0", true);
+
+            // 浣滀笟
+            if (command.getTaskMode() != 0) {
+                // 1.浠诲姟鍙�
+                OperateResult result0 = siemensS7Net.Write("DB3.0", command.getTaskNo());
+                // 2.浣滀笟
+                OperateResult result1 = siemensS7Net.Write("DB3.4", command.getTaskMode());
+                // 3.纭寮�濮嬩换鍔�
+                if (result0.IsSuccess && result1.IsSuccess) {
+                    result = siemensS7Net.Write("D0", true);
+                }
+
+            // 鍏朵粬鎸囦护
+            } else {
+                // 鎺у埗妯″紡
+                if (command.getControlMode() != null) {
+                    result =  siemensS7Net.Write("DB3.20", command.getControlMode());
+                // 澶嶄綅淇″彿
+                } else if (command.getReset() != null) {
+                    result =  siemensS7Net.Write("DB3.26", command.getReset());
+                // 鍒犻櫎鎸囦护
+                } else if (command.getDelete() != null) {
+                    result =  siemensS7Net.Write("DB3.28", command.getDelete());
+                // 鏃犳晥鎸囦护
+                } else {
+                    return false;
+                }
             }
+
         // 浠诲姟瀹屾垚
         } else {
             result = siemensS7Net.Write("D0", true);
@@ -245,25 +258,29 @@
 
         try {
             // 鏃ュ織璁板綍
-            BasSteOptService bean = SpringUtils.getBean(BasSteOptService.class);
-//            BasSteOpt basSteOpt = new BasSteOpt(
-//                    command.getTaskNo(),    // 浠诲姟鍙�
-//                    command.getSteNo(),    // 绌挎杞闈炵┖]
-//                    new Date(),    // 涓嬪彂鏃堕棿
-//                    command.getTaskModeType().desc,    // 妯″紡
-//                    command.getSourcePosX().intValue(),    // 婧愭帓
-//                    command.getSourcePosY().intValue(),    // 婧愬垪
-//                    command.getSourcePosZ().intValue(),    // 婧愬眰
-//                    null,    // 婧愮珯
-//                    command.getDestinationPosX().intValue(),    // 鐩爣鎺�
-//                    command.getDestinationPosY().intValue(),    // 鐩爣鍒�
-//                    command.getDestinationPosZ().intValue(),    // 鐩爣灞�
-//                    null,    // 鐩爣绔�
-//                    null,    // 鍝嶅簲缁撴灉
-//                    null,    // 淇敼鏃堕棿
-//                    null    // 淇敼浜哄憳
-//            );
-//            bean.insert(basSteOpt);
+            if (!command.getComplete() && command.getTaskMode() != 0) {
+                BasSteOptService bean = SpringUtils.getBean(BasSteOptService.class);
+                BasSteOpt basSteOpt = new BasSteOpt(
+                        command.getTaskNo(),    // 浠诲姟鍙�
+                        command.getSteNo(),    // 绌挎杞�
+                        new Date(),    // 涓嬪彂鏃堕棿
+                        command.getTaskModeType().desc,    // 浣滀笟
+                        null,    // 婧愭帓
+                        null,    // 婧愬垪
+                        null,    // 婧愬眰
+                        null,    // 婧愮珯
+                        null,    // 鐩爣鎺�
+                        null,    // 鐩爣鍒�
+                        null,    // 鐩爣灞�
+                        null,    // 鐩爣绔�
+                        null,    // 鍝嶅簲缁撴灉
+                        null,    // 淇敼鏃堕棿
+                        null,    // 淇敼浜哄憳
+                        null    // 澶囨敞
+                );
+                bean.insert(basSteOpt);
+            }
+
         } catch (Exception ignore) {}
 
         if (result != null && result.IsSuccess) {
@@ -273,7 +290,6 @@
                 this.lastBay = command.getBay().intValue();
                 this.lastLev = command.getLev().intValue();
             }
-
 
             log.info("绌挎杞﹀懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command));
             OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command)));

--
Gitblit v1.9.1