AGV does not follow the correct path

AGV does not follow the correct path

Amine
Not applicable
342 Views
14 Replies
Message 1 of 15

AGV does not follow the correct path

Amine
Not applicable

[ FlexSim 24.2.1 ]

Description:
Hello everyone,

I’m encountering an issue with my AGV's behavior in a Process Flow template I modified. Here’s the scenario:

  1. When the AGV unloads an item at the steel mill (AC1), I want it to travel to a control point (masonry control), wait there for a short time, and then continue its route.
  2. If there are items available at the blast furnaces, the AGV should load them and continue its cycle as expected.

However, the problem arises after the AGV unloads at AC1. Instead of traveling to the control point, it starts searching for other items and cycles through all the stations while empty. It eventually returns to AC1, still empty, and then begins following the correct logic again.

This unintended loop is disrupting the simulation, and I’m not sure what’s causing the AGV to behave this way.

Note: I’m working with a modified Process Flow template.

Any help in troubleshooting or advice on how to fix this behavior would be greatly appreciated!

0 Likes
Accepted solutions (1)
343 Views
14 Replies
Replies (14)
Message 2 of 15

Amine
Not applicable
0 Likes
Message 3 of 15

SCHamoen
Advisor
Advisor
Accepted solution

@Amine I think the problem is that this template has the looking for work build in. Which means that if there is no job it drives to the next control point, look for work and drive on etc until it finds work again. In your flow, after the unloading it goes to exit A and then it enters this look for work.

If we build AGV models we always build our own flow. This is usually much easier then trying to adapt the template to your need and fighting the build in logic.

So that would be my suggestion here as well: create your own process flow, maybe copy some parts over but start over from scratch.

0 Likes
Message 4 of 15

Amine
Not applicable

Thank you @Steven Hamoen I solve the problem.

Now I want to add 3rd train and a station before the steel mill.

So I want to add a conditional decision based on the availability of the steel mill, that is to say, it there are two train at the seel mill, the 3rd will wait at this new station located near to the steel mill while the others are unloading and until one leave, and then it moves to the available space.

0 Likes
Message 5 of 15

SCHamoen
Advisor
Advisor

@Amine Simple 😉 let each train drive to this waiting station and then acquire a resource, being the 2 positions at the steel mill. You can put both controlpoints in a group and put the group on the resource. When it can pull that position let the train drive to that position. When the train leaves the steel mill, release the resource and the 3rd train will pull it and drive to it. That way you automatically have the train drive to the free available position.

0 Likes
Message 6 of 15

Amine
Not applicable
Thank you so much @Steven Hamoen it is an efficient solution. But I should respect the real situation of this transportation. the train drive to the waiting station if it finds 2 trains at the steel mill.
0 Likes
Message 7 of 15

SCHamoen
Advisor
Advisor
@Amine Then you can acquire the resource earlier before it starts to drive and use the "Max Wait Timer" if there is no place available at the steel mill. And if the max wait time is fired you take the other exit out of the activity and travel to the wait position where try to acquire a free position again but now without the max wait timer.
0 Likes
Message 8 of 15

Amine
Not applicable
@Steven Hamoen okay I will try this implentation, If you have some examples of this logic to see how to implemente that.
0 Likes
Message 9 of 15

SCHamoen
Advisor
Advisor

@Amine Here is a very simple sample model.

TrainWithControlPoints.fsm

0 Likes
Message 10 of 15

Amine
Not applicable

Hello @Steven Hamoen,

I will modify my simulation but I faced some difficulties.

I create a limite number of items (container) on queue1 as a source, and the train will load 2 items and tranport and unloead them at the steel mill and it leaves, and when the steel mill finishes the processing, it put them at queue2. Now I want to transport items from queue1 to queue2 by an available train and close to this queue2, to ensure a countinous process

0 Likes
Message 11 of 15

SCHamoen
Advisor
Advisor
@Amine I don't understand what your problem is. If you want the train to stop closer to queue2 just change the control point?


0 Likes
Message 12 of 15

Amine
Not applicable

@Steven Hamoen To give you more details.
The queue1 generate items that should be trensported by trains to the steel mill.

At the steel mill, the train unload items and it leaves.

When the steel mill finishes the processing, it put theese items at the queue2.

Now I want to return items from queue2 to queue1 by an available train and close the steel mill.

1737459627331.png

1737459581214.png

1737459588319.png

0 Likes
Message 13 of 15

SCHamoen
Advisor
Advisor
@Amine You can listen to then entry in the queue 2, so you get a token. And then let that token pull a train to be picked up and dropped off. Very similar to the sample model I send you. Instead of using the resource you can also use a list and put the trains on the list and use for instance a distance field to determine what available train is closest and pull that one.
0 Likes
Message 14 of 15

Amine
Not applicable
@Steven Hamoen Ok thank you so much.

But how can I get a token when the item moves to queue2.

And the distance field is an instance of the list train ?

0 Likes
Message 15 of 15

SCHamoen
Advisor
Advisor

@Amine I told you how to get a token, but maybe it was not clear enough. With listen I mean to use a event driven source that listens to the onentry of queue 2.

I made another sample model. Hopefully you can combine both models into what you need. TrainWithControlPoints_v2.fsm


0 Likes