question

Glenson G avatar image
0 Likes"
Glenson G asked Felix Möhlmann commented

Statistics for AGVs queuing up for elevators

Hi @Felix Möhlmann , would appreciate your guidance in the following questions:

1. Is it possible to obtain the statistics for how many AGVs are queuing at the control point waiting for any elevators to be free?
2. Similar to 1, is it possible to have a "queue" for AGVs to show how many AGVs are queuing?
3. Is it possible to modify the model in a way where the elevators will wait for the AGVs to unload at the level, go back into the lift, and go back down to the basement?

Thank you very much!

liftusage-21.fsm

FlexSim 18.2.3
agvagvnetworkcontrolpoint
liftusage-21.fsm (1.0 MiB)
· 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.

Jason Lightfoot avatar image Jason Lightfoot ♦♦ commented ·
Do you think you could use different, more descriptive question names for each new question?
0 Likes 0 ·
Glenson G avatar image Glenson G Jason Lightfoot ♦♦ commented ·
My apologies, I will be using different descriptive question names from now.
1 Like 1 ·

1 Answer

Felix Möhlmann avatar image
0 Likes"
Felix Möhlmann answered Felix Möhlmann commented

1./2.

Finding the right trigger to determine when an AGV starts to "wait" for an elevator would be quite tricky. A less exact but relatively easy method would be to allow multiple allocations of the redirect control points (use Acculumation Types on the path to manage AGV following one another). If the control are placed such that an AGV would only allocate them when they are travelling to the respective elevators, you could then collect the information how many AGVs are "inbound" to the elevators. It is not the same as the waiting time, but if you show the data in a time plot the duration for which the control point was allocated can still be used to determine if the AGV had to wait or could continue directly. This approach is demonstrated at "Core1" in the attached model.

A more thorough approach might be something like the following.

Make the redirect control point allow multiple allocations with an Accumulation Type set on the path as above. Use event-triggered sources to detect an AGV stopping ("On AGV Allocation Failed", "On AGV Accumulation Stop"). If, at the time the AGV stops it has the redirect CP allocated (read from model tree), this would mean it is now waiting at or in front of the control point. This could be used as the starting point for the wait time. The end point would still be the deallocation of the redirect CP.

3.

This is actually comparatively straight forward. I customized the Elevator Flow in the attached model. New activities are marked in green. The darker ones are completely new, the block of light green is just a copy of the default block above it.

After an elevator is used, the token doesn't immediately loop back. Instead the elevator that was used is written to a label on the AGV and the elevator is pushed to a newly added "Reserved" list. When the AGV wants to use an elevator the next time, the process flow will check if there is a label on the AGV that determines the last used elevator. If that is the case, the token pulls that specific elevator from the reserved list. The logic then continues as normal. After the elevator was used the second time by the AGV, the token loops back to the start.

1665481124734.png

liftusage-21_fm.fsm


1665481124734.png (155.3 KiB)
· 6
5 |100000

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

Glenson G avatar image Glenson G commented ·
Hi @Felix Möhlmann , thank you for your time for the explanation!

For the less exact approach, it seems like it is only able to detect 2 AGVs that are inbound. Could it be possible to detect all the AGVs on the path?

For the more thorough approach, how do I translate it to a graph in the dashboard?

Thank you for the succinct explanation and workings for the different approach of the elevator!

Thank you very much once again!

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Glenson G commented ·

How many AGVs are detected depends on how many can fit into the section between the redirectCP and the previous control point, since only AGVs that have allocated the redirectCP are counted.

The attached model shows a slightly different approach. Instead of reacting to the allocation it uses the Pre-Arrival event of an arbitrary control point to increment the number of inbound AGVs.

liftusage-21-fm(1).fsm

For the more thorough approach I would create a token in a small process as soon as an AGV starts to wait. These tokens would enter a Zone and wait there until the AGV they belong to deallocates the redirectCP, meaning it has acquired an elevator. At that point the token leaves the zone.

You can then just plot the zone's content in a chart with a statistics collector that reacts to any change of the zone content.

1665758635549.png

This would also work as a version of the simple approach. A token enters when an AGV arrives at a given control point and leaves when it passes a different control point. Essentially measuring the amount of AGVs between those two points.

0 Likes 0 ·
Glenson G avatar image Glenson G Felix Möhlmann commented ·
Hi @Felix Möhlmann ,


So sorry but I took quite some time to read and try out your reply but I still did not manage to do it.

How did you input the "Inbound" custom code under in the recording tab of the statistics collector?
For you screenshot of the thorough approach, how do you make the flow understand that the AGV is starting to wait, and where is the zone that I am looking at?

Thank you very much Felix!

0 Likes 0 ·
Show more comments