From 74e0eb7a7e84b5006903e79554c007d9d5fbbcbc Mon Sep 17 00:00:00 2001
From: Junjie <fallin.jie@qq.com>
Date: 星期四, 05 十月 2023 17:04:32 +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