From 2344514290d3f9bea98b1ac8dca4f02b924a865d Mon Sep 17 00:00:00 2001 From: 1 <1@123> Date: 星期二, 06 五月 2025 15:12:22 +0800 Subject: [PATCH] # --- src/main/java/com/zy/core/thread/RgvThread.java | 419 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 301 insertions(+), 118 deletions(-) diff --git a/src/main/java/com/zy/core/thread/RgvThread.java b/src/main/java/com/zy/core/thread/RgvThread.java index 620c6e5..5c1f010 100644 --- a/src/main/java/com/zy/core/thread/RgvThread.java +++ b/src/main/java/com/zy/core/thread/RgvThread.java @@ -13,11 +13,9 @@ import com.zy.asrs.service.BasRgvOptService; import com.zy.asrs.service.BasRgvService; import com.zy.asrs.utils.RouteUtils; +import com.zy.asrs.utils.TrackRangeUtils; import com.zy.core.ThreadHandler; -import com.zy.core.cache.MessageQueue; -import com.zy.core.cache.OutputQueue; -import com.zy.core.cache.RgvStatusCache; -import com.zy.core.cache.TaskProtocolCache; +import com.zy.core.cache.*; import com.zy.core.enums.RgvModeType; import com.zy.core.enums.RgvStatusType; import com.zy.core.enums.RgvTaskModeType; @@ -26,9 +24,11 @@ import com.zy.core.model.Task; import com.zy.core.model.command.RgvCommand; import com.zy.core.model.protocol.RgvProtocol; +import com.zy.core.model.protocol.RgvTaskProtocol; import com.zy.core.model.protocol.TaskProtocol; import lombok.Data; import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; import java.text.MessageFormat; import java.util.Date; @@ -45,8 +45,14 @@ private SiemensS7Net siemensNet; private RgvSlave slave; -// private RgvProtocol rgvProtocol; + // private RgvProtocol rgvProtocol; private TaskProtocolCache taskProtocolCache = new TaskProtocolCache(); + // # 杞ㄩ亾鎬婚暱 + private Long trackEntireLength = 100L; + //# 杞ㄩ亾鍩哄噯鐐� + private Long trackBenchmark = 100L; + // # 閬胯璺濈 + private Long avoidDistance = 100L; /** * 宸ヤ綅1澶嶄綅淇″彿 @@ -65,21 +71,23 @@ @SuppressWarnings("InfiniteLoopStatement") public void run() { boolean connect = this.connect(); - if (connect){ + if (connect) { // 鍚姩璇绘暟鎹嚎绋� new Thread(this::readStatusRgv).start(); // 鍚姩浠诲姟涓嬪彂绾跨▼ - new Thread(this::taskTakeIssued).start(); + new Thread(this::taskIssued).start(); - new Thread(this::taskPutIssued).start(); - + // 鍚姩婕父绾跨▼ new Thread(this::taskWalkIssued).start(); + + // 鍚姩浠诲姟瀹屾垚绾跨▼ +// new Thread(this::taskComplete).start(); } } - private void readStatusRgv(){ + private void readStatusRgv() { while (true) { try { Thread.sleep(100); @@ -87,7 +95,7 @@ readStatus(); } catch (Exception e) { - log.error("RGV鏁版嵁璇诲彇绾跨▼寮傚父锛侊紒锛�"+e.getMessage()); + log.error("RGV鏁版嵁璇诲彇绾跨▼寮傚父锛侊紒锛�" + e.getMessage()); initRgv(); // e.printStackTrace(); } @@ -97,90 +105,14 @@ } /** - * 浠诲姟涓嬪彂 + * 瀹屾垚 */ - private void taskTakeIssued() { - while (true) { - try { - // 浼戠湢 1 绉� - Thread.sleep(100); - if (!deviceDetection()){ - continue; - } - RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); - if (rgvProtocol == null) { - initRgv(); - rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); - } - if (rgvProtocol.getAvoid() == 0 || !rgvProtocol.getLoaded().equals((short) 0)) { - continue; - } - List<TaskProtocol> allTakeTaskProtocol = taskProtocolCache.getAllTakeTaskProtocol(); - for(TaskProtocol taskProtocol: allTakeTaskProtocol){ - if (taskProtocol.getTaskStatus() == 1){//鍑嗗涓嬪彂 + private void taskComplete() { - - - - - - - - TaskProtocol issued = new TaskProtocol(taskProtocol); - write(issued); - taskProtocol.setIsRunning(taskProtocol.getIsRunning() +1); - taskProtocolCache.updateTaskProtocol(taskProtocol); - break; - } - } - - - } catch (Exception e) { - log.error("RGV鍙栬揣浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�"+e.getMessage()); -// e.printStackTrace(); - } - } - } - - public boolean deviceDetection(){ - RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); - if (rgvProtocol == null) { - return false; - } - if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) - || !rgvProtocol.getStatusType().equals(RgvStatusType.IDLE)) { - return false; - } - RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); - if (rgvProtocolOther == null) { - return false; - } - if (rgvProtocolOther.statusEnable){ - if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L)) { - return false; - } - } - return true; } /** - * 浠诲姟涓嬪彂 - */ - private void taskPutIssued() { - while (true) { - try { - // 浼戠湢 1 绉� - Thread.sleep(100); - - } catch (Exception e) { - log.error("RGV鏀捐揣浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�"+e.getMessage()); -// e.printStackTrace(); - } - } - } - - /** - * 浠诲姟涓嬪彂 + * 婕父 */ private void taskWalkIssued() { while (true) { @@ -188,12 +120,237 @@ // 浼戠湢 1 绉� Thread.sleep(100); + if (!deviceDetection()) { + continue; + } + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + if (rgvTaskProtocol == null) { + initRgv(); + rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + } + if (rgvTaskProtocol.getAvoid() != 1) { + continue; + } + TaskProtocol issued = new TaskProtocol(); + issued.setTaskNo(32222L); + issued.setTargetPosition(rgvTaskProtocol.getAvoidingTheDestination()); + write(issued); + rgvTaskProtocol.setAvoid(0); + + Thread.sleep(200); + RgvTaskCache.updateRgvStatus(rgvTaskProtocol); } catch (Exception e) { - log.error("RGV琛岃蛋浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�"+e.getMessage()); + log.error("RGV琛岃蛋浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�" + e.getMessage()); // e.printStackTrace(); } } + } + + /** + * 浠诲姟涓嬪彂 + */ + private void taskIssued() { + while (true) { + try { + // 浼戠湢 1 绉� + Thread.sleep(100); + if (!deviceDetection()) { + continue; + } + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + if (rgvProtocol == null || rgvTaskProtocol == null) { + initRgv(); + rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); + rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + } + if (rgvTaskProtocol.getAvoid() != 0) { + continue; + } + + List<TaskProtocol> allTakeTaskProtocol = taskProtocolCache.getTakeOrPutTaskProtocol(rgvProtocol.getLoaded()); + for (TaskProtocol taskProtocol : allTakeTaskProtocol) { + if (taskProtocol.getIsRunning() == 1) {//鍑嗗涓嬪彂 + RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); + //鍙岃溅 + if (rgvOtherStatusEnable()) { + //鍙︿竴鍙拌溅鏄惁鍏佽姝ゅ彴杞︽墽琛� + if (!otherRgvAvoid(taskProtocol.getTargetPosition())) { + continue; + } + } + Thread.sleep(100); + TaskProtocol issued = new TaskProtocol(taskProtocol); + write(issued); + taskProtocol.setIsRunning(taskProtocol.getIsRunning() + 1); + taskProtocolCache.updateTaskProtocol(taskProtocol); + break; + } + } + } catch (Exception e) { + log.error("RGV鍙栬揣浠诲姟涓嬪彂绾跨▼寮傚父锛侊紒锛�" + e.getMessage()); +// e.printStackTrace(); + } + } + } + + public boolean deviceDetection() { + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + + if (rgvProtocol == null || rgvTaskProtocol == null) { + return false; + } + if (!rgvProtocol.getModeType().equals(RgvModeType.AUTO) || rgvProtocol.getRgvPos().equals(0L) || rgvTaskProtocol.getAvoid() == -1 || rgvProtocol.getRgvPosDestination() == 0L + || (!rgvProtocol.getStatusType().equals(RgvStatusType.IDLE) && !rgvProtocol.getStatusType().equals(RgvStatusType.ROAM))) { + return false; + } + RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); + RgvTaskProtocol rgvTaskProtocolOther = RgvTaskCache.getRgvStatus(slave.getOtherId()); + + if (rgvProtocolOther == null) { + return false; + } + if (rgvProtocolOther.statusEnable) { + if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L) || rgvTaskProtocolOther.getAvoid() == -1 || rgvProtocolOther.getRgvPosDestination() == 0L) { + return false; + } + } + return true; + } + + public boolean rgvOtherStatusEnable() { + RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); + if (rgvProtocolOther == null) { + return true; + } + if (rgvProtocolOther.statusEnable) { +// if (!rgvProtocolOther.getModeType().equals(RgvModeType.AUTO) || rgvProtocolOther.getRgvPos().equals(0L)) { + return true; +// } + } + return false; + } + + public boolean otherRgvAvoid(Long targetPosition) { + RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + + RgvProtocol rgvProtocolOther = RgvStatusCache.getRgvStatus(slave.getOtherId()); + RgvTaskProtocol rgvTaskProtocolOther = RgvTaskCache.getRgvStatus(slave.getOtherId()); + Long[][] avoidRange = new TrackRangeUtils().avoidRange(slave, trackEntireLength, trackBenchmark, avoidDistance); + + if (new TrackRangeUtils().IsItSmall(slave)) { + + if (rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE)) { + if ((rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing()) + - (targetPosition + rgvProtocol.getCarBodyKunPeng()) + > avoidDistance) {//鏃犻渶閬胯 + return true; + } else { + long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing(); + if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { + log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯� 鑱旂郴绠$悊鍛橈紒锛侊紒"); + return false; + } + rgvTaskProtocolOther.setAvoid(1); + rgvTaskProtocolOther.setAvoidingTheDestination(avoid); + RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther); + return true; + } + } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.ROAM)) { + if ((rgvProtocolOther.getRgvPosDestination() - rgvProtocolOther.getCarBodyJiaoMing()) + - (targetPosition + rgvProtocol.getCarBodyKunPeng()) + > avoidDistance) {//鏃犻渶閬胯 + return true; + } else { + long avoid = targetPosition + rgvProtocol.getCarBodyKunPeng() + avoidDistance + rgvProtocolOther.getCarBodyJiaoMing(); + if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { + log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯� 鑱旂郴绠$悊鍛橈紒锛侊紒"); + return false; + } + rgvTaskProtocolOther.setAvoid(1); + rgvTaskProtocolOther.setAvoidingTheDestination(avoid); + RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther); + return true; + } + } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.WORKING)) { + if ((rgvProtocolOther.getRgvPosDestination() - rgvProtocolOther.getCarBodyJiaoMing()) + - (targetPosition + rgvProtocol.getCarBodyKunPeng()) + > avoidDistance) {//鏃犻渶閬胯 + return true; + } else { + if (rgvProtocolOther.getRgvPosDestination() >= rgvProtocolOther.getRgvPos()) { + long avoid = rgvProtocolOther.getRgvPos() - rgvProtocolOther.getCarBodyJiaoMing() - avoidDistance - rgvProtocol.getCarBodyKunPeng(); + if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { + log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯� 鑱旂郴绠$悊鍛橈紒锛侊紒"); + return false; + } + rgvTaskProtocol.setAvoid(1); + rgvTaskProtocol.setAvoidingTheDestination(avoid); + RgvTaskCache.updateRgvStatus(rgvTaskProtocol); + return false; + } + return false; + } + } + } else { + if (rgvProtocolOther.getStatusType().equals(RgvStatusType.IDLE)) { + if ((targetPosition - rgvProtocol.getCarBodyJiaoMing()) + - (rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng()) + > avoidDistance) {//鏃犻渶閬胯 + return true; + } else { + long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng(); + if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { + log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯� 鑱旂郴绠$悊鍛橈紒锛侊紒"); + return false; + } + rgvTaskProtocolOther.setAvoid(1); + rgvTaskProtocolOther.setAvoidingTheDestination(avoid); + RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther); + return true; + } + } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.ROAM)) { + if ((targetPosition - rgvProtocol.getCarBodyJiaoMing()) + - (rgvProtocolOther.getRgvPosDestination() + rgvProtocolOther.getCarBodyKunPeng()) + > avoidDistance) {//鏃犻渶閬胯 + return true; + } else { + long avoid = targetPosition - rgvProtocol.getCarBodyJiaoMing() - avoidDistance - rgvProtocolOther.getCarBodyKunPeng(); + if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[1])) { + log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯� 鑱旂郴绠$悊鍛橈紒锛侊紒"); + return false; + } + rgvTaskProtocolOther.setAvoid(1); + rgvTaskProtocolOther.setAvoidingTheDestination(avoid); + RgvTaskCache.updateRgvStatus(rgvTaskProtocolOther); + return true; + } + + } else if (rgvProtocolOther.getStatusType().equals(RgvStatusType.WORKING)) { + if ((targetPosition - rgvProtocol.getCarBodyJiaoMing()) + - (rgvProtocolOther.getRgvPosDestination() + rgvProtocolOther.getCarBodyKunPeng()) + > avoidDistance) {//鏃犻渶閬胯 + return true; + } else { + if (rgvProtocolOther.getRgvPosDestination() <= rgvProtocolOther.getRgvPos()) { + long avoid = rgvProtocolOther.getRgvPos() + rgvProtocolOther.getCarBodyKunPeng() + avoidDistance + rgvProtocol.getCarBodyJiaoMing(); + if (!new TrackRangeUtils().avoidRange(avoid, avoidRange[0])) { + log.error("琛岃蛋瓒呭嚭鑼冨洿锛侊紒锛佷换鍔″紓甯� 鑱旂郴绠$悊鍛橈紒锛侊紒"); + return false; + } + rgvTaskProtocol.setAvoid(1); + rgvTaskProtocol.setAvoidingTheDestination(avoid); + RgvTaskCache.updateRgvStatus(rgvTaskProtocol); + return false; + } + return false; + } + } + } + return false; } /** @@ -206,21 +363,39 @@ rgvProtocol.setRgvNo(slave.getId()); } rgvProtocol.setMode((short) -1); - rgvProtocol.setStatus((short)-1); - rgvProtocol.setWalkPos((short)0); + rgvProtocol.setStatus((short) -1); + rgvProtocol.setWalkPos((short) 0); rgvProtocol.setRgvPos(0L); - rgvProtocol.setAlarm((short)0); + rgvProtocol.setAlarm((short) 0); rgvProtocol.setxSpeed((short) 0); rgvProtocol.setxDistance((short) 0); rgvProtocol.setxDuration((short) 0); - BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class); - BasRgv rgv = basRgvService.selectById(slave.getId()); - if (!Cools.isEmpty(rgv)){ - rgvProtocol.setStatusEnable(rgv.getStatus() == 1); - } else { - rgvProtocol.setStatusEnable(false); + rgvProtocol.setCarBodyJiaoMing(0L); + rgvProtocol.setCarBodyKunPeng(0L); + try { + BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class); + BasRgv rgv = basRgvService.selectById(slave.getId()); + if (!Cools.isEmpty(rgv)) { + rgvProtocol.setStatusEnable(rgv.getStatus() == 1); + } else { + rgvProtocol.setStatusEnable(false); + } + } catch (Exception e) { + log.error("RGV寮傚父锛侊紒锛�" + e.getMessage()); + rgvProtocol.setStatusEnable(true); } + + RgvTaskProtocol rgvTaskProtocol = RgvTaskCache.getRgvStatus(slave.getId()); + if (rgvTaskProtocol == null) { + rgvTaskProtocol = new RgvTaskProtocol(); + rgvTaskProtocol.setRgvNo(slave.getId()); + } + rgvTaskProtocol.setAvoid(-1); + rgvTaskProtocol.setAvoidingTheDestination(0L); + RgvStatusCache.updateRgvStatus(rgvProtocol); + + RgvTaskCache.updateRgvStatus(rgvTaskProtocol); } @@ -231,15 +406,16 @@ siemensNet.setRack(slave.getRack().byteValue()); siemensNet.setSlot(slave.getSlot().byteValue()); OperateResult connect = siemensNet.ConnectServer(); - if(connect.IsSuccess){ + if (connect.IsSuccess) { result = true; - OutputQueue.RGV.offer(MessageFormat.format( "銆恵0}銆慠GV plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); +// OutputQueue.RGV.offer(MessageFormat.format( "銆恵0}銆慠GV plc杩炴帴鎴愬姛 ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); log.info("RGV plc杩炴帴鎴愬姛 ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); } else { - OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慠GV plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); +// OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慠GV plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{1}] [ip:{2}] [port:{3}] [rack:{4}] [slot:{5}]", DateUtils.convert(new Date()), slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot())); log.error("RGV plc杩炴帴澶辫触锛侊紒锛� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); - initRgv(); + } + initRgv(); // siemensNet.ConnectClose(); return result; } @@ -247,9 +423,9 @@ /** * 璇诲彇鐘舵�� */ - private void readStatus(){ + private void readStatus() { try { - OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 34); + OperateResultExOne<byte[]> result = siemensNet.Read("DB101.0", (short) 18); if (result.IsSuccess) { // 鏋勫缓璁惧鐘舵�佸璞� RgvProtocol rgvProtocol = RgvStatusCache.getRgvStatus(slave.getId()); @@ -257,15 +433,20 @@ rgvProtocol = new RgvProtocol(); rgvProtocol.setRgvNo(slave.getId()); } - rgvProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 0)); - rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 2)); - rgvProtocol.setRgvPos(siemensNet.getByteTransform().TransUInt32(result.Content, 10)); - rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20)); + + rgvProtocol.setRgvPos((long)siemensNet.getByteTransform().TransInt32(result.Content, 0)); + rgvProtocol.setRgvPosDestination((long)siemensNet.getByteTransform().TransInt32(result.Content, 4)); + rgvProtocol.setStatus(siemensNet.getByteTransform().TransInt16(result.Content, 8)); + rgvProtocol.setTaskNo((long)siemensNet.getByteTransform().TransInt32(result.Content, 10)); + + rgvProtocol.setRgvNo((int)siemensNet.getByteTransform().TransInt16(result.Content, 14)); + rgvProtocol.setMode(siemensNet.getByteTransform().TransInt16(result.Content, 16)); +// rgvProtocol.setAlarm(siemensNet.getByteTransform().TransInt16(result.Content, 20)); // rgvProtocol.setxSpeed(siemensNet.getByteTransform().TransInt16(result.Content, 28)); // rgvProtocol.setxDistance(siemensNet.getByteTransform().TransInt16(result.Content, 40)); // rgvProtocol.setxDuration(siemensNet.getByteTransform().TransInt16(result.Content, 48)); - OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛",DateUtils.convert(new Date()), slave.getId())); + OutputQueue.RGV.offer(MessageFormat.format("銆恵0}銆慬id:{1}] <<<<< 瀹炴椂鏁版嵁鏇存柊鎴愬姛", DateUtils.convert(new Date()), slave.getId())); // // 宸ヤ綅1澶嶄綅淇″彿 // if (rgvProtocol.getStatusType().equals(RgvStatusType.WAITING) // || rgvProtocol.getStatusType().equals(RgvStatusType.FETCHWAITING)) { @@ -282,18 +463,18 @@ // 鏍规嵁瀹炴椂淇℃伅鏇存柊鏁版嵁搴� BasRgvService basRgvService = SpringUtils.getBean(BasRgvService.class); BasRgv basRgv = basRgvService.selectById(slave.getId()); - if (!Cools.isEmpty(basRgv)){ + if (!Cools.isEmpty(basRgv)) { rgvProtocol.setStatusEnable(basRgv.getStatus() == 1); } else { rgvProtocol.setStatusEnable(false); } // BasRgv basRgv = new BasRgv(); basRgv.setRgvNo(slave.getId()); - basRgv.setRgvSts((int)rgvProtocol.getMode()); - if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))){ + basRgv.setRgvSts((int) rgvProtocol.getMode()); + if (!basRgvService.updateById(rgvProtocol.toSqlModel(basRgv))) { log.error("RGV plc鏁版嵁搴撴洿鏂板け璐� ===>> [id:{}] [ip:{}] [port:{}] [rack:{}] [slot:{}]", slave.getId(), slave.getIp(), slave.getPort(), slave.getRack(), slave.getSlot()); } - } catch (Exception ignore){ + } catch (Exception ignore) { } @@ -326,11 +507,12 @@ // taskProtocol.setRgvNo(slave.getId()); Long[] array = new Long[11]; // array[0] = taskProtocol.getAckFinish1(); - array[1] = taskProtocol.getTaskNo(); +// array[1] = taskProtocol.getTaskNo(); // array[2] = taskProtocol.getTaskMode(); // array[4] = command.getDestinationStaNo(); // array[10] = taskProtocol.getCommand(); OperateResult result = siemensNet.Write("DB100.0", taskProtocol.getTaskNo()); + OperateResult result1 = siemensNet.Write("DB100.1", taskProtocol.isDirection()); // 鎵ц鏂瑰悜锛堥潰鏈濊建閬� 瀹氫綅鍊煎乏灏忓彸澶э級 true:宸� false:鍙� // if (taskProtocol.getAckFinish1() == 0) { // short commandFinish = 3; //宸ヤ綅1銆�2浠诲姟鍚屾椂鍐欏叆 @@ -350,13 +532,14 @@ null, null, null, - result.IsSuccess? 1 : 0, + result.IsSuccess ? 1 : 0, null, new Date(), null ); bean.insert(basRgvOpt); - } catch (Exception ignore) {} + } catch (Exception ignore) { + } if (result != null && result.IsSuccess) { Thread.sleep(200); -- Gitblit v1.9.1