# Procédures

> Ce que l'opérateur démarre sur une unité : la fenêtre de l'essai, la recette, le datalog, le jeu d'alias et l'évaluation qu'elle compose, les champs qu'elle demande, les occurrences qu'elle arme, les actions qu'elle émet et ce qu'un essai terminé produit.

Une **procédure** est ce que l'opérateur démarre sur une unité : une enveloppe d'essai (le mode, et
pour un essai temporel sa durée et ses cycles) plus des références facultatives vers les
bibliothèques de Réglage du modèle. Sa page se lit comme l'essai qu'elle compose, une étape par chose
qui arrive, chacune énonçant ce que le choix actuel produit (« Exécute 3 cycles de 1 min 30 s »,
« Enregistre 6 voies toutes les 500 ms »); une étape pour laquelle rien n'est choisi demeure visible
et atténuée, parce que la forme de ce qu'un essai fait comprend ce qu'il ne fait pas. Les procédures
vivent sous Process > Modèles > modèle > Réglage > **Procédures** et demandent la permission
**Modifier recettes et évaluations**. Préparer et démarrer une procédure se passent sur les lignes de
l'unité sous Conduite (voir [Essais et commentaires](process-runs)).

## Le dossier Procédures {#the-procedures-folder}

Sélectionner la ligne **Procédures** ouvre la page du dossier (« Ce que l'opérateur démarre sur une
unité : une recette à appliquer, une évaluation pour la juger, un datalog à enregistrer et les
métadonnées à saisir. ») avec une carte par procédure, par nom; cliquer sur une carte l'ouvre et le X
la retire. Sans aucune, la page indique « Aucune procédure pour l'instant. Ajoutez-en une. »

| Commande | Ce qu'elle fait | Grisée quand (situation) | Non dessinée quand (rôle) |
| --- | --- | --- | --- |
| **Nouvelle procédure** (barre de détail, dossier sélectionné; clic droit **Ajouter une procédure**) | Ajoute `Procédure <n>` : mode Instantané, ne référençant rien, ne demandant que les champs obligatoires, n'armant et n'émettant rien, ne comptant aucune production. La ligne rejoint son groupe, mise en évidence et amenée dans la zone visible; sa carte l'ouvre. | Une unité détient un essai, ou le runtime est arrêté. | Sans Modifier recettes et évaluations. |

## La page de la procédure {#the-procedures-page}

L'en-tête porte le nom, la ligne « Ce que l'opérateur démarre sur une unité : la fenêtre qu'un essai
obtient, les bibliothèques du modèle qu'il applique, enregistre, nomme et avec lesquelles il juge, et
ce qu'il émet. », une pastille avec le mode et, pour une procédure en mode Temporel, une pastille
avec la durée et les cycles (« 90000 ms ×3 »). Quand la composition ne se valide pas, une note de
prudence sous l'en-tête dit pourquoi (voir Vérification plus bas); le brouillon est tout de même
enregistré. Chaque champ s'enregistre de lui-même, et une écriture que la station refuse remet le
champ en place.

### Définition {#definition}

| Champ | Ce que c'est | Valeurs / défaut |
| --- | --- | --- |
| **Nom** | Comment la procédure s'appelle dans l'arbre, dans le sélecteur Procédure de chaque unité et dans le fichier d'essai. La renommer ne change jamais son code. | Texte libre; `Procédure <n>` à la création. Un nom vide est refusé (« Une procédure doit porter un nom. »). |
| **Remarques** | Texte libre pour qui la lit. | Multiligne; vide par défaut. |

### Ce que fait un essai {#what-a-run-does}

