【问题标题】:In Anylogic, is it possible to send an agent from one storage to another directly?在 Anylogic 中,是否可以将代理从一个存储直接发送到另一个存储?
【发布时间】:2022-10-21 14:03:59
【问题描述】:

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

在一个节点上创建一个托盘,并通过“存储”移动到 storageA。这部分工作正常。延迟后,托盘通过“store1”移动到存储 B。这是发生以下错误的时候:

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”并首先将其发送到节点,它会起作用。但是,我想将托盘直接发送到另一个仓库,而不是通过另一个位置。这可能吗?

如果我没有提供足够的信息,请告诉我。

谢谢

【问题讨论】:

    标签: anylogic


    【解决方案1】:

    是的,不幸的是,据我所知,你不能这样做,我使用的解决方案如下,这实际上不是一个超级强大的解决方案......但到目前为止在应用程序中还可以

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

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

    【讨论】:

    • 谢谢@Felipe,永远感谢您的回答。这运作良好
    【解决方案2】:

    我今天有同样的问题,所以我降落在这里。但幸运的是,仅在此处编写的第二步之后,它确实已经适用于我的情况。我们可以将代理从一个存储移动到另一个存储,只需将“检索”块的目标设置为代理的坐标,然后放置“存储”块。

    【讨论】:

      猜你喜欢
      • 2012-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-06-03
      • 1970-01-01
      • 2016-12-03
      • 1970-01-01
      • 2011-07-08
      相关资源
      最近更新 更多