I am modeling order picking in anylogic: At the moment I create a population of agents and give them to the enter-block via an event. This block is connected with a rackstore block and puts the agents in the racksystem. In a statechart of a person (when the person arrives at the agent location), the agent is taken and put into another enterblock, which is just connected with a sink -> the agent is removed from the racksystem.
Problem: If I want to store agents in the racksystem again, the cells (where agents where before) are occupied. I think the reservation of the cell is not discarded. How can I solve the problem?
Or: Is there a better solution to store and/or remove the agents ? Maybe without using flowcharts at all?
Unless you're removing agents in racks via a RackPick
block, you aren't actually removing them from the rack system (even if the agent is moving 'past' the RackStore
block in the process flow). So your process would need to be something like:
Wait
block following the RackStore
(which holds them in the process until required).free
them from the Wait
block.Wait
block is followed by a RackPick
block which will remove them from the rack.Sink
in your case).NB: Also, part of the functionality of RackStore
and RackPick
blocks is to use resource agents to move to the rack and deposit/retrieve the agent, so it's likely you don't need a "person agent" to be explicitly moving to the agent location (outside of these blocks), though that depends on the exact specification of what you want your model to do.