From 1edc46cc37adb14e30c80c22491d770bfe9214d1 Mon Sep 17 00:00:00 2001 From: Junjie <fallin.jie@qq.com> Date: 星期四, 29 六月 2023 11:35:59 +0800 Subject: [PATCH] 优化寻车,出库问题 --- src/main/java/com/zy/core/thread/ShuttleThread.java | 31 ++++++++++++++++++++++++++----- 1 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/zy/core/thread/ShuttleThread.java b/src/main/java/com/zy/core/thread/ShuttleThread.java index d6b95ac..029180e 100644 --- a/src/main/java/com/zy/core/thread/ShuttleThread.java +++ b/src/main/java/com/zy/core/thread/ShuttleThread.java @@ -729,6 +729,9 @@ // } // } + LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1); + LiftProtocol liftProtocol = liftThread.getLiftProtocol(); + List<ShuttleCommand> commands = redisCommand.getAssignCommand().getCommands(); //褰撳墠姝ュ簭 int commandStep = redisCommand.getCommandStep(); @@ -744,6 +747,14 @@ if (command.getDistCodeNum().intValue() == shuttleProtocol.getCurrentCode().intValue()) { //涓婁竴鏉℃寚浠ょ殑鐩爣浣嶇疆鍜屽綋鍓嶅皬杞︿綅缃浉鍚岋紝鍒欒瀹氫笂涓�鏉′换鍔″畬鎴� command.setComplete(true); + + //涓婁竴鏉℃寚浠よ捣鐐规槸鎻愬崌鏈轰簩缁寸爜锛屽垯娓呴浂鎻愬崌鏈轰换鍔″彿 + if (command.getStartCodeNum().intValue() == liftProtocol.getBarcode().intValue()) { + //鍒ゆ柇鎻愬崌鏈烘槸鍚﹀浜庣┖闂� + if (liftProtocol.isIdleNoTask()) { + liftProtocol.setTaskNo((short) 0);//娓呯┖浠诲姟鍙� + } + } } } else if (command.getCommandWord().intValue() == 2) { //鎵樼洏椤跺崌鍛戒护 @@ -793,6 +804,10 @@ } } + if (commands.size() == 0) { + return false; + } + //鍙栧嚭鍛戒护 ShuttleCommand command = commands.get(commandStep); @@ -805,9 +820,6 @@ } } - LiftThread liftThread = (LiftThread) SlaveConnection.get(SlaveType.Lift, 1); - LiftProtocol liftProtocol = liftThread.getLiftProtocol(); - //鍒ゆ柇灏忚溅褰撳墠浜岀淮鐮佹槸鍚︿负鎻愬崌鏈轰簩缁寸爜 if (shuttleProtocol.getCurrentCode().intValue() == liftProtocol.getBarcode().intValue()) { @@ -844,6 +856,9 @@ if (!staProtocol.isLiftArrival()) { return false;//绔欑偣鎻愬崌鏈哄埌浣嶄俊鍙穎alse锛岀姝笅鍙戝懡浠� } + + //鏉′欢婊¤冻锛屽崰鐢ㄦ彁鍗囨満 + liftProtocol.setTaskNo(wrkNo); } } @@ -1046,6 +1061,7 @@ return true; }else { if (liftProtocol.getPositionArrivalFeedback$() == shuttleLocNoLev) { + liftProtocol.setTaskNo(wrkNo);//缁欐彁鍗囨満鍐欏伐浣滃彿锛岄槻姝㈣鍗犵敤 return true;//鎻愬崌鏈哄埌浣� } executeLift(liftThread, liftProtocol, redisCommand, shuttleLocNoLev);//璋冨害鎻愬崌鏈� @@ -1057,8 +1073,13 @@ } private boolean executeLift(LiftThread liftThread, LiftProtocol liftProtocol, ShuttleRedisCommand redisCommand, Integer shuttleLocNoLev) {//璋冨害鎻愬崌鏈� - if (liftProtocol.getRunning()) { - //鎻愬崌鏈鸿繍琛屼腑锛岀姝笅鍙� + if (!liftProtocol.isIdle()) { + //鎻愬崌鏈轰笉绌洪棽绂佹涓嬪彂 + return false; + } + + if (liftProtocol.getPlatShuttleCheck()) { + //鎻愬崌鏈哄唴鏈夎溅绂佹涓嬪彂 return false; } -- Gitblit v1.9.1