question

Kenny12392757 avatar image
0 Likes"
Kenny12392757 asked anthony.johnson answered

Can I modify the meeting mechanism of AGV?

Hi, I'm wondering what is the DEFAULT meeting mechanism of AGV in Flexsim, and can I change it to other mechanisms? (Maybe there are I can choose other mechanisms in Flexsim or I can import my own mechanism which written by code?)

Thanks!!!

FlexSim 22.2.1
agvagv meeting
· 3
5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.

Joerg Vogel avatar image Joerg Vogel commented ·

Toolbox: Agent System

dev talk about Agent System around 8 minutes in video: https://www.flexsim.com/ru/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE/dev-talk-agent-module/

Please look into the SDK of FlexSim, if you still want to change primary methods.


0 Likes 0 ·
Kenny12392757 avatar image Kenny12392757 Joerg Vogel commented ·
Hi, thanks for your reply, and I still have a question:

Is there any videos about when 2 AGVs meet at an intersection, which one should go first?

Thanks!

0 Likes 0 ·
Joerg Vogel avatar image Joerg Vogel Kenny12392757 commented ·
I am not aware of. Sorry!
0 Likes 0 ·

1 Answer

anthony.johnson avatar image
1 Like"
anthony.johnson answered

When you use the AGV module, the primary mechanism by which AGVs interact with each other is through allocation of control points and control areas.

https://docs.flexsim.com/en/22.2/WorkingWithTasks/AGVNetworks/BuildingAGVLogic/BuildingAGVLogic.html#collisions

Control points act as "stepping stones" on the AGVs path. When an AGV arrives at a control point, say CP1, it will attempt to allocate ahead to the next control point, say CP2. If it cannot allocate CP2, then it will decelerate to stop at CP1, and wait until it can allocate CP2 before continuing on.

By default, allocations are fulfilled in FIFO order, i.e. the AGV that attempts to allocate the control point/area first will allocate it first. However, you can add triggers to the control point or area that customize the behavior of how AGVs claim the object. For example, you can return an allocation point from an OnDeallocate trigger to define prioritization.

If you return a reference to an AGV.AllocationPoint from this trigger (by searching the AGV.AllocatableObject's requests array), then the object will allocate itself to that request. This allows you to implement custom prioritization strategies.

You can also make further customization by tapping into the OnRequest trigger of a control point/area:

This event is fired when the control point receives a request to be allocated by an AGV. You can return an AGV.Request value from this trigger to force the request to either be allowed (i.e. allocate the object), or blocked, overriding the default allocation behavior.

At one point I used these two triggers to implement an example model showing an 'untimed traffic modes' control area, that let many objects going the same direction pass through the area, then switched to the other direction, letting everyone go through in the opposite direction. I'll see if I can find that model and post it as an example. Note that these trigger features are new in 22.2.

5 |100000

Up to 12 attachments (including images) can be used with a maximum of 23.8 MiB each and 47.7 MiB total.