AGV Network - Conditional Routing

AGV Network - Conditional Routing

ezhilan_ak
Explorer Explorer
232 Views
1 Reply
Message 1 of 2

AGV Network - Conditional Routing

ezhilan_ak
Explorer
Explorer

I am working on a AGV Network for a Assembly Shop Floor, it has more than 40+ Cells, Each cell has entry door and Exit Door, AGV handles Frames and Boxes.  If AGV needs to deliver a Frame to the cell, it can drive through (Entry door, Unload, Exit Door).  For AGV’s carrying Boxes can’t drive through the cell, AGV can enter, unload the box and change its direction (Drive Through is not allowed).

 

And I felt without constraints on the AGV paths, AGV’s may drive through the other cells. Which are empty / unplanned. After Loading / Unloading AGV should only use paths, which are not inside a room for travelling, except the allocated room.

 

I felt writing “Conditional Rules” for each room/ entry path is not a very good way. I don’t have much idea about “AGV Customization Delegate” or implementing “Hooks”.

 

What is the best method to achieve this logic?

@moehlmann_fe @joerg_vogel_HsH 

0 Likes
Accepted solutions (1)
233 Views
1 Reply
Reply (1)
Message 2 of 2

moehlmann_fe
Advocate
Advocate
Accepted solution

Routing contraints seem like a good option here. They allow you to dynamically block certain CPs during routing.

https://docs.flexsim.com/en/25.2/Reference/CodingInFlexSim/FlexScriptAPIReference/AGV/AGV.Allocatabl...

https://docs.flexsim.com/en/25.2/Reference/CodingInFlexSim/FlexScriptAPIReference/AGV/AGV.RoutingCon...

 

To only allow only AGVs whose actual destination is the cell to enter it, set the CP they travel to in the cell to "PassThroughBlocked". This allows travel to or from the CP but not passing the CP while travelling to another destination. See the attached example model (it also contains other examples that are not relevant here).

 

By default, both AGVs want to use the shortcut at Queue4. While TE7 is unloading, TE8 must wait, although it could move to Queue5 via the longer path at the top.

moehlmann_fe_0-1753871190493.png

 

By running the script at the start of the model, the CP at Queue4 gets blocked for passing AGVs, thus forcing TE8 to take the longer route.

moehlmann_fe_1-1753871319783.png

 

The routing constraints do not persist when the model is reset. They need to be set again at the start of each model run.

To manage the drive-through/turn-around logic you could do something similar. When an AGV is about to start travelling from a cell, check which direction is allowed and block a CP along the path in the direction it must not use. Then start the travel task and revert the block after 0s to "reset" the state for the next AGV. The routing constraints only fuction during routing, as their name suggests. One an AGV has started to move, any changes won't affect its route without re-starting the travel task.

 

0 Likes