From e1783e196a4ada918268b9f81bfb3a19641e0626 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期六, 10 六月 2023 19:24:09 +0800 Subject: [PATCH] 提升机状态读取、提升机高度设定、提升机操作方案 --- src/main/java/com/zy/core/thread/LiftThread.java | 161 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 110 insertions(+), 51 deletions(-) diff --git a/src/main/java/com/zy/core/thread/LiftThread.java b/src/main/java/com/zy/core/thread/LiftThread.java index 0b39f99..d5d2986 100644 --- a/src/main/java/com/zy/core/thread/LiftThread.java +++ b/src/main/java/com/zy/core/thread/LiftThread.java @@ -5,18 +5,13 @@ import HslCommunication.Core.Types.OperateResultExOne; import HslCommunication.ModBus.ModbusTcpNet; import com.alibaba.fastjson.JSON; -import com.core.common.Cools; import com.core.common.DateUtils; import com.core.common.SpringUtils; import com.core.exception.CoolException; import com.zy.asrs.entity.BasLift; import com.zy.asrs.entity.BasLiftOpt; -import com.zy.asrs.entity.BasShuttle; -import com.zy.asrs.entity.BasShuttleOpt; import com.zy.asrs.service.BasLiftOptService; import com.zy.asrs.service.BasLiftService; -import com.zy.asrs.service.BasShuttleOptService; -import com.zy.asrs.service.BasShuttleService; import com.zy.common.utils.CommonUtils; import com.zy.common.utils.RedisUtil; import com.zy.core.News; @@ -114,7 +109,7 @@ private void readStatus() { try { - OperateResultExOne<byte[]> result = modbusTcpNet.Read("29", (short) 50); + OperateResultExOne<byte[]> result = modbusTcpNet.Read("41117", (short) 50); if (result.IsSuccess) { if (null == liftProtocol) { liftProtocol = new LiftProtocol(); @@ -128,46 +123,49 @@ liftProtocol.setLiftLock(CommonUtils.shortToBoolean(modbusTcpNet.getByteTransform().TransInt16(content, 0))); //浣嶇疆鍒拌揪鍙嶉 liftProtocol.setPositionArrivalFeedback(modbusTcpNet.getByteTransform().TransInt16(content,2)); - //鍑嗗灏辩华 - liftProtocol.setReady(CommonUtils.shortToBoolean(modbusTcpNet.getByteTransform().TransInt16(content,4))); - //杩愯涓� - liftProtocol.setRunning(CommonUtils.shortToBoolean(modbusTcpNet.getByteTransform().TransInt16(content,6))); - //鑱旀満/鍗曟満 - liftProtocol.setMode(CommonUtils.shortToBoolean(modbusTcpNet.getByteTransform().TransInt16(content,8))); - //浠ヤ笅鍙傛暟骞舵湭杩涜璋冩暣(闇�瑕佸悗缁拡瀵瑰疄鏈鸿繘琛岃幏鍙栧拰璋冭瘯) + byte by = modbusTcpNet.getByteTransform().TransByte(content, 5); + int[] datas = CommonUtils.byteToBits(by); + //鍑嗗灏辩华 + liftProtocol.setReady(CommonUtils.intToBoolean(datas[0])); + //杩愯涓� + liftProtocol.setRunning(CommonUtils.intToBoolean(datas[1])); + //鑱旀満/鍗曟満 + liftProtocol.setMode(CommonUtils.intToBoolean(datas[2])); //杈撻�佺嚎鍓嶇鍏夌數鏈夎揣 - liftProtocol.setLineFrontHasStock(modbusTcpNet.getByteTransform().TransBool(content,10)); + liftProtocol.setLineFrontHasStock(CommonUtils.intToBoolean(datas[3])); //杈撻�佺嚎姝h浆鍙嶉 - liftProtocol.setForwardRotationFeedback(modbusTcpNet.getByteTransform().TransBool(content,12)); + liftProtocol.setForwardRotationFeedback(CommonUtils.intToBoolean(datas[4])); //杈撻�佺嚎鍙嶈浆鍙嶉 - liftProtocol.setReverseFeedback(modbusTcpNet.getByteTransform().TransBool(content,14)); + liftProtocol.setReverseFeedback(CommonUtils.intToBoolean(datas[5])); //杈撻�佺嚎鐢垫満杩囪浇 - liftProtocol.setMotorOverload(modbusTcpNet.getByteTransform().TransBool(content,16)); + liftProtocol.setMotorOverload(CommonUtils.intToBoolean(datas[6])); //杈撻�佺嚎鏈鍏夌數鏈夎揣 - liftProtocol.setLineEndHasStock(modbusTcpNet.getByteTransform().TransBool(content,18)); + liftProtocol.setLineEndHasStock(CommonUtils.intToBoolean(datas[7])); //杩涜緭閫佺嚎鍗℃墭鐩樻姤璀� - liftProtocol.setInConveyLineCardTrayAlarm(modbusTcpNet.getByteTransform().TransBool(content,20)); + liftProtocol.setInConveyLineCardTrayAlarm(CommonUtils.intToBoolean(datas[8])); //鍑鸿緭閫佺嚎鍗℃墭鐩樻姤璀� - liftProtocol.setOutConveyLineCardTrayAlarm(modbusTcpNet.getByteTransform().TransBool(content,22)); + liftProtocol.setOutConveyLineCardTrayAlarm(CommonUtils.intToBoolean(datas[9])); //骞冲彴浣嶇疆鍋忓樊鎶ヨ - liftProtocol.setPlatPositionDeviationAlarm(modbusTcpNet.getByteTransform().TransBool(content,24)); + liftProtocol.setPlatPositionDeviationAlarm(CommonUtils.intToBoolean(datas[10])); //骞冲彴鎵煩鍋忓樊鎶ヨ - liftProtocol.setPlatTorqueDeviationAlarm(modbusTcpNet.getByteTransform().TransBool(content,26)); + liftProtocol.setPlatTorqueDeviationAlarm(CommonUtils.intToBoolean(datas[11])); //骞冲彴鍥涘悜杞︽娴� - liftProtocol.setPlatShuttleCheck(modbusTcpNet.getByteTransform().TransBool(content,28)); + liftProtocol.setPlatShuttleCheck(CommonUtils.intToBoolean(datas[12])); + + //鏈氨缁姸鎬� - liftProtocol.setNotReady(modbusTcpNet.getByteTransform().TransInt16(content,30)); + liftProtocol.setNotReady(modbusTcpNet.getByteTransform().TransInt16(content,6)); //浼烘湇1閿欒 - liftProtocol.setServoError1(modbusTcpNet.getByteTransform().TransInt16(content,32)); + liftProtocol.setServoError1(modbusTcpNet.getByteTransform().TransInt16(content,8)); //浼烘湇2閿欒 - liftProtocol.setServoError2(modbusTcpNet.getByteTransform().TransInt16(content,34)); + liftProtocol.setServoError2(modbusTcpNet.getByteTransform().TransInt16(content,10)); //浼烘湇3閿欒 - liftProtocol.setServoError3(modbusTcpNet.getByteTransform().TransInt16(content,36)); + liftProtocol.setServoError3(modbusTcpNet.getByteTransform().TransInt16(content,12)); //浼烘湇4閿欒 - liftProtocol.setServoError4(modbusTcpNet.getByteTransform().TransInt16(content,38)); + liftProtocol.setServoError4(modbusTcpNet.getByteTransform().TransInt16(content,14)); //鎻愬崌鏈哄疄闄呴�熷害鍙嶉 - liftProtocol.setLiftActualSpeed(modbusTcpNet.getByteTransform().TransInt16(content,40)); + liftProtocol.setLiftActualSpeed(modbusTcpNet.getByteTransform().TransInt16(content,16)); ///璇诲彇鎻愬崌鏈虹姸鎬�-end @@ -266,12 +264,16 @@ //鍥涘眰楂樺害璁惧畾 array[5] = command.getHeight4(); } + if (command.getHeight5() != null) { + //鍥涘眰楂樺害璁惧畾 + array[6] = command.getHeight5(); + } if (command.getLiftLockShortValue() != null) { //鎻愬崌鏈洪攣瀹� array[29] = command.getLiftLockShortValue(); } - OperateResult result = modbusTcpNet.Write("0", array);; + OperateResult result = modbusTcpNet.Write("41088", array);; if (result != null && result.IsSuccess) { News.info("鎻愬崌鏈哄懡浠や笅鍙慬id:{}] >>>>> {}", slave.getId(), JSON.toJSON(command)); OutputQueue.LIFT.offer(MessageFormat.format("銆恵0}銆慬id:{1}] >>>>> 鍛戒护涓嬪彂锛� {2}", DateUtils.convert(new Date()), slave.getId(), JSON.toJSON(command))); @@ -296,19 +298,25 @@ } liftProtocol.setTaskNo(assignCommand.getTaskNo()); switch (assignCommand.getTaskMode()) { - case 1://涓婂崌涓�灞� - command = getLiftUpDownCommand(++lev);//鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠� + case 1://绉诲姩鎻愬崌鏈� + command = getLiftUpDownCommand(assignCommand.getLev());//鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠� break; - case 2://涓嬮檷涓�灞� - command = getLiftUpDownCommand(--lev);//鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠� + case 3://鏃犺揣姝h浆 + command = getLiftTurnCommand(3);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠� break; - case 3://鏈夎揣姝h浆 + case 4://鏃犺揣鍙嶈浆 + command = getLiftTurnCommand(4);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠� + break; + case 5://鏈夎揣姝h浆 command = getLiftTurnCommand(1);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠� break; - case 4://鏈夎揣鍙嶈浆 + case 6://鏈夎揣鍙嶈浆 command = getLiftTurnCommand(2);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠� break; - case 5://澶嶄綅 + case 7://閾炬潯鍋滄 + command = getLiftTurnCommand(5);//鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠� + break; + case 0://澶嶄綅 command = getResetCommand();//鑾峰彇澶嶄綅鍛戒护 break; default: @@ -402,12 +410,6 @@ News.info("鎻愬崌鏈烘墜鍔ㄤ换鍔℃墽琛屽畬鎴愶紝鎻愬崌鏈哄彿={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command)); } - //涓嬪彂涓�鏉℃彁鍗囨満瑙i攣鍛戒护 - LiftCommand unlockCommand = getUnlockCommand(command.getLiftNo()); - if (write(unlockCommand)) { - News.info("鎻愬崌鏈虹姸鎬佸凡瑙i攣锛屾彁鍗囨満鍙�={}锛屼换鍔℃暟鎹�={}", command.getLiftNo(), JSON.toJSON(command)); - } - } } @@ -430,7 +432,7 @@ */ public LiftCommand getResetCommand() { LiftCommand command = new LiftCommand(); - command.setRun((short) 0); + command.setRun((short) 5); command.setLiftLock(false); return command; } @@ -438,10 +440,35 @@ /** * 鑾峰彇鎻愬崌鏈轰笂鍗囦笅闄嶅懡浠� */ - public LiftCommand getLiftUpDownCommand(Short lev) { + public LiftCommand getLiftUpDownCommand(Integer lev) { LiftCommand command = new LiftCommand(); command.setRun((short) 1);//鍗囬檷 - command.setDistPosition(lev); + Short position = 1; + switch (lev) { + case 1: + position = 1; + break; + case 2: + position = 2; + break; + case 3: + position = 4; + break; + case 4: + position = 8; + break; + case 5: + position = 16; + break; + default: + position = 1; + } + command.setDistPosition(position); + command.setSpeed((short) 200); + command.setHeight2((short) 180); + command.setHeight3((short) 1645); + command.setHeight4((short) (2 * 1645)); + command.setHeight5((short) (3 * 1645)); return command; } @@ -454,16 +481,32 @@ command.setLiftNo(liftNo);//鎻愬崌鏈哄彿 command.setTaskNo(taskNo);//浠诲姟鍙� command.setDistPosition(lev);//鐩爣妤煎眰1灞� - command.setLiftLock(true);//閿佸畾鎻愬崌鏈� return command; } /** - * 鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠わ紝direction锛�1=銆嬫湁璐ф杞紝2=銆嬫湁璐у弽杞� + * 鑾峰彇鎻愬崌鏈鸿浆鍔ㄥ懡浠わ紝direction锛�1=銆嬫湁璐ф杞紝2=銆嬫湁璐у弽杞紝3=>鏃犺揣姝h浆锛�4=>鏃犺揣鍙嶈浆 */ public LiftCommand getLiftTurnCommand(Integer direction) { LiftCommand command = new LiftCommand(); - command.setRun(direction == 1 ? (short) 6 : (short) 3); + Short run = 0; + switch (direction) { + case 1: + run = 6;//鏈夎揣姝h浆 + break; + case 2: + run = 3;//鏈夎揣鍙嶈浆 + break; + case 3: + run = 2;//鏃犺揣姝h浆 + break; + case 4: + run = 7;//鏃犺揣鍙嶈浆 + break; + case 5: + run = 4;//閾炬潯鍋滄 + } + command.setRun(run); return command; } @@ -472,10 +515,26 @@ */ public LiftCommand getLiftTurnCommand(Short liftNo, Short taskNo, Integer direction) { LiftCommand command = new LiftCommand(); - command.setRun(direction == 1 ? (short) 6 : (short) 3); + Short run = 0; + switch (direction) { + case 1: + run = 6;//鏈夎揣姝h浆 + break; + case 2: + run = 3;//鏈夎揣鍙嶈浆 + break; + case 3: + run = 2;//鏃犺揣姝h浆 + break; + case 4: + run = 7;//鏃犺揣鍙嶈浆 + break; + case 5: + run = 4;//閾炬潯鍋滄 + } + command.setRun(run); command.setLiftNo(liftNo);//鎻愬崌鏈哄彿 command.setTaskNo(taskNo);//浠诲姟鍙� - command.setLiftLock(true);//閿佸畾鎻愬崌鏈� return command; } -- Gitblit v1.9.1