From bb2675bf1d0fa2157a61ad217cebc089c15c4a9c Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@63.com> Date: 星期三, 16 三月 2022 15:16:56 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/SteThread.java | 132 +++++++++++++++++++++---------------------- 1 files changed, 65 insertions(+), 67 deletions(-) diff --git a/src/main/java/com/zy/core/thread/SteThread.java b/src/main/java/com/zy/core/thread/SteThread.java index 344b786..787be85 100644 --- a/src/main/java/com/zy/core/thread/SteThread.java +++ b/src/main/java/com/zy/core/thread/SteThread.java @@ -16,6 +16,7 @@ import com.zy.core.cache.MessageQueue; import com.zy.core.cache.OutputQueue; import com.zy.core.enums.SlaveType; +import com.zy.core.enums.SteStatusType; import com.zy.core.enums.SteTaskModeType; import com.zy.core.model.SteSlave; import com.zy.core.model.Task; @@ -91,23 +92,12 @@ if (null == steProtocol) { steProtocol = new SteProtocol(); } -// steProtocol.setMode((short) -1); -// steProtocol.setTaskNo((short)0); -// steProtocol.setStatus((short)-1); -// steProtocol.setBay((short)0); -// steProtocol.setLevel((short)0); -// steProtocol.setForkPos((short) -1); -// steProtocol.setLiftPos((short) -1); -// steProtocol.setWalkPos((short)0); -// steProtocol.setLoaded((short)0); -// steProtocol.setAlarm((short)0); -// steProtocol.setXSpeed(0F); -// steProtocol.setYSpeed(0F); -// steProtocol.setZSpeed(0F); -// steProtocol.setXDistance(0F); -// steProtocol.setYDistance(0F); -// steProtocol.setXDuration(0F); -// steProtocol.setYDuration(0F); + steProtocol.setSteNo(slave.getId().shortValue()); + steProtocol.setMode((short) 0); + steProtocol.setStatus(SteStatusType.OFF_LINE); + steProtocol.setTaskNo(0); + steProtocol.setExecute(false); + steProtocol.setWaiting(false); } @Override @@ -136,7 +126,7 @@ */ private void readStatus(){ try { - OperateResultExOne<byte[]> result = siemensS7Net.Read("DB4", (short) 70); + OperateResultExOne<byte[]> result = siemensS7Net.Read("V800", (short) 70); if (result.IsSuccess) { if (null == steProtocol) { steProtocol = new SteProtocol(); @@ -144,36 +134,42 @@ 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(); + OperateResultExOne<Boolean> executeRes = siemensS7Net.ReadBool("V2001.0"); + if (executeRes.IsSuccess) { + steProtocol.setExecute(executeRes.Content); + } + OperateResultExOne<Boolean> waitingRes = siemensS7Net.ReadBool("V2001.1"); + if (waitingRes.IsSuccess) { + steProtocol.setWaiting(waitingRes.Content); + } 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.setAlarm0(siemensS7Net.getByteTransform().TransInt32(result.Content, 8)); + steProtocol.setCharge(siemensS7Net.getByteTransform().TransInt16(result.Content, 10)); // steProtocol.setFullCharge(); // steProtocol.setLowCharge(); - steProtocol.setFeed(siemensS7Net.getByteTransform().TransInt16(result.Content, 16)); - steProtocol.setLoca(siemensS7Net.getByteTransform().TransInt16(result.Content, 18)); + steProtocol.setFeed(siemensS7Net.getByteTransform().TransInt16(result.Content, 14)); + steProtocol.setLoca(siemensS7Net.getByteTransform().TransInt16(result.Content, 16)); // steProtocol.setCloser(); // steProtocol.setSpeed(); - 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.setPos(siemensS7Net.getByteTransform().TransInt16(result.Content, 18)); + steProtocol.setLoad(siemensS7Net.getByteTransform().TransInt16(result.Content, 20)); + steProtocol.setTrack(siemensS7Net.getByteTransform().TransInt16(result.Content, 22)); + steProtocol.setTaskNo(siemensS7Net.getByteTransform().TransInt32(result.Content, 24)); + steProtocol.setTaskType(siemensS7Net.getByteTransform().TransInt16(result.Content, 28)); + steProtocol.setRow(siemensS7Net.getByteTransform().TransInt16(result.Content, 30)); + steProtocol.setBay(siemensS7Net.getByteTransform().TransInt16(result.Content, 32)); + steProtocol.setLev(siemensS7Net.getByteTransform().TransInt16(result.Content, 34)); - 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.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, 36)); +// 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)); +// steProtocol.setHeart(siemensS7Net.getByteTransform().TransInt16(result.Content, 72)); + steProtocol.setCrnStopRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 38)); + steProtocol.setCrnStopFork(siemensS7Net.getByteTransform().TransInt16(result.Content, 40)); + steProtocol.setCrnAllowRun(siemensS7Net.getByteTransform().TransInt16(result.Content, 42)); OutputQueue.CRN.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); @@ -228,25 +224,25 @@ // 浣滀笟 if (command.getTaskMode() != 0) { // 1.浠诲姟鍙� - OperateResult result0 = siemensS7Net.Write("DB3.0", command.getTaskNo()); + OperateResult result0 = siemensS7Net.Write("V1000", command.getTaskNo()); // 2.浣滀笟 - OperateResult result1 = siemensS7Net.Write("DB3.4", command.getTaskMode()); + OperateResult result1 = siemensS7Net.Write("V1000", command.getTaskMode()); // todo // 3.纭寮�濮嬩换鍔� if (result0.IsSuccess && result1.IsSuccess) { - result = siemensS7Net.Write("D0", true); + result = siemensS7Net.Write("V2000.0", true); } // 鍏朵粬鎸囦护 } else { // 鎺у埗妯″紡 if (command.getControlMode() != null) { - result = siemensS7Net.Write("DB3.20", command.getControlMode()); + result = siemensS7Net.Write("V1010", command.getControlMode()); // 澶嶄綅淇″彿 } else if (command.getReset() != null) { - result = siemensS7Net.Write("DB3.26", command.getReset()); + result = siemensS7Net.Write("V2000.2", command.getReset()); // 鍒犻櫎鎸囦护 } else if (command.getDelete() != null) { - result = siemensS7Net.Write("DB3.28", command.getDelete()); + result = siemensS7Net.Write("V2000.3", command.getDelete()); // 鏃犳晥鎸囦护 } else { return false; @@ -262,25 +258,27 @@ // 鏃ュ織璁板綍 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); + if (null != bean) { + 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) {} @@ -318,7 +316,7 @@ if (basSte != null) { // 鏇存柊plc鏁版嵁鍧� short[] arr = new short[] {this.lastRow.shortValue(), this.lastBay.shortValue(), this.lastLev.shortValue()}; - OperateResult result = siemensS7Net.Write("D0", arr); + OperateResult result = siemensS7Net.Write("V1002", arr); if (result.IsSuccess) { // 鏇存柊鏁版嵁搴� if (service.updatePos(this.lastRow, this.lastBay, this.lastLev) > 0) { -- Gitblit v1.9.1