使用AnyLogic中的参数初始化托盘架

时间:2019-05-16 12:14:06

标签: anylogic

尊敬的堆栈溢出社区,

我正在尝试在AnyLogic(7.1.2版大学)中创建一个托盘架,其中,单元数,层数和其他一些属性是通过参数设置的。在执行模型之前,需要从仿真页面设置参数。有人做过吗?

在我看来,问题始于palletRack属性,该属性不允许将参数设置为值,但需要一个数字(“单元数:10”而不是“单元数:myParameter”)。但是有一些预定义的函数,例如“ setNumberOfPositions(int nPositions),因此我认为我可以通过在模拟开始时(零时)调用这些函数来避免此问题。为此,我使用了事件的动作字段

这引起了一个异常,说:“ root:palletRack:标记元素已经被初始化,不能被修改。请使用不带参数的构造函数,执行设置,最后调用initialize()函数。”。

https://www.postgresql.org/docs/11/sql-createprocedure.html

由于我无法在Java编辑器中进行任何修改,因此我尝试在事件操作字段中构造一个托盘架:

PalletRack palletRack = new PalletRack();
palletRack.setOwner(this); 
[...]
palletRack.setNumberOfPositions(p_CellsInX);
palletRack.setNumberOfLevels(p_CellsInY);
palletRack.setCellWidth(p_WidthOfCell);
palletRack.setLevelHeight(p_HeightOfCell);

palletRack.initialize();

这没有引发任何错误,但也没有建立机架。

此外,我尝试在函数之前添加“ @Override”。

有人知道如何使用参数初始化托盘架或覆盖初始值吗?

很明显,我是AnyLogic的初学者。如有任何建议,我将不胜感激。预先谢谢你!

1 个答案:

答案 0 :(得分:0)

可能但并非直接。您需要以编程方式进行所有操作,即创建货盘架以及穿过它的生产线,将其添加到(新的或现有的)网络中,然后对其进行初始化。下面的一些虚拟代码可以帮助您入门。

请注意,sum(count是我在设计时在此处手动绘制的现有网络。

还有一个提示:首先手动绘制托盘架并在其上划一条线,以轻松获取所有坐标并确保其能正常工作。然后,删除它们并以编程方式但使用正确的设置来创建它们...

PS:这可能不适用于AL7,但可以适用于AL8。您可能需要稍微不同的功能才能添加到myNetwork

presentation