Moving pallet between racks Anylogic - anylogic

Is it possible to move pallet between two different racks directly, without adding intermediate point node? For example I have two racks one at the receiving dock and one a the storage, after unloading all pallets to Receiving rack I need to send it to storage rack. So I understand I need to add two blocks Rack Pick and Rack store. Is it possible to combine those two?

You can always combine any number of blocks and make your own composite block. Select them, right-click and choose "create flowchart block".
This tutorial (phase 7) shows you how to do it and how to make it as flexible/reusable as you want.

Related

Can resources carry multiple agents in Anylogic?

In the below image I am using AGV as resources to carry Containers(agents) in the rackStore and rack Pick blocks. By default, one AGV carries only one agent; Is it possible to set agent carrying capacity of resources such that it can carry multiple agents?
Sure. Just use the Batch element before the pickup and batch your containers together. Then, the AGV will pickup a batch, i.e. several containers.

Anylogic: Is ther a way to move agents from a pallet rack to another one directly

in rack pick element, the destination can not be a pallet rack, is there a way to send agents directly from one pallet rack to another pallet rack without any point or rectangular nodes (or any other type of destination except pallet rack) between them?
to do that you need to use the rackStore and select the destination palletRack. It will pick up the agent in the initial pallet rack and move it to the destination pallet rack.
No need to use rackPick, only rackStore.

Pallet Rack Size does not update if using pick-up

I know that for an object to be removed from a pallet rack you need "Rack Pick". However, in one of my models, I have a different configuration where I am using pick up:
Step 1: 10 agents are in the rack
Step 2: Another agent picks them up
The way AnyLogic understands the above is that the rack still holds 10 agents, so I get the error eventually that the pallet rack is full. Is there a simple turnaround for this?
you have to remove the agents from cells with this line of code
palletRack.remove(agent);
put it to your pickup block, "on pickup" trigger.

Agent is not in a network at Rack Store and Rack Pick

i`m trying to take pallets from a conveyor to a Rack and after some time the Picker(Ressource) should take the Pallet out of the Rack to a conveyor again. But if i try to use the Rack Store, i get the error: The agent is not in a network. I think the problem is the Ressource(Picker), because without it the Rack Store is working.
Thanks for helping.
This might work, assuming you are using a conveyor from the material handling library, after the conveyor use a conveyorExit block.
The conveyorExit block allows your agents to move smoothly from a conveyor network to the normal network.
If you are using a conveyor from the process modeling library, then it means that you are not connecting your networks correctly and you should be sure you conveyor path is connected in the same network as the path in which your palletRack is located.
This might fix. In my case: I had 4 process flows of the same type of agent (ie. agent Type: product) coming into the RackPallet. Two is a to model processes before agent:product is stored in Rack, and the other two is to model the initial Stock of the Rack.
This solved my problme: I put the code
agent.setNetwork(network2);
before the RackStore of the initial Stock process flows, and it worked. I think this is because when we model initial Fill, the agent is not set on a on network yet.

How to use resources dynamically in anylogic?

I'm doing a simulation of an industry in Anylogic. It consists of three equal production lines, they all have the same number of processes (in the case services) and each service has a Resource attached (aka. a Machine). The products that are produced in the three lines will only be joined together in the end (at the final stock before delivery).
However, my last process of each line can have an increase or decrease in resources (machines) when needed. For example, line 1 had a machine failure and stopped for some time and now instead of needing 4 machines to complete the order it will need 6.
In addition, if one of this machines placed in this process breaks (because of a failure), I need the service to keep working but with less resources. So, for example, I have 4 machines in the last process of line 1, one of these machines had a break down, I would like the other 3 to keep producing.
Which possible solution can be used for this? I tried to simulate this in the service itself but it doesn't work with less resources then specified.
From what I understood I think you need to model the three lines separately and use three different resourcePools for your machines. Doing this you will have control over the resource capacity on every line and can change them based on any events. If your question is about how to change capacity of one line when another line fails, I suggest using the "send to flowchart" option in resource failure and you can use flowchart blocks to change capacities and execute any other code necessary.
If your 3 lines are identical, you can create a custom flowchart block and pass the resourcePool as a parameter to the custom block.This way you don't have to replicate your logic three times.