Aller au contenu

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 :

  1. activité et statut de l'OF, du cycle, de l'équipement (sinon OF / cycle / équipement non valable),
  2. champs obligatoires présents sur l'OF, le cycle et l'EP (sinon problème concernant les champs utilisés),
  3. 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 via ALL - 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 :

  1. présence (present) : la propriété de présence vaut-elle la valeur « vraie » attendue.
  2. entité : la propriété de lien pointe-t-elle une entité (récipient réellement rattaché).
  3. é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.