Cinq étapes, chacune portant l'icône de la bibliothèque qu'elle atteint, son nom, le résultat du
choix actuel en une ligne, et les champs qui le décident. Un nombre dans une ligne de résultat (les
secondes d'une durée de moins d'une minute, un nombre d'échantillons) s'écrit dans le
format de nombre de la station ([Localisation](settings-localization)).

| Étape | Champs | Valeurs / défaut | La ligne de résultat |
| --- | --- | --- | --- |
| **Fenêtre** | **Mode d'exécution** : l'enveloppe de l'essai. | **Instantané** (par défaut) : un seul coup, appliquer, enregistrer une ligne, juger une fois. **Temporel** : une fenêtre bornée, répétée au besoin. **Contrôlé** : sans fin fixée, bornée par Démarrer et Arrêter. | Instantané : « Applique, enregistre et juge une fois, puis se termine. » Contrôlé : « S'exécute jusqu'à ce que l'opérateur l'arrête. » |
| | **Durée (ms) \*** (Temporel seulement) : la longueur de la fenêtre. | Un nombre de millisecondes; une saisie négative est conservée comme 0. Obligatoire et positive en mode Temporel. Chaque membre de l'essai partage cette fenêtre unique. | « S'exécute pendant 1 min 30 s. », ou « Fixez une durée : une fenêtre temporelle sans longueur n'enregistre rien. » |
| | **Nombre de cycles** (Temporel seulement) : combien de fois la fenêtre se répète, en un seul enregistrement d'essai continu. | 1 ou plus (une saisie sous 1 est conservée comme 1); 1 par défaut. Les évaluations se réancrent par cycle et les cycles en échec sont comptés. | « Exécute 3 cycles de 1 min 30 s, soit 4 min 30 s au total. » |
| **Appliquer** | **Recette** : la [recette](process-recipes) appliquée. | « (aucune) » ou une recette du modèle. Une recette dont le type ne convient pas au mode est listée « `<nom>` (non compatible) » et désactivée, avec la raison en infobulle (« Le mode temporel a besoin d'une recette temporelle. Un jeu instantané n'a pas de ligne de temps. » ou « Le mode `<Mode>` a besoin d'une recette instantanée. Un profil temporel n'a pas d'instant unique. »). Une recette temporelle dessine son profil sous l'étape, par le même aperçu que dessine la page Recette. | « Aucune consigne n'est écrite. », « Écrit 4 consignes au démarrage. », « Écrit 4 consignes au démarrage et 2 consignes à la sortie. », « Pilote 3 segments sur 2 min 30 s et écrit 2 consignes à la sortie. » |
| **Enregistrer** | **Datalog** : le [datalog](process-datalogs) enregistré. | « (aucun) » ou un datalog du modèle. | « Rien n'est enregistré : cet essai ne laisse aucun datalog. », « Enregistre 6 voies toutes les 500 ms. », et pour une fenêtre temporelle « …, environ 540 échantillons par voie. » |
| **Nommer** | **Jeu d'alias** : le [jeu d'alias](process-aliases) épinglé à la procédure. | « (aucun) » ou un jeu d'alias du modèle. Le jeu est appliqué à l'unité quand la procédure y est préparée et que les alias de l'unité en diffèrent; l'alias figé dans l'essai est celui de l'unité. | « L'unité conserve les noms de voies qu'elle a déjà. », « Renomme 5 voies sur l'unité quand cette procédure y est préparée. » |
| **Juger** | **Évaluation** : l'[évaluation](process-evaluations) selon laquelle l'essai est jugé. | « (aucune) » ou une évaluation du modèle. | « Aucun verdict n'est émis : un essai se termine sans jugement. », « Juge 4 critères, et un résultat non conforme de gravité Majeure interrompt l'essai. », « Juge 4 critères, et un résultat non conforme n'interrompt jamais l'essai. » |
| | **Interrompre si non conforme ≥** (dessiné dès qu'une évaluation est choisie) : met fin à l'essai au premier critère non conforme confirmé à cette gravité ou au-dessus. Sur un essai cyclique, c'est le contrôle arrêter ou continuer : un seuil met fin à tout l'essai au premier cycle qui échoue à ce niveau ou au-dessus; **(jamais)** exécute chaque cycle et ne fait que compter les échecs. | **(jamais)** (par défaut), **Mineure**, **Majeure**, **Critique**. | Repliée dans la ligne Juger ci-dessus. |

### Métadonnées {#metadata}

Une carte, surmontée d'une pastille qui compte les champs « demandées au démarrage », contient ce
qu'un essai demande et les deux choses qui servent ses champs séquentiels.

| Contrôle | Ce que c'est | Valeurs / défaut |
| --- | --- | --- |
| La liste à cocher | Une case par champ du [catalogue de métadonnées](process-metadata) du modèle, dans l'ordre du catalogue, intitulée `<nom> (<genre>)`, ou `<nom> * (<genre>)` pour un champ obligatoire. | Un champ obligatoire est coché et verrouillé (« Les champs obligatoires sont demandés par toutes les procédures »); les autres commencent décochés. En cocher un l'ajoute à ce que l'invite de démarrage et la carte Métadonnées d'un volet demandent. Sans aucun champ dans le catalogue, la carte indique « Aucun champ dans le catalogue pour l'instant. Ajoutez-en sous les Métadonnées du modèle. » |
| **Code procédure** | Le code stable avec lequel les champs séquentiels qui incluent « Code procédure » composent (« Chaque champ séquentiel demandé qui inclut « Code procédure » lit celui-ci. »). Renommer la procédure ne le change jamais. | Texte libre, validé quand vous quittez le champ; texte d'exemple « facultatif tant qu'il n'est pas utilisé ». |
| **COMPTEURS** (dessinés quand un champ séquentiel demandé compte par procédure ou par procédure et unité) | Une ligne par champ de ce genre : par procédure, une ligne intitulée « Cette procédure »; par procédure et unité, une ligne par unité du modèle. Chaque ligne montre **DERNIER ÉMIS** et un **Prochain** modifiable, et avertit « Peut répéter un identifiant » tant que Prochain est au niveau de la dernière valeur émise ou en dessous. | Prochain accepte 0 jusqu'au maximum du champ; une saisie hors de cette plage est refusée avec « La valeur Prochain de « `<champ>` » doit être comprise entre 0 et `<max>`. » L'aide sous les lignes : « Dernier n'est jamais réécrit. Abaisser Prochain ou repasser après le maximum peut répéter un identifiant. » |

### Occurrences armées pendant cette procédure {#occurrences-armed-during-this-procedure}

Une pastille compte les occurrences armées, et la liste à cocher offre chaque
[occurrence](process-occurrences) du modèle par nom. Une occurrence cochée est jugée pendant les
essais de cette procédure, sur les lignes enregistrées; une occurrence armée **Toujours** surveille
quelle que soit la coche. Sans aucune dans le modèle, la carte indique « Aucune occurrence dans ce
modèle pour l'instant. Ajoutez-en sous les Occurrences du modèle. »

### Actions que cette procédure émet {#actions-this-procedure-emits}

Une pastille compte les actions sélectionnées, et la liste à cocher offre chaque
[action](process-actions) du modèle dans l'ordre de la liste, chacune avec sa ligne d'émission
(« Étiquette au démarrage, Étiquette et rapport à la fin ») et, une fois sélectionnée, une pastille
**Prête** ou **À vérifier**. À vérifier liste ce qui manque à cette procédure pour les marqueurs de
l'action (un champ de métadonnées qu'elle ne demande pas, un critère que son évaluation ne déclare
pas, un cycle qu'elle n'exécute pas), chacun avec son remède. L'ordre d'émission et le reste de la
carte se trouvent dans [Actions](process-actions#how-a-procedure-selects-actions).

### Production comptée {#production-output}

La dernière carte, surmontée d'une pastille **Incluse** ou **Exclue**, déclare ce qu'un essai terminé
apporte aux indicateurs de production de l'unité (voir [Productivité](process-productivity)).

| Champ | Ce que c'est | Valeurs / défaut | Effet |
| --- | --- | --- | --- |
| **Unité de mesure** | L'unité physique de la production. | Texte libre, validé quand vous quittez le champ; texte d'exemple « pièces, kg… »; vide par défaut. Tant que la production est comptée, le champ ne peut pas être vidé : une saisie vide est ignorée. | Nomme la quantité sur chaque indicateur. |
| **Comptabilisé sur** | Quel moment d'un essai compte comme production. | **Ne pas compter la production** (par défaut), **Chaque essai terminé**, **Chaque cycle terminé**, **Quantité fixe par essai terminé**. Un mode de comptage est désactivé tant que l'unité de mesure n'est pas définie (« Définissez d'abord l'unité de mesure physique. »); le mode par cycle est désactivé hors du mode Temporel (« Une fin de cycle n'existe que sur une procédure temporelle. »); et « Ne pas compter la production » est désactivé tant qu'une quantité nommée en vigueur additionne cette procédure (« Retirez d'abord cette procédure des quantités nommées sur la page Productivité. ») : les quantités propres au modèle, plus celles des unités qui se sont détachées. Une unité qui est revenue à suivre le modèle garde les quantités qu'elle avait, et elles ne comptent pour rien tant qu'elle ne se détache pas de nouveau. | Légende : « Quelle limite d'un essai compte comme production, et ce que son franchissement ajoute. » Effet : « Chaque essai terminé produit 1 pièces. Les instantanés et Évaluer ne comptent jamais. », « Chaque cycle terminé produit 1 pièces. … », « Chaque essai terminé produit 25 kg. … », ou « Cette procédure n'apporte aucune production. » Choisir un mode de comptage ramène la quantité à 1. La quantité de l'effet s'écrit dans le format de nombre de la station, avec les décimales qu'elle possède, six au plus. |
| **Quantité par fin d'essai** (mode fixe) | La quantité de lot qu'un essai terminé apporte. | Un nombre positif; 1 par défaut. | |
| **Cadence de référence** (tant que la production est comptée) | La cadence de production visée (« Mesurée sur le temps écoulé, suspensions et redémarrages compris. »). | Un nombre positif ou vide; vide par défaut. Sans elle, la quantité et la cadence réelle se calculent tout de même, mais aucun pourcentage de productivité. | |
| **Période de référence** (tant que la production est comptée) | La base de temps de la cadence de référence (« Les indicateurs la ramènent à une production par heure. »). | **par heure** (par défaut), **par jour**. | |

