在 Anylogic 中,是否可以将代理从一个存储直接发送到另一个存储?

In Anylogic, is it possible to send an agent from one storage to another directly?

我有 2 个仓库(称为 storageA 和 storageB),我想通过叉车将代理(托盘)从一个仓库移到另一个仓库。我已经设置了以下内容。

托盘在节点创建,并通过'store'移动到存储A。这部分工作正常。然后托盘在延迟后通过 'store1' 移动到 storageB。这是出现以下错误的时候:

Exception during discrete event execution:
root.store1.seizeTrans.freeSpaceSendTo:
Path not found! {agent=2, source={level=level, pos=(1673.3333333333333, 3245.0, 0.0)}, target={level=level, pos=(1857.25, 3160.4845, 0.0)}}

如果我将 'store1' 替换为检索块并首先将其发送到节点,它会起作用。但是,我想将托盘直接发送到另一个仓库,而不是通过另一个位置。这可能吗?

如果我提供的信息不够,请告诉我。

谢谢

是的,不幸的是,据我所知你不能这样做,我使用的解决方案如下,这实际上不是一个超级稳健的解决方案......但到目前为止在应用程序中一直没问题

  1. 在您的延迟和您的商店 1 之间放置一个检索块
  2. 使用您选择的代理作为目的地:
  3. 关于检索块的 on seize 操作:agent.transporter=unit;

4.On store1 块为任务设置了最高优先级
5. 在 store1 块上使用资源自定义传输器选择:agent.transporter.equals(unit)
6. 调度策略应该离 store1 中的代理最近,但执行上述所有操作可确保资源继续执行任务,无论如何......仅使用调度策略,您的模型将在 99.999999% 的时间内工作。 . 只有当另一个具有更高优先级的任务与在检索块中释放传输器的时间完全相同时,才会出现此问题,这种情况很少见,但可能会发生。