question

Joe Hugan avatar image
0 Likes"
Joe Hugan asked Joe Hugan commented

Transporter Speed Question

I have a model where a transporter is approaching an intersection. Depending on the state of the intersection, the transporter may need to stop. I can use a pre-arrival event for a decision point on an AGV network to tell the vehicle to stop but the condition at the intersection may change while the vehicle is decelerating. If this is the case, I need to stop the deceleration and start accelerating again. If I could force a speed change to a non-zero condition, I could incrementally check the state of the intersection but I can only find a way to stop the vehicle. The acceleration and deceleration of these vehicles takes a long time so I need to do this without coming to a stop at a decision. Pre-arrival works well when I check a state and tell the vehicle to stop. If the intersection is in the proper state, the vehicle moves through without any speed change. Any ideas how to conditionally change the speed of a vehicle to a non-zero value?

FlexSim 19.0.2
transporterspeed change
· 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.

anthony.johnson avatar image
1 Like"
anthony.johnson answered Joe Hugan commented

I'm not sure of the exact circumstances of your model, but I created a sample model that shows two scenarios that do this. The first scenario I redirect the AGV to the control point as its final destination. Note that the end speed of the travel task is the max speed of the AGV. The AGV system models non-zero endspeeds by finishing the task before the AGV actually arrives at the control point. Thus when I redirect it to the control point as its final destination, it will immediately finish its current travel task and then start decelerating to stopped. In this case, to start it up again before he stops, I just give it a new task.

In the second scenario, I redirect the AGV with REDIRECT_AND_WAIT, meaning he should stop at the control point and wait to be redirected again. In this case, to redirect it again before it stops, I call the redirect() method again, and it'll start back up.

testagvredirect.fsm

Regarding Jordan's response, yes, OnPreArrival is based on the deceleration of the AGV. So if you make the AGV start decelerating based on a first OnPreArrival, no further OnPreArrival events will happen because the AGV is decelerating to stop. Don't know if that applies in your situation.


testagvredirect.fsm (28.2 KiB)
· 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.

Jordan Johnson avatar image
0 Likes"
Jordan Johnson answered Jordan Johnson commented

As far as I know, there isn't a simple way to do this. The only way I can think to approach it would be to use a sequence of control points approaching the intersection. The first one would check to see if the AGV needs to stop. If so, it would instruct the AGV to stop. As the AGV slows down, it could encounter the control points further in the sequence. Those would have code that checks if the AGV is stopping, and if so, check the intersection state again. If the intersection is clear, then they could redirect the AGV to a destination through the intersection. I think you can do this in OnPreArrival.

The downside is that you would need to add additional "checkpoints" to control how often the AGV checks the intersection. But I don't see a way around that, because I don't think you can change an AGV's travel between control points.

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