This lesson extends the previous lesson to take you deeper into AGV simulation concepts.
What You Will Learn
- How AGV speeds are determined
- How to dispatch to spurs in the AGV network for pick-up
- How to implement work polling
- How Control Areas Work
Time to Complete
This lesson should take approximately 15-20 minutes to complete.
AGV Model Overview
Lesson 3 will start where Lesson 2 left off. From that point we will add spurs to our network for loading multiple items from the same location. We will implement triggers on the AGV team's OnResourceAvailable to direct AGVs to their next work location. Finally, we will define custom max speeds for the curved paths and spurs.
Click here for the Step-By-Step Tutorial.
New Concepts
AGV Types
The AGV module includes a flexible method for determining AGV speeds and other AGV-specific attributes. First, the AGV network categorizes its member AGVs into AGV Types. An AGV Type correlates to a specific AGV's "make and model". An AGV vendor may sell several different lines of AGVs, some for transportation of heavy loads, some for medium loads and so on. With each of these models comes a spec sheet that defines the carrying capacity, max speeds, battery capacity, battery usage, etc. In FlexSim, an AGV Type would correspond to one of these vendor-specific AGVs.
By default, a FlexSim AGV model has only one AGV Type, called DefaultAGV. You can add, remove, and configure AGV Types by right-clicking on a Path or Control Point, and choosing AGV Network Properties. Then click on the AGV Types tab. Here you will see the list of AGV Types defined in your model, along with the specs for each AGV Type.
To define AGV Type for an AGV object in your model:
- Make sure the AGV has been added to the AGV network with an "A" connect (there should be a red line drawn to its reset Control Point).
- Click on the AGV.
- In Quick Properties on the right, in the AGV Type panel, choose the desired AGV Type in the drop-down. Note that since a default FlexSim AGV model only has one AGV Type, DefaultAGV will be the only option starting off. Again, you can add more AGV Types through the AGV Types tab.
You can also batch-define AGV Type for multiple AGVs by selecting them all, doing the above steps for one of them, and then pressing the popup button "Apply To All Selected."
AGV Type Specs
An AGV's acceleration and deceleration are determined by 2 factors:
- Its AGV Type
- What it is currently carrying (its Load Type)
An AGV's max speed is determined by 4 factors:
- Its AGV Type
- The type of path, or Path Class, it is currently traveling on
- Whether it is traveling forward or backward
- What it is currently carrying (its Load Type)
An AGV's non-idle battery usage, defined in Amps, is determined by 2 factors:
- Its AGV Type
- What it is currently carrying (its Load Type)
An AGV's battery capacity, idle battery usage, and recharge rate are determined solely by the AGV's AGV Type.
All of these factors are encapsulated in the AGV Type table. Each AGV Type has its own table.
Load Types
Load Types are a user-defined list defining categories for what an AGV is carrying. This allows you to break out AGV speeds by the AGV's current load. Each time an AGV starts a travel operation, it will set its current Load Type. This is done in the Initialize Travel trigger. Here you can customize which Load Type the AGV should use for a given travel operation. You can add a Load Type, and then specify the acc/dec, speed and battery usage parameters for that Load Type in its corresponding column of the AGV Type table.
Path Classes
Path Classes are a user-defined list of path categories that allow you to break out AGV speeds based on the path the AGV is on. Each path in your model has an assigned Path Class. To change a Path's path class:
- Click on the Path in the 3D view.
- In Quick Properties on the right, in the Straight Path or Curved Path panel, choose the desired Path Class from the drop-down.
You can also batch-define the Path Class for multiple Paths by selecting them all, doing the above steps for one of them, and then pressing the popup button "Apply To All Selected."
Control Areas
Control Areas enable more fine-tuned control over who gets into and out of an area. Control Areas are especially useful in controlling traffic at intersection points.
Take for example an intersection where AGVs branch off to multiple spur locations.
When an AGV travels along a path, it looks ahead to its next Control Point and claims that Control Point before traveling to it. If the paths of two AGVs cross but do not need to claim the same Control Point, as in the picture above, then they may run into each other. This is where Control Areas can be used.
As an AGV looks ahead to claim its next Control Point, if the AGV's path enters a Control Area before reaching the next Control Point, then the AGV must additionally claim the Control Area before proceeding. If it cannot claim both the Control Point and the Control Area, then it will leave both unclaimed and wait until both can be claimed before continuing to the Control Point.
You can have any number of Control Areas between two Control Points. The AGV must claim all Control Areas between it and its next Control Point, plus the Control Point itself, before continuing to the next Control Point.
Creating Control Areas
To create a Control Area:
- Click on the Control Area tool in the library.
- Click-release at the point in the model where you want to place a corner of the Control Area.
- Move the mouse to the location in the model where you want the other corner of the Control Area
- Click-release at the other corner's position.
Build the Model
Now build the tutorial model with the step-by-step instructions.