Blocs génériques réutilisables¶
Ces BPM ALL - … sont les briques partagées par toutes les séquences. Le moteur les appelle via la config (SEQUENCE_ACTIONS), et leur comportement s'adapte aux tables de configuration plutôt qu'au code. Chacun se termine, selon le cas, en relançant ALL - Prochaine étape ou en attendant un événement.
ALL - Vérifications des prérequis¶
Étape 10 de toutes les séquences. Start-form : cycle_id, of_id, ep_id, sequence_type.
Contrôle en cascade, chaque échec ayant sa branche d'erreur :
- activité et statut de l'OF, du cycle, de l'équipement (sinon OF / cycle / équipement non valable),
- champs obligatoires présents sur l'OF, le cycle et l'EP (sinon problème concernant les champs utilisés),
- contrôle spécifique : si un BPM de prérequis propre à la séquence existe (
have_specific), il est appelé, sinon la séquence continue directement viaALL - Prochaine étape.
Le contrôle spécifique : EX - Vérifications des prérequis¶
Exemple pour l'extraction. Start-form : cycle_id, ep_id, of_id. Trois familles dans l'ordre :
- Config extracteur valide (
config_ok) : sinon erreur de configuration (non complétable). - Champs métier (
metier_ok) : recette et lots, avec normalisation des lots et ajout dans l'OF. Si un champ manque, une saisie est proposée puis la vérification reboucle. - Conteneurs de provenance prêts (
conteneurs_ok) : sinon conteneur pas prêt.
ALL - Contrôle laboratoire¶
Start-form : ep_id, cycle_id. Notifie l'opérateur qu'un contrôle laboratoire est à effectuer, met à jour les informations du cycle, puis relance ALL - Prochaine étape. C'est un point de validation opérateur inséré entre deux étapes automatiques.
ALL - Appel robot¶
Start-form : ep_id, sequence_nb, sequence_type. Lit le geste à commander dans ROBOT_ACTIONS[sequence_type][sequence_nb] (garde config_ok), puis consulte l'état du gestionnaire des robots. Trois états :
État (robot_status) |
Comportement |
|---|---|
Disponibles (OK) |
Le robot est appelé pour le geste. |
| Occupés | Attente via une tâche opérateur : Réessayer (reboucle sur la vérification) ou Mode dégradé (opération manuelle). |
| Dysfonctionnels | Passage direct en mode dégradé. |
| vide | Statut gestionnaire robots inconnu (erreur). |
C'est ce bloc qui porte tout le mode dégradé côté robots.
ALL - Vérification présence¶
Start-form : ep_id, cycle_id, sequence_nb, sequence_type. Lit PRESENCE_CONFIG[sequence_type][sequence_nb] (garde config_ok), puis teste jusqu'à trois dimensions du récipient attendu :
- présence (
present) : la propriété de présence vaut-elle la valeur « vraie » attendue. - entité : la propriété de lien pointe-t-elle une entité (récipient réellement rattaché).
- état (
etat_ok) : le statut du récipient est-il différent de l'état interdit (etat_ko, ex.CONTENEUR_ST_SALE).
Selon le résultat, le bloc force l'étape suivante (via nouvelle_etape_forcee) : présent et propre continue le conditionnement, absent bascule vers l'obtention d'un récipient, sale déclenche une erreur (récipient sale).
Sémantique portée par la config
Le sens de « présent » dépend du rôle et vient de la config, jamais d'une hypothèse en dur (voir conventions).
ALL - Mode de déplacement¶
Start-form : ep_id.
Contrôle l'activité du gestionnaire de robot. S'il est l'arrêt, met WiW > Déplacements manuels à vrai pour l'équipement de production.
ALL - Gestion du soulèvement de couvercle¶
Start-form : ep_id, of_id, sequence_number. Pilote les vérins selon le numéro d'étape :
sequence_number |
Action |
|---|---|
| 531 / 533 (et 1401 / 1403 en EX) | Montée du couvercle : VR - Montée phase 1 puis VR - Montée phase 2. |
| 802 / 804 (et 1602 / 1604 en EX) | Descente du couvercle : VR - Descente phase 1 puis VR - Descente phase 2. |
Un verrou de vérin (other_lock) empêche deux mouvements concurrents sur la même zone. Le numéro de séquence de l'OF est tenu à jour pour permettre l'enchaînement.
ALL - Vidage de cuvon¶
Start-form : ep_id. Lance le vidage physique (Vi CC - Vidage), change le statut du cuvon, et calcule la quantité à vider à partir de la capacité du cuvon et du poids de la cuve. Si la capacité n'est pas renseignée (is_zero), une saisie de la quantité est demandée.
Les BPM d'action physique appelés par ces blocs (VR - … pour les vérins, Vi CC - … pour le vidage, TR - … pour les transferts, AMR - … pour les missions robot) suivent la convention de préfixes et se terminent par un événement qui relance le moteur.