From 64417d272e7a2a332ebbe51bb3ceec1f52274a07 Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期二, 25 七月 2023 10:21:41 +0800
Subject: [PATCH] 捡料

---
 src/main/java/com/zy/core/thread/SteThread.java |  105 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 103 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java
index 073e990..72dbc49 100644
--- a/src/main/java/com/zy/core/thread/SteThread.java
+++ b/src/main/java/com/zy/core/thread/SteThread.java
@@ -11,12 +11,16 @@
 import com.core.exception.CoolException;
 import com.zy.asrs.entity.BasSte;
 import com.zy.asrs.entity.BasSteOpt;
+import com.zy.asrs.entity.WrkCharge;
 import com.zy.asrs.service.BasSteOptService;
 import com.zy.asrs.service.BasSteService;
+import com.zy.common.model.enums.WrkChargeType;
+import com.zy.core.DevpThread;
 import com.zy.core.News;
 import com.zy.core.ThreadHandler;
 import com.zy.core.cache.MessageQueue;
 import com.zy.core.cache.OutputQueue;
+import com.zy.core.cache.SlaveConnection;
 import com.zy.core.enums.SlaveType;
 import com.zy.core.enums.SteStatusType;
 import com.zy.core.model.SteSlave;
@@ -175,9 +179,77 @@
                 steProtocol.setCrnStopRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 38));
                 steProtocol.setCrnStopFork(siemensS7Net.getByteTransform().TransInt16(result.Content, 40));
                 steProtocol.setCrnAllowRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 42));
-                steProtocol.setChargeStatus(siemensS7Net.getByteTransform().TransInt16(result.Content, 44));
+//                steProtocol.setCrnAllowRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 44));
+                SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+                if (!devpThread.charge0 || devpThread.charge1){
+                    steProtocol.setChargeStatus((short)1);
+                }else {
+                    steProtocol.setChargeStatus((short)0);
+                }
 
                 OutputQueue.STE.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId()));
+
+                //璇诲彇绌挎杞﹁澶囦俊鎭紝鎻愪緵鏌ヨ
+                OperateResultExOne<byte[]> result1 = siemensS7Net.Read("V732", (short) 16);
+                if (result1.IsSuccess) {
+                    boolean[] status = siemensS7Net.getByteTransform().TransBool(result1.Content, 0, 15);
+                    steProtocol.setLiftErr(status[0]);
+                    steProtocol.setInFetchErr(status[2]);
+                    steProtocol.setOutFetchErr(status[3]);
+                    steProtocol.setAntiErr(status[4]);
+                    steProtocol.setLiftSwitchErr(status[5]);
+                    steProtocol.setTrackErr(status[6]);
+                    steProtocol.setTimeoutErr(status[7]);
+                    steProtocol.setConnectErr(status[8]);
+                    steProtocol.setEmergencyErr(status[9]);
+                    steProtocol.setTaskTypeErr(status[10]);
+                    steProtocol.setTaskNoErr(status[11]);
+                    steProtocol.setNewTaskErr(status[12]);
+                    steProtocol.setErrTaskErr(status[13]);
+                    steProtocol.setStopErr(status[14]);
+                    steProtocol.setOfflineTaskErr(status[15]);
+                    steProtocol.setStartTaskErr(status[16]);
+                    steProtocol.setVoltageTaskErr(status[17]);
+
+                    steProtocol.setDevpErr(status[63]);
+
+                    steProtocol.setOnline(status[64]);
+                    steProtocol.setNotOnTrack(status[65]);
+                    steProtocol.setLowVoltage(status[66]);
+                    steProtocol.setElectricityLoss(status[67]);
+                    steProtocol.setForcedTravel(status[68]);
+                    steProtocol.setDemoMode(status[69]);
+                    steProtocol.setBrushConnect(status[70]);
+//                    if (status[70]){
+//                        steProtocol.setChargeStatus((short)1);
+//                    }
+                    steProtocol.setTaskManualForbid(status[71]);
+                    steProtocol.setOnlineManualForbid(status[72]);
+                    steProtocol.setDevpEmergency(status[73]);
+                    steProtocol.setTaskInterrupt(status[74]);
+                    steProtocol.setTaskClear(status[75]);
+                    steProtocol.setTaskConfirmTimeout(status[76]);
+                    steProtocol.setTaskWithCharge(status[77]);
+
+                    steProtocol.setPakInTask(status[96]);
+                    steProtocol.setPakOutTask(status[97]);
+                    steProtocol.setPakMoveTask(status[98]);
+                    steProtocol.setGoHpTask(status[99]);
+                    steProtocol.setGoOHpTask(status[100]);
+                    steProtocol.setGoHpAvoid(status[101]);
+                    steProtocol.setGoOHpAvoid(status[102]);
+                    steProtocol.setPakInEmpty(status[104]);
+                    steProtocol.setPakInFinish(status[105]);
+                    steProtocol.setPakOutEmpty(status[106]);
+                    steProtocol.setPakOutFinish(status[107]);
+                    steProtocol.setGoHpAvoidFinish(status[108]);
+                    steProtocol.setGoOHpAvoidFinish(status[109]);
+                    steProtocol.setGoHpAvoidErr(status[110]);
+                    steProtocol.setGoOHpAvoidErr(status[111]);
+
+                    steProtocol.setAutoMode(status[112]);
+                    steProtocol.setVoltageLow(status[113]);
+                }
 
                 // 澶嶄綅淇″彿
                 if (steProtocol.getWaiting()) {
@@ -189,7 +261,6 @@
                         }
                     }
                 }
