question

christoph gruber avatar image
0 Likes"
christoph gruber asked Joshua S answered

push parked AGV in front

Hi, I tried to push a parked AGV in front.

In my demo-model all parkpoints are on the traveler path (like in my real big model with multiple cycles). Every time if a parked AGV in front, that AGV have to drive a extra cycle to the next parkposition in the model. My AGV logic is a little bit similar to the AGV-Modul, but without NextLockForWork points. Because every time when an AGV as unloaded an item, he have to look in the worklist for the next order. I tried different things but I found no solution. I also found no solutions in this forum.

Someone have an idea? Thanks a lot!

push-agv.fsm

FlexSim 19.2.4
agv networkagv process flow
push-agv.fsm (141.0 KiB)
· 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.

Joshua S avatar image Joshua S commented ·

Do you want the AGVs going around in a loop till there is something ready for them?

0 Likes 0 ·
christoph gruber avatar image christoph gruber Joshua S commented ·

Hi @Joshua S,

thanks for take care of my problem.

The AGV should go around and if nothing to do it should park again on the next parkposition.

In my model there are two types of parkpositions (only for your information).

Type 1: Like my question, 1 AGV is parked on the traveler path and have nothing to do. But if an other AGV have to pass the way the AGV in front have to travel an extra cycle.

Type 2: There is only 1 parkpoint and all other idle AGVs have to wait behind (are blocked).

0 Likes 0 ·
pic1.png (102.3 KiB)
pic2.png (48.5 KiB)

1 Answer

Joshua S avatar image
1 Like"
Joshua S answered

This is one way of how I see the logic looking. There should be a check control point, that if on preArrival, if the destination of the AGV is not in a group of park control points, then it should do the push logic to all the parked AGVs.

For Scenario 1, the top picture, I'm guessing there is only 1 park point, in that case you can use this code to check if that control point has an AGV, and then return the AGV if it does.

Object controlPoint = yourParkControlPoint;
treenode allocation = getvarnode(controlPoint, "allocations").first;
if (allocation)
	AGV agv = AGV(ownerobject(node("+/../..",allocation).value)).currentCP;

Then you can tell the AGV on the park point to travel to a control point on the bottom of the loop, but uncheck the box "Wait Until Complete", and then have another activity right below it that has it travel to the same control point it was at.

For Scenario 2, it is the same for Scenario 1 except that you will loop through all of the park control points and tell the AGVs to travel back to their control point as I mentioned above.

· 1
5 |100000

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

christoph gruber avatar image christoph gruber commented ·

oh sorry, I see it just now that the description in my pictures are missing! But never the less you understood.

Great Joshua, that´s what I need, thanks a lot.

0 Likes 0 ·