ConveyorSimpleStationController 上的 AnyLogic 8.7.3 材料处理库异常

问题描述

我在 AnyLogic 8.7.3 中遇到了一个很奇怪的问题,这似乎与物料搬运库的 ConveyorEnter 块有关。该问题发生在每次模拟的同一个离散步骤中,即使进行微小修改(例如添加新队列)也是如此。当然,如果我进行重大的时间更改,它确实会在截然不同的时间发生。它经常发生在运行的很晚(并不总是),例如在步骤 428k。否则,很奇怪,很难调试。控制台输出如下:

Exception during discrete event execution:
Index 0 out of bounds for length 0
java.lang.indexoutofboundsexception: Index 0 out of bounds for length 0
    at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
    at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
    at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
    at java.base/java.util.Objects.checkIndex(Objects.java:372)
    at java.base/java.util.ArrayList.get(ArrayList.java:458)
    at com.anylogic.libraries.material_handling.ConveyorSimpleStationController_xjal.S(UnkNown Source)
    at com.anylogic.libraries.material_handling.ConveyorSimpleStationController_xjal.a(UnkNown Source)
    at com.anylogic.libraries.material_handling.ConveyorSimpleStationController_xjal.a(UnkNown Source)
    at com.anylogic.libraries.material_handling.ConveyorSimpleStationController_xjal$4.onExit(UnkNown Source)
    at com.anylogic.libraries.processmodeling.source.q(UnkNown Source)
    at com.anylogic.libraries.processmodeling.source.q(UnkNown Source)
    at com.anylogic.libraries.processmodeling.source$1.onEnter(UnkNown Source)
    at com.anylogic.libraries.processmodeling.Enter.c(UnkNown Source)
    at com.anylogic.libraries.processmodeling.Enter.c(UnkNown Source)
    at com.anylogic.libraries.processmodeling.Enter$1.onExit(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBuffer.c(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBuffer.c(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBuffer$1.onExit(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.c(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock$1.b(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.InPort.receiveImmediately(UnkNown Source)
    at com.anylogic.libraries.processmodeling.InputBlock$1.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutPort.b(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.forwardReadyEntityNotification(UnkNown Source)
    at com.anylogic.libraries.processmodeling.InputBlock$1.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutPort.b(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutPort.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock$2.a(UnkNown Source)
    at com.anylogic.libraries.processmodeling.OutputBlock$2.action(UnkNown Source)
    at com.anylogic.libraries.processmodeling.AsynchronousExecutor_xjal$a.execute(UnkNown Source)
    at com.anylogic.engine.LibraryEventHandler$b.execute(UnkNown Source)
    at com.anylogic.engine.Engine.j(UnkNown Source)
    at com.anylogic.engine.Engine.fn(UnkNown Source)
    at com.anylogic.engine.Engine.e(UnkNown Source)
    at com.anylogic.engine.Engine$b.run(UnkNown Source)

另外,它停止的事件是:

root.conveyorEnter.conveyorEnter.?<MHLSettings>.conveyorSystems_xjal[0].simpleStationControllers[4].transition1

所以我可以说它与物料搬运库有关,在传送带简单站控制器上。在调试屏幕中单击此错误时,它会向我显示模型中的单个“ConveyorEnter”块。然而,虽然这个块已经被激活并工作了好几次,但奇怪的是在错误发生时它什么也没做——没有任何东西进入或退出这个块。模型 GUI 也没有显示该模块的任何问题(例如阻塞的端口)。

我的模型唯一有点不寻常的地方是主输送线形成了一个循环——但是考虑到模型可以运行这么长时间没有问题,我认为这不是原因,否则模型逻辑工作得很好。

我将不胜感激任何帮助。非常感谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)