-
 
                 // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴�
                 BasSteService service = SpringUtils.getBean(BasSteService.class);
@@ -228,10 +299,40 @@
             News.error("绌挎杞﹀啓鍏ュ懡浠や负绌�");
             return false;
         }
+        //鍒ゆ柇灏忚溅鏄惁鍦ㄥ厖鐢�
+        SiemensDevpThread devpThread = (SiemensDevpThread) SlaveConnection.get(SlaveType.Devp, 1);
+        if (devpThread.charge1){
+            // led 寮傚父鏄剧ず
+            LedThread ledThread1 = (LedThread) SlaveConnection.get(SlaveType.Led, 1);
+            LedThread ledThread2 = (LedThread) SlaveConnection.get(SlaveType.Led, 1);
+            LedThread ledThread3 = (LedThread) SlaveConnection.get(SlaveType.Led, 1);
+            if (ledThread1 != null && ledThread2 != null && ledThread3 != null) {
+                MessageQueue.offer(SlaveType.Led, 1, new Task(3, "绌挎杞︽鍦ㄥ厖鐢�"));
+                MessageQueue.offer(SlaveType.Led, 2, new Task(3, "绌挎杞︽鍦ㄥ厖鐢�"));
+                MessageQueue.offer(SlaveType.Led, 3, new Task(3, "绌挎杞︽鍦ㄥ厖鐢�"));
+            }
+            News.error("绌挎杞︽鍦ㄥ厖鐢�");
+            return false;
+        }else if (!devpThread.charge0){
+            // led 寮傚父鏄剧ず
+            LedThread ledThread1 = (LedThread) SlaveConnection.get(SlaveType.Led, 1);
+            LedThread ledThread2 = (LedThread) SlaveConnection.get(SlaveType.Led, 1);
+            LedThread ledThread3 = (LedThread) SlaveConnection.get(SlaveType.Led, 1);
+            if (ledThread1 != null && ledThread2 != null && ledThread3 != null) {
+                MessageQueue.offer(SlaveType.Led, 1, new Task(3, "绌挎杞﹀彲鑳藉湪绂荤嚎鍏呯數锛屾鏌ョ數鎺ф煖绌挎杞︽槸鍚﹀厖鐢垫々鍦ㄧ嚎"));
+                MessageQueue.offer(SlaveType.Led, 2, new Task(3, "绌挎杞﹀彲鑳藉湪绂荤嚎鍏呯數锛屾鏌ョ數鎺ф煖绌挎杞︽槸鍚﹀厖鐢垫々鍦ㄧ嚎"));
+                MessageQueue.offer(SlaveType.Led, 3, new Task(3, "绌挎杞﹀彲鑳藉湪绂荤嚎鍏呯數锛屾鏌ョ數鎺ф煖绌挎杞︽槸鍚﹀厖鐢垫々鍦ㄧ嚎"));
+            }
+            News.error("绌挎杞﹀彲鑳藉湪绂荤嚎鍏呯數锛屾鏌ョ數鎺ф煖绌挎杞︽槸鍚﹀厖鐢垫々鍦ㄧ嚎");
+            return false;
+        }
         command.setSteNo(slave.getId());
         OperateResult result = null;
         // 寮�濮嬩换鍔�
         if (!command.getComplete()) {
+            //缁勭粐浠诲姟鍓嶏紝鍏堟竻绌哄啓浠诲姟纭浣嶏紝浠ュ強浠诲姟瀹屾垚纭浣�
+            siemensS7Net.Write("V2000.0", false);
+            siemensS7Net.Write("V2000.1", false);
             // 1.浠诲姟鍙�
             OperateResult result0 = siemensS7Net.Write("V998", command.getTaskNo().shortValue());
             try {

--
Gitblit v1.9.1