màj wiki avec retour MES lot-5 AD
This commit is contained in:
@@ -0,0 +1,285 @@
|
||||
---
|
||||
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 `<AGVConfig>` 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
|
||||
Reference in New Issue
Block a user