Les essais interrompus et en échec scellent leur enregistrement de production avec une quantité
nulle. Un cycle terminé reste compté même quand un cycle ultérieur interrompt l'essai qui le
contient.

## Vérification {#validation}

La note de prudence sous l'en-tête, qui est aussi la condition que le démarrage applique, dit l'une
de celles-ci :

- « Rien à exécuter : cette procédure ne référence ni datalog ni recette. »
- « Une évaluation juge sur des lignes enregistrées. Cette procédure en porte une, mais n'a aucun
  datalog. »
- « Le mode temporel a besoin d'une durée. Fixez-en une. »
- « Le mode instantané a besoin d'une recette instantanée (ou d'aucune). Un profil temporel n'a pas
  d'instant unique. »
- « Le mode contrôlé a besoin d'une recette instantanée (ou d'aucune). Les consignes s'appliquent au
  démarrage, l'état sûr à l'arrêt. »
- « Le mode temporel a besoin d'une recette temporelle (ou d'aucune). Un jeu instantané n'a pas de
  ligne de temps. »
- « Le profil de la recette (*N* ms) est plus long que la fenêtre temporelle (*M* ms). »
- « La procédure « *nom* » ne peut compter des cycles terminés qu'en mode temporel. », « La
  procédure « *nom* » a besoin d'une quantité de production positive et finie. », « La production
  comptée de la procédure « *nom* » doit apporter exactement une unité par achèvement. », « La
  procédure « *nom* » a besoin d'une unité de mesure pour sa production. »
