--- title: "AGV - Automated Guided Vehicles" type: module sources: - areas/agvs/index.md - areas/agvs/agv.md - areas/agvs/monitoring/monitoring.md - areas/agvs/monitoring/agv_tasks.md - areas/agvs/monitoring/status_messages.md - areas/agvs/monitoring/cancel_order.md - areas/agvs/monitoring/terminate_order.md - areas/agvs/monitoring/export_messages.md - areas/agvs/monitoring/import_messages.md - areas/agvs/manage_errors/manage_errors.md - areas/agvs/manage_errors/communication_errors.md - areas/agvs/manage_errors/configuration_errors.md - areas/agvs/manage_errors/execution_errors.md - areas/agvs/manage_errors/extraction_error.md - areas/agvs/manage_errors/putaway_error.md - areas/agvs/manage_errors/locktype.md - areas/agvs/manage_errors/trf_movements.md - areas/agvs/configuration/initial_configuration.md - areas/agvs/notificationevents.md - areas/agvs/views/agv_stations_view.md - areas/agvs/views/agv_tasks_view.md - areas/agvs/views/agv_export_view.md - areas/agvs/views/agv_import_view.md - areas/agvs/views/agv_status_view.md - sources/archives/Présentation Module AGV.md - sources/archives/Documentation Module AGV.md related: - modules/pallet-shuttle.md - concepts/task.md - concepts/location.md - concepts/container.md - concepts/stations.md - operations/agv-installation.md last_compiled: "2026-05-15" --- # AGV - Automated Guided Vehicles ## Overview An Automated Guided Vehicle (AGV) is a warehouse transport machine similar to a forklift truck that moves automatically along pre-planned paths. AGVs integrate with Easy WMS to execute container transport tasks autonomously, eliminating the need for human operators on repetitive movement routes. AGVs are created and configured in EasyS or EasyAssistant as station-type elements, assigned to an AGV equipment group. Easy WMS communicates with the AGV system through a database-table-based messaging interface, sending transport orders and receiving execution confirmations. AGVs dramatically improve throughput in automatic warehouses by handling putaway, replenishment, shipping preparation, and cross-location transfers continuously. The AGV module also supports [Pallet Shuttle](pallet-shuttle.md) movements - AGVs can transport pallet shuttle carts between compact rack channels, eliminating the need for manual forklift intervention. ## Key capabilities - Autonomous container movements: floor → inbound conveyor (PIE), conveyor → storage, storage → stage/dock, storage → storage, AGV → storage - Pallet shuttle transport: move PS carts between compact rack channels (with electromagnet attachment) - Task prioritization: urgent orders are assigned first; priority can be modified before AGV assignment - RFT fallback: when AGVs are unavailable, operators can execute AGV tasks manually via radio frequency terminal - Order cancellation and relocation: if an order is canceled mid-execution, Easy WMS searches for a valid putaway location for any loaded container - Full message exchange monitoring: export (WMS→AGV) and import (AGV→WMS) message queues are visible and auditable ## Architecture ### System components The AGV module relies on a four-component architecture where Easy WMS and the fleet manager never communicate directly. All exchanges go through an intermediary PostgreSQL database: ``` ┌─────────────────┐ │ Easy WMS │ Workflows generate AGV tasks when a movement │ (IIS App + │ traverses a route assigned to an AGV station │ Oracle DB) │ (station type 65, configured in EasyS). └────────┬─────────┘ │ AGV workflows ▼ ┌─────────────────┐ │ Gateway AGV │ Windows service polling the exchange tables. │ (service) │ Serializes WMS tasks → agv_outputqueue/agv_eag │ │ Reads fleet responses → agv_inputqueue/agv_age/agv_ags └────────┬─────────┘ │ DBLink Oracle → PostgreSQL (dg4odbc + ODBC) ▼ ┌─────────────────┐ │ PostgreSQL DB │ Intermediary database hosting 5 exchange tables. │ (AGV schema) │ Accessed by WMS via Oracle synonyms and by │ │ the fleet manager directly or via middleware. └────────┬─────────┘ │ Direct SQL or middleware adapter ▼ ┌─────────────────┐ │ Fleet manager │ External software controlling the physical │ (iGO, Rocla, │ vehicles. Vendor-agnostic: any system that │ MAP, etc.) │ can read/write the 5 tables is compatible. └─────────────────┘ ``` The AGV module is **fleet-manager agnostic**. The exchange protocol relies on 5 intermediary tables in PostgreSQL. Any fleet manager able to read and write these tables - directly or through a middleware adapter - can be integrated without modifying Easy WMS workflows, the Gateway, or the monitoring views. ### Exchange tables The intermediary PostgreSQL database contains 5 functional tables plus sequences and a migration tracking table. The Gateway AGV creates them automatically on first startup. | Table | Direction | Purpose | |-------|-----------|---------| | `agv_outputqueue` | WMS → Fleet manager | Output queue - transport orders emitted by WMS (create, update, cancel) | | `agv_eag` | WMS → Fleet manager | Order detail - requested operation (Create/Update/Delete) and transport parameters | | `agv_inputqueue` | Fleet manager → WMS | Input queue - responses and events from the fleet manager | | `agv_age` | Fleet manager → WMS | Transport events - phase changes (accepted, vehicle assigned, loaded, unloaded, canceled) | | `agv_ags` | Fleet manager → WMS | Vehicle status events - AGV state (ready, breakdown, charging, low battery) | The Gateway AGV writes to `agv_outputqueue` / `agv_eag` and reads `agv_inputqueue` / `agv_age` / `agv_ags`. The fleet manager (or its middleware) does the reverse. ### Gateway AGV The Gateway AGV is a Windows service provided by Mecalux. It bridges the internal Easy WMS workflows with the PostgreSQL exchange tables. Its responsibilities include: serializing AGV tasks created by workflows into `agv_outputqueue` / `agv_eag`, reading inbound events from `agv_inputqueue` / `agv_age` / `agv_ags` and injecting them into the workflow engine, and managing polling cycles (configurable frequency, typically 1 second via `inputCycleDelay` / `outputCycleDelay`). Configuration resides in an XML file under `C:\ProgramData\Mecalux\EasyWMS GatewayAGV 2015\`. Key parameters: `connectionString` (PostgreSQL connection), `stationType` (65 for AGV), `stationNumber`, `warehouseNumber`, `commitLimit`, `hoursToExecute`, `daysToSave`. The file must contain exactly one `` section - multiple sections cause a startup crash. ### DBLink Oracle → PostgreSQL Easy WMS runs on Oracle. To allow workflows to read and write the PostgreSQL exchange tables, a DBLink is configured using the Oracle component **dg4odbc** (Database Gateway for ODBC). Oracle synonyms are created in the `db_read` schema so that PostgreSQL tables appear as local Oracle tables. This DBLink is the most delicate component of the installation - it touches 5 Oracle configuration files (tnsnames.ora, listener.ora, initPostgreSQL35W.ora, the ODBC System DSN, and the CREATE DATABASE LINK statement) and requires strict consistency on names and case sensitivity. See [AGV Installation Guide](../operations/agv-installation.md) for the step-by-step procedure. ### Communication protocol Easy WMS and the AGV system exchange messages via **database tables** (not REST or direct API calls). The standard execution flow for a transport order: | Phase | Direction | Meaning | |-------|-----------|---------| | WMS sends order | WMS → AGV | Transport order request created | | `00` | AGV → WMS | Order accepted | | `03` | AGV → WMS | Vehicle assigned | | `04` | AGV → WMS | Load permission request (if `Can Pick` = false) | | WMS sends load auth | WMS → AGV | Load authorization with AGV assignment | | `06` | AGV → WMS | Load confirmed | | `08` | AGV → WMS | Unload permission request (if `Can Drop` = false) | | WMS sends unload auth | WMS → AGV | Unload authorization | | `10` | AGV → WMS | Unload confirmed - order complete | | `255` | AGV → WMS | Order canceled by AGV | ### AGV station attributes | Field | Description | |-------|-------------| | Code | Unique AGV station identifier | | Control status | Current status: available, breakdown, loading, etc. | | Number | Unique per station type per warehouse | | Brand / Model | AGV hardware identification | ### AGV task attributes (key fields) | Field | Description | |-------|-------------| | Task number | WMS-generated unique order number | | Load type | `0` = Container, `1` = Pallet Shuttle | | Load location / Unload location | WMS station code or location | | Can pick / Can drop | Whether AGV system must request load/unload permission from WMS | | Load aisle / Unload aisle | Mandatory in FIFO compact racks; optional in LIFO | | Priority | Execution priority - most urgent tasks dispatched first | | Previous task | Chained task dependency | ## Configuration ### Initial setup (minimum required) 1. Configure warehouse layout in EasyS or EasyAssistant: - Create a warehouse station linked to an **AGV equipment group** - Add at least one AGV in the group - Configure **routes** from the AGV station to all allowed movement locations 2. Valid location types for AGV movements: conventional rack, compact (single/multi), dynamic, pushback, cantilever, stage, dock, PIE (inbound conveyor), ET (deposit/loading conveyor) 3. Locations that allow AGV movements must have a **manual loading aisle** configured 4. Optionally enable/disable the `Allow loading` and `Allow unloading` flags per location - when disabled, the AGV system requests permission from WMS before proceeding ### Lock type for AGV errors A dedicated **location lock type** with the **"For AGV"** flag must be created to manage extraction/putaway errors on non-conventional or non-APS storage locations. Only one such lock type can exist per warehouse. Configure from: **Masters > Lock types > Location lock types** via `Mark for AGV` / `Unmark for AGV` actions. ## Operations ### Monitoring (PC - AGVs menu) | View | Purpose | |------|---------| | AGV Stations | List of registered AGVs with control status | | AGV Tasks | All transport orders with status, priority, load/unload locations | | Export Messages | Messages sent by WMS to AGV system (order creation, update, cancel, auth) | | Import Messages | Messages received from AGV system (phases 00/03/04/06/08/10/255) | | Status Messages | AGV status updates: Ready (green), Failure (red), Waiting (gray), Low battery (yellow), Charging (blue) | ### Task lifecycle management - **Cancel task**: available in Tasks view (Warehouse menu). Two scenarios: (1) AGV not yet loaded → order removed from queue and AGV system notified; (2) AGV has container loaded → WMS searches for valid putaway location using configured strategies; if none found, user notified for manual action - **Finish task manually**: available when AGV is blocked (e.g., physical obstacle). User confirms the unload location manually. ### RFT fallback (AGV Movements menu on RFT) When AGVs are unavailable, operators use the "AGV Movements" option on RFT. Tasks can be filtered by zone. Order selection follows picking process: confirm container at load location, confirm unload location. Issue types during RFT execution: - **Loading issues**: Container not found (→ Lost & Found), Mark for review (→ creates count for location) - **Unloading issues**: Mark for review (→ count created, enter alternate unload location), Mark as full (blocks location), Other location (change unload destination) ## Errors & troubleshooting ### Error categories | Category | Description | |----------|-------------| | Configuration errors | Incorrect load/unload station, duplicate order ID, invalid operation type, unload station modification after phase 03, priority modification after assignment | | Execution errors | Extraction error (no container at pickup), putaway error (destination occupied), container mismatch, no valid relocation found | | Communication errors | Failures sending order (2500), priority update (2501), cancellation (2502), destination change (2503) | ### Extraction error behavior - **Conventional rack / APS locations**: Task canceled; location marked with "Mark for review" lock type - **Other storage locations**: Task canceled; location marked with "For AGV" lock type - **Non-storage locations (stage/dock)**: Task NOT canceled; AGV held pending manual action; user notified ### Putaway error behavior - **Conventional rack / APS locations**: WMS searches for a relocation; location marked with "Mark for review" lock type - **Other storage locations**: WMS searches for relocation; location marked with "For AGV" lock type - **Non-storage locations**: AGV held pending manual action; user notified ### All notification events subscribe under the **AGV** notification group. Severity: Error for all. Subscribable by: SuperAdmin, Administrators, Managers. | Code | Error | |------|-------| | 1001 | Incorrect load station | | 1002 | Incorrect unload station | | 1003 | Duplicate transport order | | 1004 | Invalid operation type | | 1010 | Unload station modification error (phase 03+) | | 1011 | Priority modification error (after assignment) | | 1012 | Inactive transport order | | 1013 | Null task number | | 1014 | Inconsistent AGV movement (e.g., unload when not loaded) | | 2003 | Extraction error at non-storage location | | 2004 | Putaway error at non-storage location | | 2005 | Manual cancellation from AGV interface | | 2500–2503 | Communication errors (order/priority/cancel/destination) | ## Fleet manager integration ### Standard protocol (direct SQL) The default integration method assumes the fleet manager (or a middleware adapter) reads and writes directly in the PostgreSQL exchange tables. This is the simplest approach and requires no additional component beyond the Gateway AGV and the PostgreSQL database. ### REST-based fleet managers (middleware pattern) Some fleet managers do not read/write SQL tables directly and instead expose a REST API. This is the case for **iGO easy** (STILL / KION Group). To integrate such systems without modifying Easy WMS workflows or the Gateway, a **middleware** is inserted between the exchange tables and the fleet manager API: ``` EasyWMS → Gateway AGV → Tables AGV_* → Middleware → Fleet manager REST API ← (webhooks) ← ``` The middleware performs two functions: an **outbound pump** (polls `agv_outputqueue`, reads orders from `agv_eag`, translates them into REST calls to the fleet manager API) and a **webhook receiver** (receives callbacks from the fleet manager on transport/vehicle state changes, translates them into rows in `agv_inputqueue` / `agv_age` / `agv_ags`). This architecture preserves full compatibility: workflows, Gateway, monitoring views, and RFT fallback all work identically to the standard protocol. ### Concept mapping (EasyWMS ↔ fleet manager) | Easy WMS concept | Typical fleet manager equivalent | |------------------|----------------------------------| | AGV Task (AgvTask) | Transport | | AGV Station (type 65) | Vehicle | | Container / LPN | Load | | Location | Location / Position | | Working zone | Group (enables late-decision routing) | | Load type | LoadType | The **Group** concept on the fleet manager side enables "late decision" routing: the WMS creates a transport toward a group of destinations, and the fleet manager requests the final destination when the vehicle reaches a decision point. This reproduces the CanPick/CanDrop authorization phases (04/08) through a different mechanism. ## Prerequisites | Element | Requirement | |---------|-------------| | Easy WMS binaries | Version **18.10.22154.1** minimum | | PostgreSQL | Version >= 14 | | PostgreSQL ODBC driver | psqlodbc x64 | | Oracle | DBLink dg4odbc configured on `db_read` schema | | Network | PostgreSQL port open (5432 default, 5433 if PostgreSQL 18+) | For the complete installation procedure, see [AGV Installation Guide](../operations/agv-installation.md). ## Related - [Pallet Shuttle](pallet-shuttle.md) - AGVs transport PS carts between compact rack channels; battery management automated via AGV - [Task](../concepts/task.md) - AGV orders appear as tasks in the warehouse task system - [Location](../concepts/location.md) - Location types compatible with AGV movements; lock types configuration - [Container](../concepts/container.md) - Containers are the primary payload of AGV transport orders - [Stations](../concepts/stations.md) - AGV stations (type code: AGV), routes, fleet manager integration - [AGV Installation Guide](../operations/agv-installation.md) - Step-by-step installation: PostgreSQL, ODBC, DBLink dg4odbc, Gateway, module deploy, troubleshooting