question

Steven Chen avatar image
0 Likes"
Steven Chen asked Felix Möhlmann commented

Place control point on transfer cluster percisely

Hello,

I tried to define logic that AGV can stop on transfer cluster, so I place control point on tranfser cluster.


In the image below, AGV travels from CPX1 to CPX2, I expect the AGV may enter path to CPX2, but it go CPExit instead and travel around back to transfer cluster under CPX1, then CPX2.

agv-travel-on-incorrect-path.png


I am sure that locations of CPX1 and the transfer cluster are eqaul.

locations-of-controlpoint-and-transfercluster.png


agv_cp_on_transfercluster_v22.1.fsm

FlexSim 22.1.1
agvagvnetworktransfer cluster
5 |100000

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

1 Answer

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

What matters in this case is the order in the 'pathPoints' node of the agv path. Currently, CPX1 comes after the transfer cluster. As the path is one way, the task executer can't go back to an earlier path point and has to loop around instead.

1655362811615.png

If you switch the order of the respective nodes, the task executer will turn into the other path directly.

agv-cp-on-transfercluster-v221-fm.fsm


· 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.

Steven Chen avatar image Steven Chen commented ·

I got two new questions after changing pathPoint rank.

1. The ranking may be reverted on reset.

2. After moving CPX1 to front of transfer cluster, AGV from CPX2 to CPExit won't allocate CPX1, so it crashed to another AGV traveled from CPX1 to CPX2.

cant-allocate-cp-on-cluster.png

agv_section_control_a3_v22.1.fsm

0 Likes 0 ·
Felix Möhlmann avatar image Felix Möhlmann Steven Chen commented ·

1. It seems to revert whenever control point position on the network updates. For example when moving the path it is on (even when the actual position doesn't change). This makes sense, since the order should be deterministic. A simple reset without any touching the network inbetween doesn't revert the order for me though.

2. The control point can only be ahead or behind the junction on the one way path as far as the logic is concerned. If it is supposed to be used in either travel direction then it should belong to the two-way path.

The current layout, when used with more than one agv, will lead to deadlocks anyway without any further measures to prevent them. The entire two-way path should probably be inside a control area. Even then, an AGV should only be allowed to enter if no other is currently travelling to/from the same processor.

1655718631275.png


0 Likes 0 ·
1655718631275.png (72.3 KiB)
Steven Chen avatar image Steven Chen Felix Möhlmann commented ·

Sometimes ranking of pathPoints reverted even I don't touch AGV Path, needs to do more test to find out what action makes pathPoints got reverted.

I did use control area for entire path like you suggest. But I think my client needs more flexible logic, AGV may allocate all control points on route to destination, other AGV should stay on point outside the route until it deallocated point in route. For example, CarA launched from CPP1 to CPExit (route=CPP1>CPX2>CPX1>CPExit, 4 points allocated on start), CarB launched from CPP2 to CPExit (route=CPP2>CPX3>CPX2>CPX1>CPExit, CarB will stop at CPX3 until CarA deallocates CPX2). I can't finish this because I can't determine when CarA deallocates CPX1 since it doesn't pass through CPX1.

Perhaps the best solution is treating transferCluster as controlPoint to own trigger like OnPreArrival. So I don't need to concern the ranking of them and simplize the processFlow logic.

0 Likes 0 ·
Show more comments