--- title: "Configuration Galileo - Limagrain" tags: [stockage, galileo, TMS, architecture, IT, filmage, PIE] status: draft standard_ref: architecture/galileo-integration.md jira_refs: [LIM-115] confluence_refs: [] sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Jira LIM-115 (lecture directe 2026-07-20)"] last_updated: 2026-07-20 author: Arthur --- # Configuration Galileo - Limagrain > **Résumé** : architecture logicielle IT de l'installation Limagrain et > spécificités de la configuration Galileo (TMS). > **Standard EasyWMS** : → voir [GALILEO Integration](../../architecture/galileo-integration.md), > [System Architecture](../../architecture/overview.md) > Ce qui suit documente les **spécificités Limagrain** par rapport au standard. ## Contexte projet EasyWMS gère l'entrepôt automatique Limagrain avec une base Oracle. Le TMS Galileo contrôle les 4 transstockeurs, les convoyeurs, navettes et stations PIE. Les AGV sont gérés par un fournisseur tiers (non Galileo). ## Architecture logicielle ```mermaid graph TD SAP[SAP EWM] -->|XML / Webservice| GNA[EasyWMS GNA] GNA --> EWMS[EasyWMS Serveur] EWMS --> BBDD[(Oracle DB)] EWMS --> GW[EasyWMS Gateway] GW -->|TCP 3000| GAL[Galileo TMS] GAL --> TK[Transstockeurs x4] GAL --> CONV[Convoyeurs] GAL --> NAV[Navettes] GAL --> PIE[Stations PIE x3] EWMS --> LP[Label Printer Service] EWMS --> WEB[Application Web EasyWMS] EWMS --> PC[Application PC EasyWMS] WEB --> TRF[Terminaux RF] AGV[AGV - Fournisseur tiers] -.->|Interface séparée| EWMS ``` ### Composants serveur EasyWMS | Composant | Rôle | |-----------|------| | Application serveur EasyWMS | Services de logique et gestion | | Oracle DB | Base de données | | EasyWMS GNA | Communication ERP (SAP) via XML/Webservice | | EasyWMS Gateway | Communication Galileo (protocole frames TCP) | | EasyWMS Label Printer | Impression étiquettes et documents | ### Communication ERP - **Protocole** : XML + Webservice - **ERP** : SAP EWM - **Direction** : bidirectionnelle (voir [Messages ERP](../06-erp-interface/messages-reference.md)) ## Stations PIE - Configuration spécifique 3 stations PIE installées : | Station | Côté | Usage principal | |---------|------|----------------| | PIE_01 | Quais (production) | Réception production directe | | PIE_02 | Postes de travail | Réception ext./retours après traitement | | PIE_03 | Postes de travail | Idem PIE_02 | ### Mode d'insertion PIE - **Mode normal** (known containers) : rejet si RFID inconnue - [CUSTOM] Pas de message ASO au passage PIE - [CUSTOM] Vérification poids avec tolérances par type article - [CUSTOM] Mise à jour du « Poids de l'unité » du conteneur à chaque passage ### Contrôle au PIE | Contrôle | Valeur limite | |----------|---------------| | Dimensions max | 1300 × 1100 × 1900 mm | | Poids max | 1250 kg | | État palette bois | Correct (visuel Galileo) | | Lecture RFID | Obligatoire - doit être connue (ASN) | ## Flux physiques dans l'entrepôt Les flux sont majoritairement réalisés par des **AGV** (fournisseur tiers). EasyWMS communique les points de prise et de dépose ; le sens de prise/dépose est géré par le fournisseur AGV. Deux entrées dans l'ASRS : | Entrée | Côté | Usage | |--------|------|-------| | Entrée production | Quais (PIE_01) | Palettes production, palettes vides | | Entrée postes de travail | Postes (PIE_02/03) | Palettes après traitement en poste | > En cas de blocage long terme sur une entrée, un bouton permet de > rediriger les flux vers l'autre entrée. ## Transmission du programme de filmage à la filmeuse (LIM-115) > **Statut (LIM-115)** : Ouvert. Cette tâche **transmet** le programme de > filmage à Galileo ; elle ne le **produit** pas (choix opérateur au poste, > stocké dans `CstAtt05`, voir LIM-67). **Objectif** : quand une palette quitte un poste d'identification (PIE) pour entrer dans l'ASRS, le WMS transmet automatiquement à Galileo le programme de filmage choisi par l'opérateur, sans action supplémentaire. Même principe que l'étiqueteuse automatique (custom data, pas de changement de route - voir [Flux expédition - Communication Galileo](../04-outbound/flux-expedition.md#communication-galileo-lim-111)). ### Chaîne fonctionnelle L'opérateur choisit le programme au poste (action « Terminer » en réception, ou avant évacuation en picking) → valeur dans `CstAtt05` → tâche d'évacuation AGV vers la table d'entrée → passage **filmeuse** puis PIE → stockage ASRS. La règle « on ne filme que si le PIE valide la palette » est **structurellement** satisfaite : un mouvement de source PIE vers la table d'entrée (et non vers le poumon de rejet) n'existe que si le PIE a dit OK. ### Mécanisme | Étape | Détail | |-------|--------| | Abonnement | Subscription custom sur l'event **`MovementCreated`** (modèle des `Galileo_*EventHandler_PR`), appelant un WF qui gère le CstData. Handler **léger** (event fréquent). | | Filtre source | Récupérer la station **source** du mouvement (StationType + StationNumber) ; la comparer au paramètre des PIE concernés. Si absente → sortie immédiate. | | Lecture programme | Depuis le mouvement → remonter au **support (Container)** → lire `CstAtt05`. Si vide ou = code « pas de filmage » (`0`) → forcer CstData à `0`. Si **destination = rejet** (type de tâche) → forcer CstData à `0`. | | Écriture CustomData | Écrire dans le **CustomData de la tâche** parente. **Idempotent** (une tâche peut générer plusieurs mouvements). Pas de collision avec l'étiqueteuse : c'est un **type de tâche différent** (une même tâche n'est jamais à la fois filmage et étiquetage). | | Transmission Galileo | Aucune commande spécifique : Galileo lit le CustomData à la transmission du mouvement (`GalileoMovTrackingCreateCommand`, transition Generated → In progress) et pilote la filmeuse. | Séquence : Easy crée le mouvement en `Generated` → Galileo fait une recherche d'ordre → Easy répond via `GalileoMovTrackingCreateCommand` (infos mouvement + tâche liée) → le mouvement passe en `Running`. ### Périmètre - **Stations déclenchantes** : **PIE_02**, définies dans un **paramètre** (pas de code en dur) pour absorber une évolution de topologie. - **Flux couverts** : **tous les flux entrant vers l'ASRS** via un poste d'identification zone travail (réception extérieure/intersite, retour picking vers ASRS, recertification, etc.). Mécanisme **générique** : teste uniquement la station source + la présence d'un programme sur le support. - **Hors périmètre** : PIE_01 (entrée production, non filmée), PIE_03 (pas de filmeuse après ce PIE), la pose de `CstAtt05` (LIM-67) et la mécanique physique de la filmeuse (Galileo/TMS). > ⚠️ Réconciliation : le tableau des stations PIE ci-dessus indique > « PIE_03 = idem PIE_02 ». Pour le **filmage**, LIM-115 exclut PIE_03 (pas de > filmeuse en aval). L'identité PIE_02/PIE_03 vaut pour le **mode d'insertion**, > pas pour la filmeuse. ## Rétention des données | Entité | Durée standard | Souhait Limagrain | |--------|----------------|-------------------| | Transactions | 6 mois | 2 ans | | Movements | 6 mois | 2 ans | | Outbound Orders | 1 an | 2 ans | | Inbound Orders | 1 an | 2 ans | | Tasks | 1 an | 2 ans | | Stock adjustments | 1 an | 2 ans | > ⚠️ Mecalux doit étudier l'impact de la rétention 2 ans sur les prérequis > serveurs pour éviter saturation DB et lenteurs. ## Points d'attention ⚠️ Les interfaces AGV sont définies dans un document annexe séparé et peuvent impacter les flux fonctionnels. ⚠️ La banderoleuse (filmeuse) est située avant le PIE côté postes de travail - un contrôle capacité filmeuse est fait en amont du PIE. ## Questions ouvertes - ❓ Impact rétention 2 ans sur les performances Oracle (@Nicolas) - ❓ Fournisseur AGV définitif et protocole d'interface (@Théo) ## Historique des modifications | Date | Auteur | Modification | |------|--------|--------------| | 2026-05-05 | Arthur | Création initiale depuis AF V1.5 | | 2026-07-20 | Arthur | LIM-115 (lecture directe, Ouvert) : nouvelle section « Transmission du programme de filmage à la filmeuse » (subscription MovementCreated, filtre station source PIE_02 via paramètre, lecture CstAtt05, force CstData=0 si vide/pas de filmage/destination rejet, écriture idempotente CustomData tâche, lecture Galileo via GalileoMovTrackingCreateCommand ; périmètre tous flux entrant ASRS via PIE_02, hors PIE_01/PIE_03) + caveat réconciliation PIE_03 (pas de filmeuse) ; front matter jira_refs/sources/tags/last_updated | ## Références | Source | Type | Date | |--------|------|------| | FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | Analyse fonctionnelle | 28/11/2025 | | [LIM-115](https://easywmsfrance.atlassian.net/browse/LIM-115) | Ticket Jira (transmission du programme de filmage à Galileo/filmeuse) | 2026 |