lint(standard): corrections completes mode standard
- Em dashes: 1712 remplaces par tirets simples (86 fichiers + _index.md, en-tete section Limagrain conserve) - Checklists: 24 '- [ ]' -> '- ☐' (3 pages operations, plus de todos Obsidian) - Ancres: 33 reparees (slugs GitHub + ancres HTML <a id> reconnues), 1 reciblee (manuel de reten) - related: tenseflow -> tense-flow, pie -> mechanical-elements, group.md retire (doublon shipping) - Registre: compteur global 122 -> 131 pages - Rapport racine _lint_report.md mis a jour (scan v2 + re-scan final: 0 anomalie) - Aucun fichier limagrain/ modifie (cloisonnement)
This commit is contained in:
@@ -25,7 +25,7 @@ last_compiled: "2026-04-17"
|
||||
EasyS is the 3D simulation front-end that speaks the same protocol as GALILEO. Running EasyS + EasyWMS Gateway on a dev VM lets you reproduce the full robotic flow (PIE → Miniload → PK → PS) without physical hardware. This page covers Gateway install, EasyS simulation configuration, PIE event injection, pick/shipping test flows, and station/route synchronisation procedures.
|
||||
|
||||
Shared demo environment (Mecalux France):
|
||||
- VM **ALL** on server **LYOITSW02** — IP `10.58.10.75`
|
||||
- VM **ALL** on server **LYOITSW02** - IP `10.58.10.75`
|
||||
- Credentials: `mecalux / mecalux`
|
||||
- Warehouse: `WRH_MIXTE` (miniload + conveyor path)
|
||||
|
||||
@@ -45,10 +45,10 @@ File: `C:\ProgramData\Mecalux\EasyWMS Gateway 2015\Config\MainObject.config`
|
||||
|
||||
1. Set **tenantCode** = the WMS tenant you want to target
|
||||
2. Fill the **TokenUser** connection section (not `ClientUser`)
|
||||
3. Passwords must be encrypted — run `PasswordEncrypt.exe` from `C:\Program Files\Mecalux\EasyWMS Gateway 2015`
|
||||
3. Passwords must be encrypted - run `PasswordEncrypt.exe` from `C:\Program Files\Mecalux\EasyWMS Gateway 2015`
|
||||
4. Start the Windows service **EasyWMSGateway2015**
|
||||
|
||||
Logs go to `C:\ProgramData\Mecalux\EasyWMS Gateway 2015\Logs\AllLog.log` — see [Galileo Troubleshooting](galileo-troubleshooting.md).
|
||||
Logs go to `C:\ProgramData\Mecalux\EasyWMS Gateway 2015\Logs\AllLog.log` - see [Galileo Troubleshooting](galileo-troubleshooting.md).
|
||||
|
||||
## 2. Open port 3000 on the VM
|
||||
|
||||
@@ -82,8 +82,8 @@ Every miniload location must be bound to a **rack type** with the exact dimensio
|
||||
|
||||
At each PIE pass, GALILEO returns:
|
||||
|
||||
- **PLC Container Type** — derived from width
|
||||
- **PLC Height Type** — derived from height
|
||||
- **PLC Container Type** - derived from width
|
||||
- **PLC Height Type** - derived from height
|
||||
|
||||
Procedure:
|
||||
|
||||
@@ -108,10 +108,10 @@ To simulate a TK, add an **Automatic Aisle**. The aisle ↔ rack link works like
|
||||
| Automatic Aisle | Stacker crane / Miniload |
|
||||
| PIE | Entry identification (label + weigh) |
|
||||
| Picking (PK) | Picking conveyor |
|
||||
| PKE | PK entry control — if full, recirculate |
|
||||
| PKE | PK entry control - if full, recirculate |
|
||||
| Inbound Table (ME) | Conveyor into the TK/Miniload |
|
||||
| Outbound Table (MS) | Conveyor out of the TK/Miniload |
|
||||
| CME | TK/Miniload entry control — if full, recirculate |
|
||||
| CME | TK/Miniload entry control - if full, recirculate |
|
||||
| Outbound Post | Exit conveyor (operator can pick the container up) |
|
||||
| MP | Preparation table (stock drop after pick) |
|
||||
| Transporter | Plain conveyor with no special function |
|
||||
@@ -122,12 +122,12 @@ Full catalogue: [Stations & Routes](../concepts/stations.md); translation matrix
|
||||
|
||||
Two layout patterns for double-depth racks:
|
||||
|
||||
- **Case #1** (most common at Mecalux France) — best for **mono-product** supports (several supports share the same item inside the TK). Rotation zones split by front face / rear face.
|
||||
- **Case #2** — best for **multi-product** supports (a given item never lives in two supports simultaneously). Reduces relocations during picking without pre-emptive defragmentation.
|
||||
- **Case #1** (most common at Mecalux France) - best for **mono-product** supports (several supports share the same item inside the TK). Rotation zones split by front face / rear face.
|
||||
- **Case #2** - best for **multi-product** supports (a given item never lives in two supports simultaneously). Reduces relocations during picking without pre-emptive defragmentation.
|
||||
|
||||
### 3.7 Route configuration
|
||||
|
||||
Every movement needs a route in EasyS between origin and destination. A single task `PIE → Miniload` typically generates **4 movements** — the WMS creates one task, but the routing table must allow every hop.
|
||||
Every movement needs a route in EasyS between origin and destination. A single task `PIE → Miniload` typically generates **4 movements** - the WMS creates one task, but the routing table must allow every hop.
|
||||
|
||||
> If no path exists, EasyWMS generates a **reject task** toward the reject station.
|
||||
|
||||
@@ -147,7 +147,7 @@ Multiple containers can sit on a TE/TS at once:
|
||||
|
||||
1. Size the table large enough physically
|
||||
2. Lay out containers in **Positions** (side by side) and **Stack** (one behind the other)
|
||||
3. **Logical X = 991** — except tables embedded in the rack, which inherit the replaced location's coordinates
|
||||
3. **Logical X = 991** - except tables embedded in the rack, which inherit the replaced location's coordinates
|
||||
|
||||
### 3.9 Multidirectional tables (LTM)
|
||||
|
||||
@@ -157,7 +157,7 @@ Set `routing options = 1` for every feeder conveyor allowed to deposit a contain
|
||||
|
||||
1. Add a conveyor with role **Picking**
|
||||
2. Create a **Workstation** to drive the station from SmartUI
|
||||
3. Define routes — where stock can arrive from, where it can leave to
|
||||
3. Define routes - where stock can arrive from, where it can leave to
|
||||
|
||||
Preparation table (TP/MP) routes:
|
||||
- **Manual** route from picking table → preparation tables
|
||||
@@ -172,7 +172,7 @@ The reject route lets the WMS redirect containers with no valid route.
|
||||
- Add a **VIRTUAL** route → floor zone so lost containers are moved off the simulation automatically
|
||||
- Reject routes render in **red**. Unlike normal routes, the red route gives the **task destination** (not the movement destination).
|
||||
|
||||
Different rejection reasons (`IdentError`) can point to different destinations — see [IdentErrorType](https://msscc.mecalux.com/documentation/Development/master/ES/apis/easywms/Domain/IdentErrorType.md).
|
||||
Different rejection reasons (`IdentError`) can point to different destinations - see [IdentErrorType](https://msscc.mecalux.com/documentation/Development/master/ES/apis/easywms/Domain/IdentErrorType.md).
|
||||
|
||||
## 4. SmartUI workstation configuration
|
||||
|
||||
@@ -183,14 +183,14 @@ Companion configuration once the EasyS layout is in place.
|
||||
Each preparation table is linked to a picking station. After picking confirmation, stock moves from the container to the chosen preparation table.
|
||||
|
||||
**Assignment mode:**
|
||||
- **Automatic** — WMS assigns the next order to a table
|
||||
- **Manual** — operator assigns via **Menu → Control → Picking-station assignment**
|
||||
- **Automatic** - WMS assigns the next order to a table
|
||||
- **Manual** - operator assigns via **Menu → Control → Picking-station assignment**
|
||||
|
||||
> ⚠️ In manual mode, **tasks do not generate until the shipping order is assigned to a table**.
|
||||
|
||||
To switch mode: **Menu → Control → Workstations** → select preparation table(s) → **Modify assignment mode**.
|
||||
|
||||
> ⚠️ The preparation table must have a route to the shipping dock of the order — otherwise tasks won't generate.
|
||||
> ⚠️ The preparation table must have a route to the shipping dock of the order - otherwise tasks won't generate.
|
||||
|
||||
### 4.2 Picking table max-concurrent orders
|
||||
|
||||
@@ -206,7 +206,7 @@ To cap how many orders a picking table can handle in parallel:
|
||||
2. Click **Start**
|
||||
3. Enter the WMS server IP → **Next**
|
||||
4. Uncheck **Generate simulation report** → click **Simulation 3D**
|
||||
5. Watch the Gateway log (`AllLog.log`) — lots of lines with no errors = connection OK
|
||||
5. Watch the Gateway log (`AllLog.log`) - lots of lines with no errors = connection OK
|
||||
|
||||
## 6. Inject a container at the PIE
|
||||
|
||||
@@ -218,9 +218,9 @@ To cap how many orders a picking table can handle in parallel:
|
||||
- Container Type: corresponding PLC Container Type
|
||||
- Weight
|
||||
- Height Type: corresponding PLC Height Type
|
||||
4. Click **Save** — a pallet/bin visibly moves on the conveyor
|
||||
4. Click **Save** - a pallet/bin visibly moves on the conveyor
|
||||
|
||||
> ⚠️ **Valid putaway strategies must exist** — even for empty containers. No valid location ⇒ reject.
|
||||
> ⚠️ **Valid putaway strategies must exist** - even for empty containers. No valid location ⇒ reject.
|
||||
|
||||
### Simulate a read error
|
||||
|
||||
@@ -228,7 +228,7 @@ Tab **Scripts** on the PIE → **Prepare event** → paste:
|
||||
```
|
||||
machine.Flags = "256";
|
||||
```
|
||||
Then inject the container. `256` = barcode error (see [GALILEO Integration — PIE flag table](../architecture/galileo-integration.md)).
|
||||
Then inject the container. `256` = barcode error (see [GALILEO Integration - PIE flag table](../architecture/galileo-integration.md)).
|
||||
|
||||
## 7. Extract a container from the miniload
|
||||
|
||||
@@ -258,7 +258,7 @@ On order release, the WMS:
|
||||
|
||||
Tasks are of type `pickingContainer`. After pick confirmation: **Store container** → **Liberate** to return the container to the miniload.
|
||||
|
||||
> Verify preparation-table config **before** launching an order — tasks won't generate if routes to the dock are missing.
|
||||
> Verify preparation-table config **before** launching an order - tasks won't generate if routes to the dock are missing.
|
||||
|
||||
## 8. Speed up simulation
|
||||
|
||||
@@ -287,7 +287,7 @@ Context.StationRoutes.Where(sr => sr.Manager.ToString() == "Galileo")
|
||||
? sr.StationTo.RealLocations.FirstOrDefault().LogicalCoordinate.Side : 0,
|
||||
AisleNumber = sr.StationTo.AisleNumber
|
||||
})
|
||||
// union with StationFrom — full query on Confluence
|
||||
// union with StationFrom - full query on Confluence
|
||||
.OrderBy(sr => sr.StationType)
|
||||
.ThenBy(sr => sr.StationNumber)
|
||||
```
|
||||
@@ -315,16 +315,16 @@ More diagnostic steps: [Galileo Troubleshooting](galileo-troubleshooting.md).
|
||||
|
||||
## Common errors
|
||||
|
||||
- **Container injected at PIE but immediately rejected** — no valid putaway strategy covers the (container type, height type) combo, or no route exists to any storage location
|
||||
- **Tasks don't generate after order launch** — preparation table has no route to the dock, or assignment mode is Manual and the order isn't assigned
|
||||
- **Station stays loaded indefinitely in EasyS** — Manual Action ticked without running Liberate
|
||||
- **Gateway starts but no activity** — wrong `tenantCode` or `TokenUser` password; check Gateway log
|
||||
- **Connection refused from EasyS** — port 3000 not open, or Gateway service not started
|
||||
- **Container injected at PIE but immediately rejected** - no valid putaway strategy covers the (container type, height type) combo, or no route exists to any storage location
|
||||
- **Tasks don't generate after order launch** - preparation table has no route to the dock, or assignment mode is Manual and the order isn't assigned
|
||||
- **Station stays loaded indefinitely in EasyS** - Manual Action ticked without running Liberate
|
||||
- **Gateway starts but no activity** - wrong `tenantCode` or `TokenUser` password; check Gateway log
|
||||
- **Connection refused from EasyS** - port 3000 not open, or Gateway service not started
|
||||
|
||||
## Related
|
||||
|
||||
- [GALILEO Integration](../architecture/galileo-integration.md) — protocol reference
|
||||
- [Galileo Troubleshooting](galileo-troubleshooting.md) — log patterns, fault codes
|
||||
- [Robotics Project Lifecycle](robotics-project-lifecycle.md) — where simulation fits in the project plan
|
||||
- [GALILEO Integration](../architecture/galileo-integration.md) - protocol reference
|
||||
- [Galileo Troubleshooting](galileo-troubleshooting.md) - log patterns, fault codes
|
||||
- [Robotics Project Lifecycle](robotics-project-lifecycle.md) - where simulation fits in the project plan
|
||||
- [VM Installation](vm-installation.md) · [VM Network Routing](vm-network-routing.md)
|
||||
- [Stations & Routes](../concepts/stations.md) · [Mechanical Elements](../concepts/mechanical-elements.md) · [Putaway](../concepts/putaway.md)
|
||||
|
||||
Reference in New Issue
Block a user