diff --git a/servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvConnectorThread.java b/servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvConnectorThread.java index f6afee6..e6621b4 100644 --- a/servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvConnectorThread.java +++ b/servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvConnectorThread.java @@ -76,8 +76,8 @@ public class PtrAgvConnectorThread extends Thread { PtrAgvDeviceTask nextTask = this.ptrAgvItem.deviceTaskQueue.peek(); if (currentTask.isGroupEnd || (taskMessage.Link.size() > 0 && nextTask != null && ((startTask.speed > 0) != (nextTask.speed > 0) || startTask.direction != nextTask.direction)) // 下一个任务和开始任务方向不一致 - // 单向移动距离大于2m时并且点位数量大于1 - || (distance > 2 && taskCount > 1)) { + // 单向移动距离大于2m时并且点位数量大于1 如果碰到当前点位与任务结束点位相同且当前任务还有后续,则继续添加步骤(link)错开,避免任务发生歧义 + || (distance > 2 && taskCount > 1 && nextTask != null && currentTask.endPoint != currentTask.groupEndPoint)) { taskMessage.OperationType = currentTask.operationType; taskMessage.PickMode = currentTask.pickMode; taskMessage.EndX = currentTask.groupEndPoint.logicX; diff --git a/servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvItem.java b/servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvItem.java index 5bbbc77..94d60be 100644 --- a/servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvItem.java +++ b/servo/src/main/java/com/galaxis/rcs/ptr/PtrAgvItem.java @@ -214,7 +214,10 @@ public abstract class PtrAgvItem extends ExecutorItem { if (!deviceTaskQueue.isEmpty()) { deviceTaskQueue.clear(); } - + // todo 取消运行中的设备任务 + runningDeviceTaskList.clear(); + // 唤醒连接器线程 + LockSupport.unpark(connectorThread); this.runtime.eventManager.firePlanTaskSequenceCancelEvent(this, planTaskSequence); } @@ -776,6 +779,8 @@ public abstract class PtrAgvItem extends ExecutorItem { } deviceTaskQueue.addAll(deviceTaskList); + String json = JsonWrapper.toJson(deviceTaskList); + log.info("deviceTaskList: {}", json); } public boolean isSamePosition(PosDirection startPos) { diff --git a/servo/src/main/java/com/yvan/workbench/controller/RcsController.java b/servo/src/main/java/com/yvan/workbench/controller/RcsController.java index c9b2006..66c3aa7 100644 --- a/servo/src/main/java/com/yvan/workbench/controller/RcsController.java +++ b/servo/src/main/java/com/yvan/workbench/controller/RcsController.java @@ -218,7 +218,7 @@ public class RcsController { // ==================== 布置任务 ==================== ps.bizTask.setLpn(lpn); ps.bizTask.setBizType(BizTaskType.CARRY.toString()); - ps.bizTask.setTaskFrom(loadBasLocation.getCatalogCode()); + ps.bizTask.setTaskFrom(loadBasLocation.getLocCode()); ps.bizTask.setTaskTo(unloadBasLocation.getLocCode()); CarryTask carryTask = new CarryTask(