Paul Toone avatar image
Paul Toone posted

AGV Way Points Page   

Redirect Via Search Popup

You can get to the Way Points page by right-clicking on a Path or Control Point and choosing AGV Network Properties.

A detailed conceptual explanation of Way Points can be found in Tutorial Lesson 2.

Way Points List - Here you can add, remove, re-order, and rename each Way Point.

Trigger Point - This defines when to fire the Way Point Logic. Options are:

  • On Pre-Arrival - The Way Point Logic will be fired at the point when the AGV would otherwise start to decelerate to stop at the Way Point.
  • On Arrival - The Way Point Logic will be fired when the AGV arrives at the Way Point. Note that if the Trigger Requirement is met and this Trigger Point is chosen, the AGV will slow to a stop at this Way Point and then fire the Way Point, even if the Way Point is not the AGV's final destination. Hence if you don't want the AGV to slow to a stop, you should use On Pre-Arrival.

Trigger Requirement - A field that should return 1 if the Way Point should be fired, 0 if not.

Way Point Logic - The code for the Way Point.

Way Point Members - The list of Control Points that are part of this Way Point. Here you can add, remove and re-order the members list.

Way Point Trigger Actions

Redirect via Search

Redirect via Search will redirect the AGV by search through the Control Point Connections of the Control Point the AGV is arriving at.

Redirect Via Search Popup



The condition field specifies when you should execute this action. The default (true) means always execute the action. You can use the drop-down button on the right to help you fill in this field.

Search Scope

Search Scope

Here you define the scope of the search. This includes a Search Start Point, which is the Control Point from which to start your search. The default, currentCP, is the Control Point where the AGV has arrived. Next, you define the set of Control Point Connections to search. The default, DropoffPoints, means that it will search all of currentCP's DropoffPoints connections, evaluating whether to dispatch to each of the resulting Control Points.
Search Scope 3D

Filter (WHERE)


The WHERE filter defines the criteria for dispatching to a given Control Point in the search. The default is:

  1. The Control Point is available, i.e. it is not claimed by another AGV.
  2. The Control Point has nothing in it, i.e. there is not a flow item at that location waiting to be picked up.

Prioritization (ORDER BY)

Order By

The ORDER BY parameter defines which Control Points are "best" to dispatch to if there are multiple matches. The default is to dispatch to the Control Point that is closest to currentCP.

Other Parameters

Other Parameters

New Destination - The new destination that you want to dispatch to. This is usually just the matched Control Point itself, i.e. destination.

