# Voies

> Les voies abstraites par lesquelles un modèle est défini (numéro, nom, alias, portée de l'alias, rôle, type, unité physique, couleur et groupe de graphique) et la source, l'alias et la valeur en direct que chaque unité lie derrière elles.

Une **voie** est un point abstrait du modèle. Les datalogs, les recettes, les évaluations, les
occurrences, les volets, les tableaux de bord et les rapports ne référencent que des voies, jamais
des tags, et c'est ce qui garde chaque unité du modèle compatible par construction. L'écran **Voies**
(Process > modèle > Définition > Voies) porte les deux moitiés du sujet : en haut les voies par
lesquelles le modèle est défini, en dessous les unités, et à côté d'elles les réglages de la ligne
choisie, la déclaration d'une voie ou le tableau des liaisons d'une unité. L'en-tête indique « Ce que
ce modèle mesure et commande, et où chaque unité le lit. » et compte les voies et les unités.

La lecture demande Consulter les modèles; chaque modification demande Gérer Process et une station
déverrouillée. L'écran porte la forme que chaque écran de Définition partage (voir
[Définition](process-definition#the-one-shape-of-the-five-screens)).

## Définition du modèle : le tableau des voies {#model-definition-the-channel-table}

L'en-tête indique « Elle vaut pour toutes les unités : une voie ajoutée ou retirée ici change le
tableau de chaque unité. » et porte **Nouvelle voie**, qui ajoute une ligne à la fin.

| Commande | Ce qu'elle fait | Grisée quand | Non dessinée quand |
| --- | --- | --- | --- |
| **Nouvelle voie** | Ajoute une voie nommée d'après le premier `Voie N` libre et numérotée avec le plus petit numéro libre, à la fin de la liste; la nouvelle ligne est choisie, avec ses réglages à côté, et amenée dans la zone visible. | La station est verrouillée. | Le rôle n'a pas Gérer Process (tout l'écran est alors en lecture seule). |
| **Monter la voie** / **Descendre la voie** (ligne) | Déplace la ligne d'un rang; chaque voie garde son numéro. | La ligne est déjà la première ou la dernière. | |
| **Retirer** (ligne, encre de danger) | Retire la voie du modèle et de chaque unité (plus bas). | | |

Chaque ligne porte toute la déclaration. Les mêmes champs s'ouvrent en entier dans la colonne des
réglages quand la ligne est choisie, chacun au-dessus de la ligne qui dit ce qu'il décide; les deux
endroits modifient la même voie, donc un changement fait à l'un se voit sur l'autre.

| Champ | Ce que c'est | Valeurs / défaut | Effet |
| --- | --- | --- | --- |
| **Voie n°** | Le numéro de voie fixe, attribué par vous : la référence humaine stable qui survit aux changements de nom et de rang, affichée sous la forme `Voie <n>` partout où des voies se listent (« Voie 1 · Consigne »). | Un entier de 1 ou plus, unique sur le modèle; le plus petit numéro libre à la création. | Les essais enregistrés le conservent, et déplacer la ligne ne le change jamais. Un numéro qu'une autre voie détient est refusé sur le champ et dit sous le tableau : « La voie 3 appartient déjà à « Flow ». Un numéro nomme une seule voie, donc « Consigne » reste sur la voie 1. »; un numéro inférieur à 1 répond « Un numéro de voie commence à 1, donc « Consigne » reste sur la voie 1. » |
| **Nom** | La référence fixe qu'emploie chaque artefact du modèle : « Les datalogs, les recettes, les évaluations et chaque essai enregistré la nomment par là. » Également le point d'adresse de chaque unité `Process.<Model>.<Unit>.Channels.<Nom>` et la propriété `Channels.<nom>` que lit une condition d'occurrence. | Texte libre; `Voie N` à la création. | Un changement de nom sûr : la ligne sous le champ prévoit les références, et la validation réécrit les adresses, les colonnes de datalog, les valeurs de recette, les critères et les entrées d'alias qui désignent la voie, ainsi que les références `Channels.*` de cette voie dans les conditions d'occurrence du modèle. Deux noms qui s'assainissent en un même identifiant (lettres et chiffres gardés, tout le reste `_`, un chiffre de tête préfixé par `_`) sont refusés : « Le nom « X » correspond à la référence d'occurrence « Channels.Y », déjà employée par « Z ». » Désactivé sans Gérer Process et tant que la station est verrouillée. |
| **Nom d'alias** | « Le nom que lit l'opérateur. Vide, c'est le nom de la voie qui s'affiche. Rien ne référence l'alias, donc le changer ne réécrit rien. » Le nom d'affichage valable pour tout le modèle. | Texte libre; vide (le texte d'exemple montre le nom). | La colonne ajoute « Affichée à l'opérateur comme X. » Chaque surface en direct, chaque relecture et chaque rapport lit l'alias en vigueur; les adresses ne le lisent jamais. |
| **Portée de l'alias** | Si une unité peut nommer cette voie à sa façon. La cellule offre **Tout le modèle** ou **Chaque unité**; la colonne écrit les deux réponses en entier : « Un seul pour tout le modèle » et « Chaque unité peut fixer le sien ». | Les deux réponses; « Un seul pour tout le modèle ». | « Une unité autorisée à la nommer le fait à côté de ses liaisons ou par un jeu d'alias. » Avec la réponse valable pour tout le modèle, la cellule Alias de l'unité refuse la modification, un jeu d'alias n'offre ni n'écrit d'entrée pour la voie, et rien n'est lu sous un nom propre à l'unité même là où une liaison en détient encore un; revenir en arrière rétablit ce qui était là. |
| **Rôle** | « Ce que le modèle peut faire de cette voie : la lire, l'écrire, ou les deux. » | **Lecture seule** (« Échantillonnée, tracée et évaluée. Aucune recette ne l'écrit. »), **Écriture seule** (« Une cible de recette. Rien ne la réechantillonne en retour. »), **Lecture et écriture** (« Écrite par les recettes et réechantillonnée : la consigne habituelle. »); Lecture seule. | Le rôle décide quelles sources une unité peut lier (une voie échantillonnée a besoin d'une source lisible, une voie de commande seule d'une source inscriptible), si les recettes peuvent viser la voie, et si les graphiques la dessinent. |
| **Type de valeur** | La catégorie de valeur grossière : « Une unité ne peut lier qu'un tag dont la valeur entre dans cette catégorie. » | **Booléen**, **Entier**, **Décimal**, **Texte**, **Date et heure**; Décimal. | Booléen prend un tag booléen, Entier toute famille entière, Décimal tout nombre, Date et heure un DateTime, Texte n'importe quelle source. Une source liée qui n'entre pas, tag ou variable, est signalée sur la ligne de l'unité. |
| **Unité physique** | « Ce dans quoi chaque lecture de cette voie est écrite. Laissé vide, elle est écrite nue. » | Texte libre; vide (texte d'exemple « aucune »). | Imprimée après chaque lecture, sur les règles du graphique et dans les exports. Sous le champ, la colonne montre un échantillon de lecture du type de la voie avec cette unité physique, écrit comme la lecture en direct de la voie sur une unité (« S'affiche comme 24,53 bar »). |
| **Couleur** | L'encre dans laquelle chaque graphique du modèle dessine cette voie : un échantillon pour choisir et l'hexadécimal à lire, à taper, à coller ou à effacer. | Une couleur hexadécimale comme `#D62728`, ou vide (texte d'exemple « nuancier »). | Vide remet la courbe à la palette, qui distribue une couleur stable d'après la place de la voie parmi les voies dessinées; l'échantillon montre toujours l'encre en vigueur et est encadré différemment pendant qu'elle est distribuée (« Aucune couleur déclarée : le nuancier distribue celle-ci. Choisissez-en une pour qu'elle appartienne à la voie. » contre « La couleur que cette voie déclare. Effacez l'hexadécimal pour rendre la courbe au nuancier. »). L'encre résolue est figée dans chaque essai, donc une courbe enregistrée la garde après que le modèle a été repeint ou supprimé. Un graphique que vous avez composé vous-même garde sa propre couleur. |
| **Groupe** | La bande du graphique empilé dans laquelle cette voie est lue; le champ offre les groupes que le modèle nomme déjà et en accepte un nouveau. | Texte libre; vide (texte d'exemple « sans groupe »). | Les voies qui nomment le même groupe partagent une bande et un axe de valeurs, chaque bande le long de l'axe de temps unique, et la règle de la bande porte le nom du groupe et l'unité physique sur laquelle ses voies s'accordent. Vide rejoint la bande que les voies sans groupe partagent. |

L'ordre des lignes n'est qu'un ordre d'affichage : une voie porte son numéro où qu'elle atterrisse,
donc la colonne du numéro peut honnêtement se lire 1, 5, 2. Chaque liste du modèle qui montre des
voies suit cet ordre et écrit ce numéro dans le libellé de la voie, Ch1, Ch5, Ch2, devant le nom.

L'enregistrement est la dernière ligne de défense des deux règles : un numéro en double qui s'y est rendu par un autre chemin est refusé avec « Le numéro de voie *N* est employé par plus d'une voie. Dans le modèle, chaque numéro n'appartient qu'à une seule voie. », et deux noms qui se rejoignent sur une seule référence avec « Plus d'une voie correspond à la référence d'occurrence « Channels.*voie* ». »

### La colonne des réglages pour une voie {#the-settings-column-for-a-channel}

Sous les champs, la colonne dessine le graphique que chaque unité de ce modèle mettra à l'écran :
chaque voie lisible en pleine intensité par-dessus un tracé d'exemple, depuis le même constructeur
avec lequel la carte Voies d'un volet est dessinée. En dessous, « La couleur et le groupe décident de
la façon dont cette voie est tracée sur chaque graphique du modèle. » et où la voie choisie atterrit :
« Lue dans la bande Pression, sur une échelle qui lui est propre. », « Lue dans la bande du haut, avec
les voies qui ne nomment aucun groupe. », « Lue avec toutes les autres voies, sur une seule
échelle. », ou « Une cible de recette n'est pas échantillonnée, donc aucun graphique ne la trace. »
pour une voie en écriture seule.

### Retirer une voie {#removing-a-channel}

**Retirer** confirme avec la portée comptée avant que rien ne bouge : « Retirer la voie « Flow »
(voie 3) de toutes les unités de ce modèle? Ceci retire aussi 2 colonnes de datalog, 1 consigne de
recette et 3 liaisons d'unité. Cette action est irréversible. » (ou « Rien d'autre ne la référence.
Cette action est irréversible. »). Les boutons indiquent **Retirer** et **Conserver la voie**. Le retrait
balaie les colonnes de datalog, les consignes de recette, les cibles de segment, les liaisons
d'unité, les critères d'évaluation (un critère qui référençait la voie comme voie de référence perd
cette référence) et les entrées d'alias. Un enregistrement refusé remet tout en place.

## Par unité : la liste des unités {#per-unit-the-units-list}

La zone du bas liste les unités du modèle dans leur ordre, avec **Gérer les unités** tout au bout de
son en-tête (il ouvre la page du modèle, où les unités sont ajoutées, nommées et retirées).

| Colonne | Ce qu'elle montre |
| --- | --- |
| **Unité** | Le nom de l'unité. |
| **Liaisons** | La couverture lue sur le modèle : « Aucune voie pour l'instant », « 6 liées, aucune manquante », ou « 4 liées, 2 manquantes » dans l'encre de prudence. |

Seule l'unité choisie construit des lignes et échantillonne des valeurs; les autres lignes ne
coûtent rien.

## Le tableau des liaisons de l'unité choisie {#the-binding-table-of-the-picked-unit}

Choisir une unité ouvre son tableau de liaisons dans la colonne des réglages (« Unités · Unité 1 ») :
une ligne par voie du modèle, dans l'ordre des voies.

| Colonne | Ce que c'est | Effet |
| --- | --- | --- |
| **Voie** | `Voie <n> · Nom`. | Lecture seule. |
| **Rôle**, **Type de valeur** | Le rôle et la catégorie de la voie, dans les mêmes mots que le tableau des voies ci-dessus. | Lecture seule. |
| **Source liée** | La seule source de valeur que la voie lit ou écrit sur cette unité : un tag de [Connector](connector) ou une variable de [Logic](logic), jamais les deux. | La liste offre **(aucune)**, puis chaque tag activé d'un équipement activé sous la forme « Pilote · Équipement · Tag », puis chaque variable sous la forme « Variable Logic · Nom » (ou « Variable Logic · Dossier / Nom » si elle est rangée dans un dossier, de sorte que deux variables du même nom se distinguent), réduites à ce que le rôle peut employer : une voie échantillonnée se voit offrir des sources lisibles, une voie en écriture seule des sources inscriptibles; une variable et (aucune) conviennent aux deux. Choisir valide aussitôt. Une voie non liée s'échantillonne comme un vide, jamais comme une erreur. |
| **Nom d'alias** | « Le nom sous lequel cette unité lit la voie. Vide, elle revient au nom propre de la voie. » | Modifiable seulement là où la portée de la voie est « Chaque unité peut fixer le sien »; sinon la cellule est désactivée et son infobulle indique « Cette voie garde un seul nom pour toutes les unités. Changez cela dans le tableau des voies ci-dessus. » Poser un alias sur une voie non liée crée la ligne de liaison; le nom en vigueur est figé dans chaque essai. |
| (icône d'avertissement) | Montrée quand la source liée n'entre pas dans le type de la voie : un tag dont le type de nœud n'y entre pas, ou une variable dont la catégorie de sortie déclarée n'y entre pas. Une source que la station ne résout pas ne porte aucun type à contredire et reste sans marque. | Infobulle : « Le type de tag « String » n'est pas compatible avec le type de voie « Décimal ». » ou « Le type de variable « Texte » n'est pas compatible avec le type de voie « Décimal ». » |
| **Écriture partagée** | Pour une voie inscriptible, les autres unités dont la liaison pour une voie inscriptible se résout à la même source : des noms d'unité sur ce modèle, « Modèle · Unité » d'un modèle à l'autre. | Deux unités qui partagent une source d'écriture ne peuvent pas tourner ensemble : le second démarrage est refusé en nommant l'autre. Les lectures ne se partagent jamais. |
| **Valeur** | La lecture en direct de la source liée, échantillonnée toutes les 500 ms tant que ce tableau est ouvert et écrite dans le format de nombre de la station ([Localisation](settings-localization)) : un nombre entier sans fraction, un nombre décimal avec les décimales de la station, une date et une heure dans les formats de la station. | Lecture seule. |
| **Effacer la liaison** (ligne, encre de danger) | Efface les deux sources de la ligne. | L'alias demeure. |

Une source que la station n'offre plus (un tag ou une variable retirée, ou un tag dont la clé est
maintenant disputée par un autre tag) demeure sur la ligne sous la forme « Tag Connector indisponible · clé »
ou « Variable Logic indisponible · clé », désactivée, avec la raison « Cette source n'est plus disponible;
effacez-la ou remplacez-la. » Une source que le rôle de la voie a cessé d'offrir (une voie en
écriture seule liée à un point en lecture seule, par exemple) demeure nommée de la même façon, avec
« Cette voie ne fait que commander, et cette source ne peut pas être écrite. Effacez-la ou
remplacez-la. » ou son équivalent en lecture. Une telle ligne ne peut être qu'effacée ou remplacée.

Chaque modification de liaison s'enregistre d'elle-même dans le modèle. Tant que la station est
verrouillée, l'écriture est refusée (« La configuration est verrouillée tant qu'une unité est en
cours. ») et la cellule revient en arrière, donc les liaisons d'une unité qui tourne ne peuvent pas
changer sous elle; un essai qui enregistre déjà garde les sources qu'il a résolues au démarrage. Une
modification qui atteint la station après que le modèle a été rechargé en dessous est refusée avec
« La configuration de l'unité a changé. Vérifiez la liaison et réessayez. » Une ligne qui finit par nommer les deux sources à la fois n'atteint jamais la base : « La liaison de la voie « *nom* » désigne à la fois un Tag et une Variable. Choisissez-en une seule. »

### Appliquer un jeu d'alias {#applying-an-alias-set}

Quand le modèle détient des jeux d'alias (Réglage > Alias), un sélecteur et **Appliquer** se tiennent
sous le tableau : « Appliquer aux alias ci-dessus un jeu nommé de noms de voies. Appliquer ce jeu à
une unité écrase tous les alias de cette unité, donc ce qu'il ne nomme pas revient au nom propre de
la voie. Les modifications manuelles l'emportent jusqu'à une nouvelle application. » Appliquer est un écrasement complet et
visible des alias de l'unité : une voie que le jeu nomme prend ce nom (en créant la ligne de liaison
quand la voie n'est pas liée), une voie que le jeu laisse de côté voit son alias effacé, et une voie
dont la portée est « Un seul pour tout le modèle » est laissée entièrement tranquille. Une procédure
peut aussi épingler un jeu, lequel est appliqué quand la procédure est préparée sur l'unité; voir
[Jeux d'alias](process-aliases).

## Ce que cet écran ne fait pas {#what-this-screen-does-not-do}

- Il ne déclare aucune unité : ajouter, nommer et retirer une unité relève du tableau Unités de la
  page du modèle ([Unités](process-units)).
- Il n'enregistre rien : quelles voies un essai enregistre, et à quelle fréquence, relève d'un
  [datalog](process-datalogs); les cibles d'une recette sont sur la [recette](process-recipes).
- Il ne montre la valeur en direct que de l'unité choisie, et il n'écrit jamais de valeur : une voie
  inscriptible est écrite par une recette, un composant de tableau de bord ou un point de commande.
- La couleur et le groupe sont les réglages par défaut du modèle pour chaque graphique du modèle; un
  tableau de bord que vous avez composé garde l'encre que vous y avez choisie.
- Il ne change pas une unité qui tourne : chaque écriture est refusée tant que la station est
  verrouillée.
