在无重复代码的情况下,使用Anylogic中的PML中的代答/下架操作将代理与其他代理移动

时间:2019-07-09 17:56:36

标签: anylogic

信息:问题已更新,其中有更多解释

我想用移动媒介(例如卡车)将媒介(例如香蕉)从地点A运送到地点B,例如,地点A是采摘香蕉的地方,地点B是香蕉的存放地。因此,香蕉只是通过卡车运输。特别是,要移动的代理(香蕉)不是资源(就Anylogic PLM而言),并且没有上限。

有多种方法可以解决此问题,但是大多数方法都需要模型中不需要或不想要的某些元素(例如,对于“机架存储”块,为机架/托盘系统) )或要求代理为Anylogic资源。

this answer中所述,为此任务使用接送是很有意义的。问题是要运输的代理没有被运输,因此答案不能解决我的问题。进一步说明,当将要移动的代理(香蕉)放到目标位置(位置B)时,即使通过卡车将它们捡起的卡车也重新出现在其原始位置(位置A)。拾取块已移至位置B。

我在这里做了一个最小的例子。 enter image description here

正如我所描述的,“运输”仅在我为下放的代理添加单独的“ moveTo1”块时起作用。

在Anylogic中,有没有任何简单明显的方法来处理这一相当简单的运输任务,而没有多个移动块或其他解决方法?我知道这里有“ ResourceAttach”,但是这要求将代理移动到资源上,还有“ RackStore”,这需要一个机架/托盘系统,我的模型中不需要这个模型。

我想知道什么是“标准” Anylogic方式。

非常感谢!

2 个答案:

答案 0 :(得分:1)

现在我了解您的问题是什么...

当您使用dropoff时,它后面的块需要定义代理的新位置,否则它们将留在同一位置。您可以使用moveTo块进行跳转,以使代理被传送到该位置您希望他们成为: moveTo

在PML的几乎所有块中,您都可以在属性中定义代理位置,在这种情况下,必须使用该属性。

答案 1 :(得分:0)

您可以将香蕉的位置设置为卡车的位置。
例如使用“ {On dropoff”字段中的agent.setXY(container.getX()container.getY())

它似乎适用于简单的测试模型。