Redirect Type - This parameter defines how you want to redirect the AGV. The options are:

  • Redirect as Final Destination - the AGV will finish the travel once arrive (as long as another Way Point doesn't redirect him again).
  • Redirect and Wait - the AGV will travel to the destination and wait until it is redirected again
  • Redirect and Continue - the AGV will travel to the destination and continue on to its original destination. If On-Arrival is chosen, the AGV will slow down to a stop at the intermediate destination before continuing. If On-Pre-Arrival is chosen, the AGV will just pass through the intermediate destination, not slowing down.

On Redirect - A piece of code to execute when a valid AGV is found.

Return On Destination Found - If checked, the Way Point trigger will discontinue execution if it finds an AGV to redirect to. The trigger will thus skip any subsequent logic. Sometimes you may daisy-chain multiple actions together, where you attempt to do one thing, and if you don't find anything to do, you try to do the next thing. If this is checked, then it will return when found, meaning you successfully found something to do for the AGV, and thus don't want to look for anything else.

Look For Work

This action will search for work to do and take up work when found.

condition - Defines the condition by which to look for work. Same as the Redirect Via Search condition.

Search Start Point / For Each - Defines the search scope. Similar to Redirect Via Search scope, except here it is searching the task sequence queues of the objects/Control Points in the search. The default only searches the task sequence queue of the AGV's current Control Point. You will often use the LookForWork action in conjunction with a FixedResource's Use Transport > Move Item Via AGV action. In such cases, task sequences will often be stored on the Control Points themselves, so the task queue search will be focused on Control Points' task queues.

Filter (WHERE) - Defines criteria for taking up a given task sequence, i.e. loading/unloading a specific flow item. Similar to the Redirect Via Search filter, but here the focus of the filter is focused on a flow item, namely a task sequence's load/unload flow item.

Prioritization (ORDER BY) - Defines prioritization. Again, like the Redirect Via Search prioritization, but here the focus is a flow item.

Additional Parameters - Similar to Redirect Via Search additional parameters.

Redirect Via Direct Reference

This action will redirect the AGV to another Control Point by a direct reference.

condition - Same as Redirect Via Search condition.

Destination - The reference to the Control Point/object to redirect to.

Additional Parameters - Similar to Redirect Via Search additional parameters.

Divert To Elevator

This action will divert the AGV to take an elevator. To properly set up diverting AGVs to elevators, you need to create a path-based connection between the floors, i.e. the AGV should be able to reach every floor through paths on the network (you usually can do this by creating a single straight path that travels vertically and connects with each floor). The path(s) that connect floors should be placed in such a way as to make the AGV pass over a Way Point Control Point that has the Divert To Elevator action defined.

condition - The criterion by which to divert the AGV. The default is that the z location of the AGV's current Control Point is different than the AGV's destination Control Point.

Elevator Team - This is a reference to the elevator team. The object should be a Dispatcher with output ports connected to the set of elevators to divert to. The default accesses an "Elevators" Control Point connection. If you use this default, you will need to add an "Elevators" object two-way connection to the Control Point Connections.

Search For Elevator Directly - If checked, this action will search the elevator teams output ports manually, using the WHERE and ORDER BY parameters to filter and prioritize the search, instead of just using the elevator team's dispatching logic.

Filter (WHERE) - Similar to Redirect Via Search filter, except here the search's focus are the individual elevators. The default is to find an elevator that is idle.

Prioritization (ORDER BY) - Similar to Redirect Via Search prioritization, except here the search's focus are the individual elevators. The default is to prioritize the elevator that is closest to the current floor.

Divert Point for Waiting - If an elevator is not found, you can specify here a Control Point to redirect to to wait for elevator availability. The default is to wait at the AGV's current Control Point.

Elevator > Floor Control Point Connection - This defines a Control Point connection that connects each elevator to a Control Point associated with that elevator on each floor. You will need to add an object two-way connection and then connect the elevator to each floor Control Point with that connection. The action will search for the floor control point closest to the AGV's current floor, and the control point closest to the AGV's destination floor, and use those control points in redirecting the AGV for entering/exiting the elevator.

Entry Control Point / Elevator Control Point / Exit Control Point - These are references, based off of the floor Control Point, that define where the AGV will go to enter and exit the elevator. The AGV will travel to the Entry Control Point and wait for the elevator to arrive at the floor. Once the elevator is at the floor and its door has opened, the AGV will travel to the Elevator Control Point, which is essentially the Control Point associated with being on the elevator. Then once the elevator has arrived at the destination floor and has opened its door, the AGV will be reconnected to the destination floor's Elevator Control Point, and will travel to the Exit Control Point. The defaults use "EntryCP" and "ExitCP" Control Point Connections, so if you use the default, you will need to add Control Point one-way connections in Control Point Connections.

Open Elevator Door Immediately - If checked, the elevator will open its door as soon as it arrives at the floor. If unchecked, the elevator will wait until the AGV has arrived at the Entry Control Point before opening its door.

Door Open Delay - The time it takes to open the elevator door. This is implemented simply as a delay time (no door-open animation is done).

Wait for Door to Close - If checked, the AGV will stop at the Exit Control Point and wait for the elevator door to close before continuing.

Door Close Delay - The time it takes to close the elevator door. Door Close Delay starts when AGV has reaches the Exit Control Point.

Wait For Control Point Availability

This action will wait for one of a set of Control Points to become available. When availability happens, all actions for the Way Point trigger will be refired. Usually you will place this action after a Redirect Via Search action, such that if nothing is found to redirect to, i.e. all Control Points are unavailable, you can wait for a Control Point to become available.

condition - Same as Redirect Via Search condition.

Start Point / Connection Path - These fields define a set of Control Points to "listen to" for availability. The Start Point is a Control Point to start at, usually the AGV's current Control Point (currentCP). Connection Path defines the Control Point Connection(s) fanning out from the Start Point that enumerate the Control Points to listen to. The default is DropoffPoints. DropoffPoints would be used, for example, if you have a loaded AGV that needs to get into a spur to drop off its item, but currently all drop-off spurs are taken. So, you wait for a Control Point to become available, and you listen for availability on each of the drop-off points associated with the AGV's current Control Point. For Connection Path, you can define a single Control Point Connection, as in the default DropoffPoints, or you can define "chained" connections, such as "NextLookForWork>DropoffPoints". This would start at the Start Point, and fan out first to all of its NextLookForWork connections, and then for each of those it would enumerate all of the DropoffPoints connections.

Wait For Work

This action will wait for work to arrive at a defined set of Control Points. This should be used in conjunction with the Use Transport > Move Item Via AGV action. When that action is used, flow items will be placed in the Control Points for pick up. This Wait For Work action will listen for when items enter those Control Points, and then will refire all actions for the Way Point again. Usually you will add the Wait For Work after a Look For Work action, such that if no work is found, you can then wait for work to arrive.

Wait For Defined Delay Time

This action will wait for a defined delay time and then refire the Way Point trigger's actions again. Usually you put this at the start of a Way Point trigger. This can implement some delay associated with the real-life decision making process, i.e. if it takes the real-life system 5 seconds to process a dispatching decision, you first wait for 5 seconds, then fire the decision logic.

flexsim users manualusers manual
5 |100000

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



paul.t contributed to this article


FlexSim 2016.1