- « L'occurrence surveillée « *nom* » n'est pas valide : … » pour une occurrence activée et armée
  dont la condition ne se valide pas.
- « L'occurrence surveillée « *nom* » observe « Channels.*voie* », que le datalog de cette procédure
  n'enregistre pas. » Une occurrence juge sur les colonnes enregistrées, donc une occurrence qui
  surveille une voie que le datalog laisse de côté ne pourrait que marquer le signal indisponible
  pour tout l'essai.
- « L'occurrence surveillée « *nom* » observe des échantillons enregistrés. Cette procédure l'arme,
  mais n'a aucun datalog. »

Supprimer une entrée de bibliothèque référencée dégrade la procédure au lieu de la casser : la
référence se vide, et l'étape indique ce qu'elle fait désormais sans elle.

## Retirer la procédure {#remove-procedure}

**Retirer la procédure** se tient dans le groupe de danger de la barre de détail avec la procédure
sélectionnée, sur son menu contextuel, et sous forme de X sur la carte de la page du dossier. Elle
demande d'abord (« Supprimer la procédure », « Ceci retire la procédure du modèle. »). La procédure
quitte aussi chaque quantité nommée qui l'additionnait sur la page Productivité, au niveau du modèle
et à celui de chaque unité; une quantité laissée sans source s'en va avec elle. Elle demande Modifier
recettes et évaluations et est grisée sous le verrou d'ingénierie et sous le runtime arrêté. Les
essais enregistrés de la procédure restent dans les historiques.

## Ce qu'une procédure ne fait pas {#what-a-procedure-does-not-do}

- Elle ne démarre rien ici. Une unité la prépare et la démarre sur ses lignes sous
  [Conduite](process-operate), ou par l'automatisme qui la sélectionne (voir
  [Automatisme](process-automation)).
- Elle ne contient rien par unité : chaque unité exécute la même composition sur ses propres
  liaisons.
- Elle n'ordonne ni ses actions ni ses occurrences; l'ordre est celui du modèle.
- Elle ne porte aucun modèle de document à elle : ce qu'un essai imprime ou publie appartient à une
  action.
