308 lines
12 KiB
Plaintext
308 lines
12 KiB
Plaintext
---
|
||
title: "Picking sur poste de travail — Expédition client"
|
||
tags: [picking, poste, expédition, ordonnancement, MOV, PCK]
|
||
status: draft
|
||
standard_ref: concepts/picking.md
|
||
jira_refs: [LIM-82]
|
||
confluence_refs: []
|
||
sources: [FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5.docx, "Expédition - LIMAGRAIN - DEV - Confluence.md", "LIM-82 LOT2.2 [PICKING] Ordonnancement des tâches de picking PS PK.md", "REU PICKING SEQUENCAGE 11-05-2026 - Analyse comparative notes + AF + devops.md"]
|
||
last_updated: 2026-05-12
|
||
author: Arthur
|
||
---
|
||
|
||
# Picking sur poste de travail — Expédition client
|
||
|
||
> **Résumé** : processus [CUSTOM] de picking sur poste de travail pour
|
||
> les commandes client, avec ordonnancement par espèce, règles de picking
|
||
> négatif et contraintes physiques.
|
||
|
||
> **Standard EasyWMS** : → voir [Picking](../../concepts/picking.md)
|
||
> Ce qui suit documente les **spécificités Limagrain** par rapport au standard.
|
||
|
||
## Contexte projet
|
||
|
||
Le picking chez Limagrain se fait sur les postes de travail automatisés
|
||
(pas de picking mobile en allée). Les palettes source et les palettes
|
||
de préparation sont acheminées par AGV sur les tables de préparation (TP).
|
||
|
||
> **Note** : cette page décrit le picking tel que défini dans l'AF V1.5.
|
||
> Le projet a depuis évolué vers un modèle « picking combinatoire »
|
||
> (CR V3.0, 4 jobs, CstAtt) qui sera documenté séparément.
|
||
|
||
## Déclenchement
|
||
|
||
Le picking est déclenché pour les commandes client (RUT type « Client »)
|
||
quand des palettes incomplètes sont nécessaires (la quantité demandée
|
||
ne correspond pas à des palettes complètes).
|
||
|
||
Prérequis : un **poste de travail assigné** (auto ou manuellement).
|
||
|
||
## [CUSTOM] Ordonnancement des palettes au poste
|
||
|
||
Une fois le poste assigné, les palettes arrivent dans cet ordre :
|
||
|
||
### Tri par espèce et gerbabilité
|
||
|
||
1. **Espèce Maïs** toujours en premier (pas la variété mais l'espèce)
|
||
2. Puis espèce avec la **plus grande quantité** dans la commande
|
||
3. Si égalité → **article/lot le plus lourd** en base de palette
|
||
|
||
**Mapping Espèce → stack (gerbabilité)** : le maïs = stack 0 (le plus
|
||
lourd/stable, donc en base). [CUSTOM] Gestion en **async sur l'ITM** pour
|
||
calculer la gerbabilité automatiquement à la création de l'article. Tri
|
||
des tâches de picking dans le workflow `StackerCrane_SortTasks_PR`.
|
||
|
||
### ~~Séparation par traitement commercial~~ SUPPRIMÉ (réu. 11/05/2026)
|
||
|
||
~~Pas de mélange entre articles avec traitement et sans traitement
|
||
sur une même palette fille.~~
|
||
|
||
**Décision** : `CONTROLE_TRAITEMENT_COMMERCIAL = false`. L'entrepôt
|
||
Limagrain ne fait pas de bio, pas de raison de maintenir cette
|
||
contrainte. Paramètre réactivable si besoin futur.
|
||
|
||
> Voir [Séquençage TK → PS — Arbitrage](sequencage-tk-ps.md#arbitrage-des-contradictions-reu-11052026)
|
||
> pour le détail de l'analyse comparative.
|
||
|
||
## [CUSTOM] Règle du picking négatif
|
||
|
||
**Deux conditions cumulatives** (réu. 11/05/2026) :
|
||
|
||
1. La quantité à prélever dépasse le **seuil fiche article** (défaut
|
||
55%, paramétrable par article via "Complete quantity percent excess
|
||
for negative picking")
|
||
2. Le **poids unitaire du sac ≥ 7 kg** (raison : instabilité palette si
|
||
gros sacs ramenés sur petits sacs)
|
||
|
||
Si les deux conditions sont remplies → **picking négatif** : au lieu de
|
||
déplacer les sacs à expédier, déplacer les sacs qui **retourneront en
|
||
stock** (moins de mouvements physiques).
|
||
|
||
Si l'une des deux conditions n'est pas remplie → picking direct
|
||
classique.
|
||
|
||
> Le picking négatif est **prioritaire sur Maïs first** et toutes les
|
||
> autres règles de tri (confirmé par Olivier, réu. 11/05/2026).
|
||
> Voir [Séquençage TK → PS](sequencage-tk-ps.md#critère-1--picking-négatif-en-premier).
|
||
|
||
## [CUSTOM] Calcul équivalent palette (pro rata Bag/pal)
|
||
|
||
Pour déterminer si une palette est « pleine », calcul en **pro rata
|
||
Bag/pal** (réu. 11/05/2026, remplace la logique DevOps "Bag/pal max") :
|
||
|
||
```
|
||
Équivalent palette d'un sac = 1 ÷ Bag/Pal de son lot
|
||
```
|
||
|
||
Le calcul est additif et gère nativement des lots avec des Bag/pal
|
||
différents sur une même palette :
|
||
|
||
```
|
||
Exemple :
|
||
15 sacs lot Bag/pal 20 + 10 sacs lot Bag/pal 75
|
||
= 15/20 + 10/75
|
||
= 0,75 + 0,133
|
||
= 88,3% → il reste ~12% de place
|
||
```
|
||
|
||
Seuil cible : **~95%** de remplissage (marge de sécurité).
|
||
Poids max palette : **1 250 kg** (AF fait foi, corrige 1 200 kg du
|
||
DevOps).
|
||
|
||
## [CUSTOM] Verrou « HORS TOLERANCE » — Recomptage
|
||
|
||
Si la palette source porte le verrou « HORS TOLERANCE » → recomptage
|
||
demandé avant le picking (inventaire).
|
||
|
||
- Si stock restant suffisant après inventaire → assignation maintenue
|
||
(workflow `OnStockAdjust` recalcule uniquement si nécessaire — ne casse
|
||
pas la tâche en cours)
|
||
- Si plus assez de stock → réassignation ailleurs + retrait verrou
|
||
|
||
## [CUSTOM] Algorithme de répartition des palettes sur les TP
|
||
|
||
Logique combinatoire complète gérant tous les cas :
|
||
|
||
- Picking négatif et enchaînement de pickings négatifs
|
||
- Ordonnancement par espèce
|
||
- Terminer une palette pleine avant d'en entamer une autre
|
||
- Cadencement des buffers devant les postes de picking
|
||
- Pas de mélange de traitement commercial (via famille d'article)
|
||
- **Contrainte** : l'opérateur ne doit **pas déplacer de sacs d'une table
|
||
à l'autre** (sacs lourds)
|
||
|
||
**Table du milieu** : toujours occupée soit par une palette de picking
|
||
négatif, soit par une palette vide de dépôt. Quand la palette de
|
||
prélèvement est vidée, l'opérateur la remet manuellement sur une pile
|
||
de palettes vides à proximité.
|
||
|
||
> Prévoir un process sans picking négatif pour les cas où c'est rarement
|
||
> utilisé (ou monter le seuil, ex : 70% au lieu de 50%).
|
||
|
||
## Processus de préparation
|
||
|
||
### Arrivée des palettes (toujours un poste 3 TP)
|
||
|
||
- Première palette au **centre** si picking négatif proposé, sinon sur
|
||
un côté
|
||
- Si une palette est sur un côté et qu'on propose du picking négatif →
|
||
prévenir l'opérateur de déplacer la palette au centre
|
||
- La palette client revient **toujours** au centre
|
||
- Pas de prépa sur 6 TP en simultané
|
||
|
||
### Picking
|
||
|
||
1. Palette source arrive sur une TP
|
||
2. Palette destination (vide ou en cours) sur une autre TP
|
||
3. Opérateur prélève les sacs (ou sacs retour si picking négatif)
|
||
4. ~~[CUSTOM] Message MOV envoyé à SAP~~ **ANNULÉ** (décision client)
|
||
5. Avant évacuation : choix filmage (CstData transmis à Galileo).
|
||
Possibilité de choisir « pas de filmage ».
|
||
6. Évacuation palette → PIE → contrôle poids → stockage/expédition
|
||
|
||
## [CUSTOM] Ordonnancement des tâches PS → PK (LIM-82)
|
||
|
||
Détail du cadencement des palettes depuis les postes de sortie (PS)
|
||
vers les postes de picking (PK). Toutes les tâches de picking se font
|
||
sur les tables élévatrices des PK.
|
||
|
||
### Règles de priorité
|
||
|
||
1. **Picking négatif toujours en premier** — une seule palette à la fois
|
||
pour ce process, toujours déposée sur la **table du centre**
|
||
2. **Picking classique ensuite** — jusqu'à **2 palettes simultanées** au
|
||
PK, déposées sur les **tables latérales**
|
||
3. Le WMS peut envoyer **1 palette picking négatif + 1 palette picking
|
||
classique** en même temps (pour compléter la palette post-picking
|
||
négatif)
|
||
4. Le nombre de palettes de prélèvement au PK ne dépasse **jamais 2**
|
||
|
||
### Picking négatif — Détail
|
||
|
||
À chaque tâche de picking négatif :
|
||
|
||
- Un **nouveau code SSCC** est généré pour la palette où l'excédent de
|
||
stock est déposé
|
||
- Une **étiquette RFID** est imprimée pour cette nouvelle palette
|
||
- La palette de picking négatif va toujours au **centre** du PK
|
||
|
||
### Cadencement des buffers
|
||
|
||
Les palettes non encore nécessaires au PK sont dirigées vers les
|
||
**zones d'attente** (buffers ES_X) s'il y a de la place disponible. Le
|
||
WMS **privilégie la sortie des palettes de picking négatif** vers les
|
||
buffers.
|
||
|
||
À chaque palette arrivant au PS, celui-ci vérifie s'il existe d'autres
|
||
tâches du même OS avec une **séquence plus faible** :
|
||
|
||
- Si oui → palette envoyée au **buffer ES_X** (attente)
|
||
- Si non → palette envoyée directement au **PK**
|
||
|
||
### Cas d'exemple — 10 tâches (3 négatif, 7 classique)
|
||
|
||
1. Le WMS envoie **2 palettes** vers le PK : 1 picking négatif + 1
|
||
picking classique
|
||
2. Les **8 autres** palettes sont dirigées vers les zones d'attente
|
||
(priorité aux palettes de picking négatif)
|
||
3. L'opérateur réalise le picking négatif → impression étiquette
|
||
SSCC/RFID pour la nouvelle palette
|
||
4. L'opérateur réalise le picking classique → stock déposé sur la
|
||
palette du milieu
|
||
5. Si la palette client n'est pas pleine → le WMS apporte une nouvelle
|
||
palette de picking classique
|
||
6. L'opérateur déclare la palette client **pleine** → le WMS apporte la
|
||
2ᵉ palette de picking négatif
|
||
7. Si le picking classique précédent est **en cours** (tâche partielle)
|
||
→ pas de nouvelle palette classique. Sinon → 2ᵉ palette classique
|
||
envoyée au PK
|
||
|
||
Voir aussi [Séquençage TK → PS](sequencage-tk-ps.md) pour le
|
||
mécanisme amont de tri des tâches entre les transstockeurs et les
|
||
postes de sortie, et [Placement PS → PK](placement-ps-pk.md) pour
|
||
l'algorithme de choix de table (ping-pong, buffers, évacuation).
|
||
|
||
## Information passage conteneur client
|
||
|
||
Le passage en conteneur client est visible dans le **LOC** envoyé
|
||
toutes les 5 minutes à SAP (flag « client » = true). Voir
|
||
[Flux ERP outbound](../04-outbound/flux-erp-outbound.md#communication-erp--loc--détails).
|
||
|
||
## Étiquetage
|
||
|
||
### Cas standard (non MII ou MII mono lot)
|
||
|
||
- 1 étiquette RFID pour la palette physique bois
|
||
|
||
### Cas MII multi lots
|
||
|
||
- 1 étiquette HU RFID pour la palette physique (HU mère)
|
||
- 1 étiquette HU sans RFID par ligne de stock (HU fille / intercalaire)
|
||
- Impression auto à chaque nouvelle palette (RFID) et à chaque article
|
||
(intercalaire)
|
||
- Basé sur la **classe de commande**
|
||
|
||
## Contraintes opérateur (hors EasyWMS)
|
||
|
||
Règles non gérées par le système mais à respecter :
|
||
|
||
1. Palette ne doit pas excéder **1,90 m** (sinon rejet PIE)
|
||
2. Palette ne doit pas excéder **1 250 kg** (sinon rejet PIE, AF fait foi)
|
||
3. Pas de gerbage de palette
|
||
4. Disposition d'intercalaires entre couches
|
||
|
||
## Calcul poids de référence (post-picking)
|
||
|
||
Pour les palettes multi-lignes de stock :
|
||
|
||
```
|
||
Poids réf = Σ (Poids_unité_ligne_i × quantité_ligne_i) + poids_palette_bois
|
||
```
|
||
|
||
Contrôle PIE identique aux autres processus (voir
|
||
[Contrôle qualité réception](../01-inbound/controle-qualite-reception.md)).
|
||
|
||
## Points d'attention
|
||
|
||
⚠️ Le picking négatif (seuil 55% ET poids ≥ 7 kg) est une règle métier
|
||
custom — les deux conditions sont cumulatives (réu. 11/05/2026).
|
||
|
||
⚠️ L'ordonnancement espèce → quantité → poids est géré par EasyWMS
|
||
(pas un choix opérateur).
|
||
|
||
⚠️ Le message MOV est **ANNULÉ** (décision réunion client).
|
||
|
||
⚠️ Le verrou HORS TOLERANCE déclenche un recomptage mais ne casse pas
|
||
l'assignation si le stock restant est suffisant.
|
||
|
||
⚠️ L'algorithme de répartition TP est le « gros morceau » custom du
|
||
picking — gestion combinatoire de tous les cas.
|
||
|
||
## Questions ouvertes
|
||
|
||
- [x] ~~Programme de filmage exact~~ → 8 programmes documentés (A→H)
|
||
- [ ] Gestion du picking négatif dans l'interface opérateur (@Nicolas)
|
||
- [x] ~~Process sans picking négatif — seuil à 70% au lieu de 50%~~ →
|
||
Tranché : seuil paramétrable par article (défaut 55%) + condition
|
||
poids ≥ 7 kg (réu. 11/05/2026)
|
||
- [x] ~~Traitement commercial — séparation palette~~ → Supprimé
|
||
(`CONTROLE_TRAITEMENT_COMMERCIAL = false`, réu. 11/05/2026)
|
||
|
||
## Historique des modifications
|
||
|
||
| Date | Auteur | Modification |
|
||
|------|--------|--------------|
|
||
| 2026-05-05 | Arthur | Création initiale depuis AF V1.5 |
|
||
| 2026-05-05 | Arthur | Gerbabilité/stack, algo répartition TP, verrou HORS TOLERANCE, MOV annulé, arrivée palettes 3 TP, filmage CstData |
|
||
| 2026-05-12 | Arthur | Ajout ordonnancement PS→PK (LIM-82) : priorité picking négatif, cadencement buffers, cas d'exemple, lien séquençage TK→PS |
|
||
| 2026-05-12 | Arthur | MAJ réunion 11/05 : picking négatif 2 conditions cumulatives (55% + 7 kg), TC supprimé, pro rata Bag/pal, poids max 1 250 kg, questions fermées |
|
||
|
||
## Références
|
||
|
||
| Source | Type | Date |
|
||
|--------|------|------|
|
||
| FR-SW-04-07_LIMAGRAIN_Functional_Analysis_V1.5 | Analyse fonctionnelle | 28/11/2025 |
|
||
| Expédition - LIMAGRAIN - DEV - Confluence | Page ateliers DEV | 2026 |
|
||
| [LIM-82](https://easywmsfrance.atlassian.net/browse/LIM-82) | Ticket Jira (ordonnancement PS→PK) | 2026 |
|
||
| REU PICKING SEQUENCAGE 11-05-2026 | CR réunion + analyse comparative | 11/05/2026 |
|