# Tags

> La page d'un tag carte par carte : l'en-tête et les verbes, Général, Source de la valeur avec les champs de chaque pilote, Conversion, Valeur en direct avec le champ d'écriture, et Utilisé par avec Tout remplacer.

Un **tag** est un point adressable d'un équipement : une adresse sur le bus, un type de donnée, et la conversion qui transforme la lecture brute en valeur physique. Sélectionnez une ligne de tag sous un équipement, ou pressez Ouvrir sur une ligne de la grille Tags de l'équipement, pour ouvrir sa page. Voir Connector la lit ; Configurer Connector la modifie ; Étalonner les tags modifie la seule étape Étalonnage.

## L'en-tête {#the-header}

Un point en direct (vert tant que le tag a une valeur, orange quand la valeur est une valeur de remplacement, que l'étape Limites a levé un défaut ou que la lecture s'est tue, gris sinon, et gris quoi qu'il ait affiché en dernier sur un tag que la station ne lit pas : un tag désactivé, ou dont l'équipement est désactivé, placé sous une ligne désactivée ou sans hôte encore saisi), le nom du tag, et sous lui l'adresse du tag, `Connector.<Pilote>.<Dossiers…>.<Équipement>.<Tag>`, qui est ce que tapent Logic et les tableaux de bord. En dessous, quand ils s'appliquent : un avis de prudence avec l'indication de validation (un nom vide, une adresse manquante, un facteur de 0) et la dernière erreur en rouge. Tant que l'équipement du tag n'est pas connecté, un avis neutre renvoie à l'équipement au lieu de répéter l'échec de connexion : « Ce tag passe par l'équipement Furnace, qui n'est pas connecté. La page de l'équipement indique pourquoi. »

## La barre de commandes {#the-command-bar}

| Commande | Ce qu'elle fait | Grisée quand (situation) | Non dessinée quand (rôle) |
| --- | --- | --- | --- |
| **Copier la valeur** | Copie la valeur physique telle qu'elle est affichée dans le presse-papiers (« Valeur de « Temperature » copiée dans le presse-papiers. »). | Jamais. | Jamais. |
| **Activer** | Remet le tag dans l'acquisition et dans l'espace d'adressage en direct. | Déjà activé, ou la station refuse les modifications. | Sans Configurer Connector. |
| **Désactiver** | Retire le tag de l'acquisition et de l'espace d'adressage en direct ; l'équipement continue de scruter ses autres tags. | Déjà désactivé, ou la station refuse les modifications. | Sans Configurer Connector. |
| **Supprimer le tag** (encre de danger, à droite) | Demande « Supprimer « Temperature » ? Cela le retire de « Furnace ». Cette action est irréversible. », supprime, et sélectionne l'équipement. | La station refuse les modifications. | Sans Configurer Connector. |

Chaque carte s'enregistre automatiquement comme décrit sur [Connector](connector#the-detail-panel). Les cartes Général et Source de la valeur sont tenues inertes pour un rôle sans Configurer Connector, avec la note « Modifier le Connector demande la permission « Configurer Connector ». » au-dessus.

## La carte Général {#the-general-card}

| Champ | Ce que c'est | Valeurs / défaut | Effet |
| --- | --- | --- | --- |
| **Nom du tag** | Le nom du point ; le dernier segment de la clé de bus comme de l'adresse. | Obligatoire. | La frappe montre d'avance combien de références le renommage emporte ; la validation les réécrit : « Tag renommé et 2 références mises à jour. » Un nom vide est refusé : « Le nom du tag est obligatoire. » Un nom de tag OCPP doit se terminer par Meter, Status ou Transaction : « Un nom de tag OCPP doit se terminer par 'Meter', 'Status' ou 'Transaction' (par exemple Connector1Meter). » |
| **Type de donnée** | Le type scalaire OPC UA que le serveur intégré expose. | Boolean, SByte, Byte, Int16, UInt16, Int32, UInt32, Int64, UInt64, Float, Double, String, DateTime, Guid, ByteString, restreint à ce que le pilote sait transporter ; Float par défaut là où le pilote l'a, sinon le premier type qu'il propose. | En changer aligne ce qui en dépend : une action de limite NaN devient Valeur nulle sur un type qui ne peut pas porter de NaN, la politique NaN revient à Laisser passer sur un type non numérique, une nature de signal simulé incompatible avec le type est remplacée par celle du type par défaut, et une classe de registre Modbus franchit la frontière bit/registre avec le type. La carte Conversion change de forme avec lui. |
| **Accès** | Si la station lit, écrit, ou les deux. | Lecture seule, Écriture seule, Lecture et écriture ; Lecture seule. OCPP et LoRaWAN ne proposent que Lecture seule. Un tag Matter ne propose l'écriture que pour une valeur que le pilote peut changer, et sinon dit pourquoi sous le champ ([Un tag créé à la main](driver-matter#a-tag-made-by-hand)). Un tag NI-DAQmx propose les accès que sa mesure admet ([Mesures](driver-ni-daqmx#measurements)). Un tag SNMP sur un objet standard que sa MIB déclare en lecture seule ne propose que Lecture seule, et dit pourquoi sous le champ ([Types de donnée et accès](driver-snmp#data-types-and-access)). Un tag File ne propose que Lecture seule tant que son équipement n'autorise pas l'écriture, et une donnée du fichier reste en lecture seule ([Ce qu'un tag lit](driver-file#what-a-tag-reads)). Un tag Database ne montre ce que fait une écriture qu'une fois que son accès écrit ([Écriture](driver-database#writing)). | Lecture et écriture et Écriture seule dessinent le champ d'écriture sur la carte Valeur en direct ; un tag en écriture seule n'est pas scruté, ne compte pas dans l'état de santé de l'équipement et n'a aucune politique pour une lecture en échec, puisque la station ne le lit jamais. |
| **Unité** | L'unité physique, en texte libre. | Vide. | Affichée à côté de chaque résultat d'étape et de la valeur physique, et partout où la valeur est montrée. |
| **Intervalle de scrutation (ms)** | Un remplacement, propre au tag, de la période de scrutation de l'équipement. | 0 (employer la valeur par défaut de l'équipement) ; une valeur négative est enregistrée comme 0. | Masquée pour Mitsubishi MC, BACnet, OCPP, LoRaWAN et MQTT, qui l'ignorent. |

## La carte Source de la valeur {#the-source-card}

« D'où vient la valeur de ce tag, et la dernière lecture brute. » Les champs dépendent du pilote ; les pages des pilotes en expliquent le sens, voici l'inventaire tel que le volet le dessine.

### Adresse en texte libre {#free-text-address}

Les pilotes adressés par un jeton que vous tapez montrent un seul champ, intitulé selon le pilote : **ID de nœud** (OPC UA), **Symbole** (Beckhoff ADS), **Adresse d'équipement** (Mitsubishi MC), **Tag d'automate** (Rockwell), **Chemin de la ressource** (Redfish), **Chemin PI** (AVEVA PI), **Chemin** (HTTP), **Topic MQTT** ou **Métrique** (MQTT, selon que le protocole de l'équipement est MQTT simple ou Sparkplug B), **Adresse mémoire** ou **Nom de variable** (Omron, selon que le protocole de l'équipement est FINS ou Tags NJ/NX par nom), **Requête** (SCPI instruments), **Voie physique** (NI-DAQmx), **OID** (SNMP), avec l'indication du pilote en dessous. Le champ est obligatoire pour ces pilotes : « ID de nœud est obligatoire pour ce pilote. »

### Champs typés par pilote {#typed-fields-per-driver}

| Pilote | Champs |
| --- | --- |
| Modbus TCP, Modbus RTU | **Classe de registre** (Bobine (0xxxx), Entrée discrète (1xxxx), Registre d'entrée (3xxxx), Registre de maintien (4xxxx) : chacune avec le premier chiffre que l'adresse du manuel de l'équipement porte pour elle ; la valeur par défaut suit le type et l'accès : un booléen en lecture seule est une entrée discrète, un booléen inscriptible une bobine, un nombre en lecture seule un registre d'entrée, un nombre inscriptible un registre de maintien) et **Numéro de registre (base 0)**. |
| Siemens S7 | **Zone** (DataBlock, Merker, ProcessInput, ProcessOutput, Timer, Counter), **Numéro de DB** (DataBlock seulement), **Octet de début**, **Bit (0-7)** (tags booléens), **Longueur maximale (vide = 254)** (tags String). |
| Rockwell | **Décalage dans le tag (octets, bits pour BOOL)**, après le champ Tag d'automate ; 0 est le début du tag. |
| BACnet | **Type d'objet** (AnalogInput, AnalogOutput, AnalogValue, BinaryInput, BinaryOutput, BinaryValue, MultiStateInput, MultiStateOutput, MultiStateValue) et **Numéro d'instance**. C'est la valeur présente qui est lue. |
| OCPP | **Connecteur** (le numéro de connecteur, 1 par défaut), avec la note « Nommez le tag …Meter (relevé d'énergie), …Status (état du connecteur) ou …Transaction (numéro de la transaction en cours). » |
| Redfish | **Pointeur JSON (vide = document entier)**, « par exemple /Temperatures/0/ReadingCelsius », après le chemin de ressource. |
| Matter | **Sortie (endpoint)**, **Cluster Matter** et **Attribut**, sur une seule ligne ; le cluster se choisit dans le catalogue Matter par son nom. Les tags d'un équipement Matter viennent le plus souvent de l'équipement lui-même, cochés après l'appairage ou dans Découvrir (voir [Matter](driver-matter#tags)) ; ces champs servent au tag rare créé à la main. |
| MQTT | Sur un équipement en MQTT simple, **Chemin de la valeur** (où se trouve la valeur dans une charge utile JSON ; vide, il lit toute la charge utile), **Topic de commande** (où une écriture est publiée ; vide, il laisse le tag en lecture seule) et **Modèle de charge utile** (le JSON que publie une écriture, avec `{value}` là où va la valeur), après le champ Topic MQTT. Une métrique Sparkplug B n'en a aucun : voir [MQTT](driver-mqtt#tag-addressing). |
| Generic serial and TCP | Aucune adresse à saisir : **Mode de lecture** (Requête et réponse ou Écoute), **Requête**, **Filtre des messages**, **La valeur est** avec les champs de l'extraction qu'il nomme, **L'équipement écrit une virgule comme séparateur décimal** (Float et Double) et, sur un tag écrit, **Message d'écriture** et **Réponse attendue**. Voir [Generic serial and TCP](driver-generic-serial-tcp#tag-addressing). |
| SCPI instruments | À côté de la Requête, **Valeur de la réponse** (quelle valeur d'une réponse séparée par des virgules est celle du tag, comptée à partir de 1 ; vide, la réponse entière est lue) sur un tag qui est lu, et **Commande d'écriture** (ce qu'envoie une écriture, avec `{value}` là où va la valeur) sur un tag qui est écrit. Voir [SCPI instruments](driver-scpi#tag-addressing). |
| NI-DAQmx | À côté de la Voie physique, **Mesure** et les champs de la mesure : la plage dans son unité (**Valeur minimale** et **Valeur maximale**), **Configuration des bornes**, **Résistance de shunt** et **Valeur du shunt (Ω)**, **Type de thermocouple**, **Compensation de soudure froide (CJC)** et **Température CJC (°C)**, **Front compté**, **Sens du comptage**, **Comptage initial** et **Borne d'entrée**, chacun dessiné seulement là où la mesure le lit. Voir [NI-DAQmx](driver-ni-daqmx#tag-addressing). |
| SNMP | Sous l'OID, en lecture seule : **Nom dans la MIB**, le nom standard de l'objet avec ce que sa MIB en dit (ou « Aucun nom standard »), et **OID numérique**, le numéro que porte chaque requête. Voir [SNMP](driver-snmp#the-oid). |
| File | Aucune adresse à saisir : **Lit** (une valeur, le fichier entier ou une donnée du fichier) et, pour une valeur, les champs du format de l'équipement : **Colonne** et **Ligne à lire** (CSV), **Ligne à lire** et **La valeur est** (texte libre), **Chemin JSON** ou **Chemin XML** ; sur un équipement qui autorise l'écriture, **Une écriture** et **Modèle de ligne**. Voir [File](driver-file#tag-addressing). |
| Database | Aucune adresse à saisir : **Lit** (**Table et colonne** ou **Requête propre**) et ses champs : **Table de la valeur**, **Colonne de la valeur** et **Ligne à lire**, avec **Colonne clé** et **Valeur clé** ou **Colonne de date**, ou **Texte de la requête** ; sur un tag qui écrit, **Une écriture** et **Commande d'écriture**. Voir [Database](driver-database#tag-addressing). |
| LoRaWAN | **Adresser par canal/type Cayenne LPP** (case), **Canal / décalage dans la charge utile**, **Code de type LPP** (avec LPP activé), **Masque binaire (hexadécimal, vide = aucun)**, **Multiplicateur (vide = aucun)**. |

### Longueur sur le bus et ordre des octets {#wire-length-and-byte-order}

| Champ | Affiché pour | Ce que c'est |
| --- | --- | --- |
| **Quantité (registres, vide = automatique)** | Modbus, tags String seulement | Combien de registres de 16 bits lire ; vide en lit 4. Les autres types Modbus prennent une largeur fixe (un registre pour un booléen, un Int16 et un UInt16, deux pour Int32 et Float), si bien que le champ ne leur est pas dessiné. |
| **Longueur de lecture (octets, vide = automatique)** | Beckhoff, Mitsubishi, LoRaWAN | Le nombre d'octets ; vide le déduit du type : 1 pour Boolean, Byte et SByte ; 2 pour Int16 et UInt16 ; 4 pour Int32, UInt32 et Float ; 8 pour Int64, UInt64 et Double ; 16 pour String ; 4 sinon. |
| **Longueur (caractères, vide = 16)** | Omron (FINS, tags String seulement) | Combien de caractères le texte occupe, deux par mot, de 1 à 1998 ; vide lit 16. Tout autre type FINS occupe les mots que dit son type, si bien que le champ n'est pas dessiné pour lui. |
| **Octet de poids fort en premier (MSB first, gros-boutiste)** | Modbus (tags numériques, et tags booléens tenus dans un registre), LoRaWAN | Quelle extrémité de la valeur passe en premier sur le bus ; les mots entre parenthèses sont ceux que les manuels impriment. Cochée par défaut pour Modbus, décochée pour LoRaWAN. Modbus ne définit aucun ordre d'octets pour le texte, si bien qu'un tag String Modbus ne se la voit pas proposer. Un booléen Modbus dans une bobine ou une entrée discrète est un seul bit, sans octet à ordonner : elle ne lui est pas proposée non plus. |
| **Mot de poids fort en premier (mot haut en premier)** | Modbus (tags Int32 et Float) | Quelle moitié de 16 bits mène dans une valeur sur deux registres. Cochée par défaut. Sous les deux cases, **Ordre des octets de la valeur** nomme la disposition qu'elles forment avec les lettres qu'un manuel imprime : ABCD avec les deux cochées, CDAB avec la case du mot décochée, BADC avec celle de l'octet décochée, DCBA avec les deux décochées. Un type sur un seul registre (Boolean, Int16, UInt16) n'a pas de seconde moitié : la case n'y est donc pas dessinée, pas plus que pour LoRaWAN, dont la charge utile n'a pas de mot à mettre devant. |

### Adresse source (bus) {#source-address-wire}

Un tag Modbus termine son groupe de champs par **Adresse dans le manuel** : l'endroit où se trouve le tag dans la notation que le manuel de l'équipement imprime, le premier chiffre de la classe puis le registre compté à partir de 1. Le registre d'entrée 0 se lit 30001, un Float à cet endroit se lit de 30001 à 30002, et un registre au-delà de 9998 passe à six chiffres (le registre de maintien 9999 se lit 410000). Le numéro saisi dans **Numéro de registre (base 0)** reste celui que la requête porte ; voir [Modbus TCP](driver-modbus-tcp#tag-addressing).

Chaque autre tag non simulé termine son groupe de champs par un aperçu en lecture seule de l'adresse que le pilote reçoit réellement, assemblée depuis les champs ci-dessus et les champs de connexion de l'équipement : `DB1?0` pour un octet S7, `Program:Main.Counter?0` pour un tag Rockwell, `MAIN.fValue?4` pour un symbole ADS, `0,3` pour un objet BACnet, `ocpp://<borne>/<connecteur>`, `<ressource>#/Temperatures/0/ReadingCelsius` pour Redfish, `<DevEUI>/<voie>/<lpp>?quantity=<n>` pour LoRaWAN, `<endpoint>/<cluster>/<attribut>` pour Matter, `<topic>?path=<value path>&command=<command topic>` pour un tag en MQTT simple et le nom de la métrique pour un tag Sparkplug B, `listen?extract=position&start=5&length=6` pour un tag en écoute du pilote Generic serial and TCP, `D100` (ou `D200?16` pour un texte) pour un tag Omron FINS et `Motor.Speed?0` pour un tag NJ/NX, `ask=READ?&field=3` pour un tag SCPI qui lit la troisième valeur de sa réponse, `cDAQ1Mod1/ai0?measurement=voltageInput&terminal=diff&min=0&max=10` pour une entrée de tension NI-DAQmx, `1.3.6.1.2.1.33.1.2.1.0` pour un tag SNMP écrit `upsBatteryStatus.0`, `column?name=Force` pour un tag File qui lit la colonne Force d'un fichier CSV, `row?table=dbo.Orders&column=Quantity&key=OrderNo&equals=4711` pour un tag Database qui lit la quantité de l'ordre 4711, et le jeton lui-même pour OPC UA, AVEVA PI et HTTP (préfixé du chemin de ressource de l'équipement).

### Paramètres d'un signal simulé {#simulated-signal-parameters}

Un tag Simulated n'a pas de champ d'adresse : son nom est le point. À la place : **Nature du signal**, une liste restreinte aux formes que le type de donnée peut piloter, chacune avec une petite image de la forme à côté de son nom (Sinus, Rampe, Marche aléatoire et Compteur pour les nombres ; Booléen alterné pour Boolean ; Texte énuméré pour String ; Horloge pour DateTime ; GUID aléatoire pour Guid ; Octets aléatoires pour ByteString ; Maintien de consigne et Impulsion pour tout type). **Valeur par défaut** apparaît pour Marche aléatoire, Compteur et Maintien de consigne, sous forme de champ de texte, de case « Actif par défaut (true) » pour Boolean, ou de champ de date pour DateTime. **États (séparés par des points-virgules)** apparaît pour Texte énuméré : « par exemple Run;Stop;Pause (avance d'un cran toutes les 3 s). » Les paramètres de forme que le volet ne modifie pas (la bande et la période d'un sinus, le maintien d'une impulsion) voyagent avec le tag sans changer. La page [Simulated](driver-simulated) liste chaque paramètre.

### Valeur brute {#raw-value}

La carte se referme sur la dernière lecture brute telle que le pilote l'a livrée, avant toute conversion et dans le format de nombre de la station ; un tiret quand il n'y en a pas.

## La carte Conversion {#the-conversion-card}

« Comment la valeur brute devient la valeur physique. » La carte est dessinée pour les types numériques, booléens et chaînes, qui ont chacun leurs propres transformations. DateTime, Guid et ByteString passent inchangés, si bien que leur carte ne porte que l'étape Lecture non valide.

Pour un tag **numérique**, la carte est la chaîne d'étapes, de haut en bas : **Valeur brute**, puis **Mise à l'échelle** (Angulaire (×), Linéaire (+), un bouton **Deux points**), **Étalonnage** (les mêmes trois), **Lecture non valide** (deux politiques), **Limites** (Mini, Maxi, Action), **Décimales** (Décimales) et **Valeur physique** avec l'unité. Mise à l'échelle, Étalonnage, Limites et Décimales portent chacune dans leur en-tête une case qui allume ou éteint l'étape, et un résultat à droite : `= valeur` quand l'étape s'applique, `→ valeur` quand elle est court-circuitée. Lecture non valide n'a pas de case, parce que l'éteindre est déjà l'une de ses politiques (**Laisser passer** pour un NaN, **Afficher l'erreur** pour un équipement qui n'a pas répondu) : son en-tête porte le titre et le résultat, toujours `= valeur`. Un défaut de limite passe l'étape Limites au rouge et imprime « La valeur 130 est hors des limites (de 0 à 100). » sous la carte. Le calcul, les valeurs par défaut et les politiques sont sur [La chaîne de conversion](connector-value-pipeline) ; l'assistant deux points et le partage de permission entre Mise à l'échelle et Étalonnage sont sur [Étalonnage](connector-calibration).

Chaque nombre de la carte s'écrit comme la valeur en direct, dans le format de nombre de la station ([Localisation](settings-localization)) : une étape montre les décimales que son résultat possède, six au plus, et l'étape Décimales, quand elle est activée, celles qu'elle déclare ; les étapes d'un tag Float se lisent comme le flottant les porte (239,05, et non 239,050003). **Valeur physique** est ce que le tag fournit, la même valeur que lisent la carte Valeur en direct, l'enregistreur et chaque expression. Un tag entier dont la Mise à l'échelle ou l'Étalonnage change la valeur fournit un nombre réel : un tag Int16 mis à l'échelle par 0,1 affiche 62,40 à l'étape Décimales et 62,40 comme valeur physique ([La chaîne de conversion](connector-value-pipeline#raw-first)). Un tag entier que la Mise à l'échelle et l'Étalonnage laissent tel quel fournit un nombre entier : là où Limites écrête sur une borne avec des décimales et où Décimales n'arrondit pas déjà à zéro décimale, une note sous la valeur dit « Int16 ne contient que des nombres entiers : le tag fournit donc la valeur physique arrondie à l'entier le plus proche. Pour garder les décimales que produit la conversion, choisissez Float ou Double comme type de donnée. » Sur un tag Int64 ou UInt64, une valeur brute ou physique trop grande pour qu'un nombre réel la porte exactement (un compteur de nanosecondes, par exemple) s'écrit avec tous ses chiffres et sans la marque de groupement.

Un tag **Booléen** montre **Inverser (rapporter la négation de la valeur brute)**, le **Résultat**, et les politiques de lecture non exploitable. Un tag **chaîne** montre **Début de la sous-chaîne** et **Longueur (vide = jusqu'à la fin)**, le **Résultat**, et les politiques de lecture non exploitable. Un tag **DateTime**, **Guid** ou **ByteString** montre cette étape et rien d'autre : la ligne **L'équipement n'a pas répondu**, avec **Afficher l'erreur** et **Maintenir la dernière valeur correcte**. Un tag en écriture seule n'est jamais lu, si bien que l'étape laisse de côté la ligne de l'équipement qui n'a pas répondu : un tag numérique ne garde que la politique NaN, un tag booléen ou chaîne ne montre aucune étape Lecture non valide, et un tag DateTime, Guid ou ByteString ne montre aucune carte Conversion.

Passé la mise à l'échelle et l'étalonnage, les étapes numériques et les transformations booléennes et de chaîne sont de la configuration ordinaire : Configurer Connector les modifie, tout le monde les lit.

## La carte Valeur en direct {#the-live-value-card}

| Élément | Ce qu'il affiche |
| --- | --- |
| **Valeur actuelle** | La valeur physique avec son unité, dans le format de nombre de la station ([Localisation](settings-localization)) : avec autant de décimales que l'étape Décimales en déclare (aucune pour un type entier que la Mise à l'échelle et l'Étalonnage laissent tel quel) ou, quand l'étape est éteinte, avec les décimales qu'a la lecture, six au plus ; un tiret quand il n'y en a pas. |
| Note de remplacement | Quand la valeur n'est pas une mesure : « Remplace une mesure absente. », « Dernière valeur correcte, maintenue tant que l'équipement ne répond pas. » ou « Remplace une lecture en échec. », selon les politiques de lecture non exploitable. |
| Note de lecture muette | Quand la lecture s'est tue, c'est-à-dire qu'aucune nouvelle n'est arrivée pendant l'intervalle de scrutation du tag plus 10 secondes : « Aucune nouvelle lecture n'est arrivée depuis l'horodatage de l'application. Le tag compte cela comme une lecture en échec. » La valeur au-dessus est ce que le tag présente quand [l'équipement n'a pas répondu](connector-value-pipeline#the-device-did-not-answer), un tiret par défaut, à côté de la note de remplacement quand le tag maintient sa dernière valeur correcte ou la remplace ; le point passe à l'orange, et l'état de santé de l'équipement compte le tag comme ne répondant pas. |
| **Horodatage source** | Quand le matériel a pris la lecture. Pour un équipement OPC UA, c'est l'horodatage source que le serveur a envoyé avec la valeur ; un serveur peut le garder jusqu'à ce que la valeur ou sa qualité change, si bien qu'une valeur stable peut afficher un horodatage antérieur à l'horodatage de l'application. Pour les autres pilotes, c'est l'instant où le Connector a reçu la lecture, le même que l'horodatage de l'application. Tant qu'une lecture échoue, le libellé devient **Dernière tentative** et l'horodatage est celui de la tentative ; tant que la dernière valeur correcte est maintenue ou que la lecture s'est tue, le libellé reste **Horodatage source** et l'horodatage reste celui de cette lecture. |
| **Horodatage de l'application** | Quand le Connector l'a reçue. |
| **Valeur à écrire** | Pour un tag en lecture et écriture ou en écriture seule, et pour Configurer Connector seulement : un champ de texte (une case « Actif (true) » pour Boolean, un champ de date pour DateTime) et **Écrire**. « Saisissez la valeur physique ; la mise à l'échelle et l'inversion sont défaites avant l'écriture. » La ligne d'état indique « Saisissez une valeur à écrire. » ou « La valeur n'a pas pu être convertie. » avant que quoi que ce soit ne parte, « Écriture… » pendant que la valeur est en route, puis le dénouement. |

Écrire est grisé avec sa raison tant qu'un essai retient la station ou que le runtime est arrêté. C'est le volet qui attend l'équipement, pas la Logique : la ligne d'état rapporte ce qui est réellement arrivé à la valeur, et pas seulement que la demande est partie ; une deuxième valeur pour le même tag est refusée tant que la première voyage encore. Les dénouements qu'elle distingue :

| Ligne d'état | Ce qui s'est passé |
| --- | --- |
| « Valeur écrite. » | L'équipement a pris la valeur. |
| « Écriture refusée : la source est utilisée par une opération. » | Un essai ou un verrouillage retient le tag. Là où le canal a nommé qui la retient, c'est cette phrase qui s'écrit à la place du refus (« Écriture refusée : `<raison>`. »). |
| « Écriture refusée : ce tag est en lecture seule. », « Écriture refusée : ce tag n'est plus en service. », « Écriture refusée : la valeur ne correspond pas au type du tag. », « Écriture refusée : la station n'accepte pas d'écriture en ce moment. » | La station a tranché avant que quoi que ce soit ne parte. |
| « « Flow » a été remplacé par une valeur plus récente avant l'envoi. » | Une valeur plus récente pour le même tag a dépassé celle-ci dans la file de l'équipement et est partie à sa place. Ce n'est pas un échec : c'est la valeur la plus récente que reçoit l'équipement. |
| « Écriture annulée avant d'atteindre l'équipement. » | La demande a été retirée alors qu'elle attendait encore son tour. |
| « Écriture refusée par l'équipement. », « Écriture refusée par l'équipement : `<raison>`. » | L'équipement ou son pilote a refusé la valeur. La raison est celle que le pilote a donnée, dite dans la langue de la station (« l'adresse est en lecture seule », « l'équipement n'est pas connecté »), ou le code propre à l'équipement, qui se lit de la même façon dans toutes les langues : le statut d'un équipement Matter (CONSTRAINT_ERROR, 0x87), une erreur ADS (ADS 0x704). Un refus dont la station ne sait pas dire la raison dans sa langue s'affiche sans raison ; les mots du pilote lui-même, en anglais, sont dans le journal technique. Un échec dont la station connaît le genre (la réponse d'exception d'une unité Modbus, une connexion tombée, un statut HTTP) est dit à la place dans la phrase que lui donne la ligne rouge du tag, dans toutes les langues, comme sous [Dernière erreur](connector-health#last-error). |
| « Écriture non confirmée : l'équipement n'a pas répondu à temps. » | Aucune réponse n'est arrivée à temps, on ne sait donc pas si l'équipement a reçu la valeur. |
| « Échec de l'écriture : l'équipement n'a pas pu être joint. » | Tout le reste de ce qu'a répondu le câble, avant tout un équipement qui n'est pas connecté. |

Ce qui est remonté avant que la valeur brute ne parte est sur [La chaîne de conversion](connector-value-pipeline#writes-reverse-the-pipeline).

## La carte Utilisé par {#the-used-by-card}

« Tout ce qui, dans la station, lit ou écrit ce tag. » Le tableau liste chaque référence avec **Nature** (Voie, Verrouillage d'arrêt, Automatisme, Variable Logic, Action Logic, Alarme, Tableau de bord, Serveur Modbus, Serveur OPC UA, Publication MQTT), **Emplacement** (le modèle ou le tableau de bord qui la porte ; vide pour les natures Logic de premier niveau et pour une ligne de la table des registres du [serveur Modbus](connector-modbus-server)) et **Nom** (pour une ligne de la table, sa classe de registre et son adresse dans le manuel, par exemple Registre de maintien (4xxxx) 40101). Sans aucune, « Référencé par aucune voie ni propriété. » La recherche est indicative : un échec laisse la grille vide. Une ligne de la table tient son tag par son identité, elle suit donc un renommage ; une fois le tag supprimé, elle continue de nommer le tag qu'elle a perdu et un client qui la lit reçoit l'exception 04 : c'est pourquoi elle est listée ici, là où le tag se supprime. Une ligne de la [liste du serveur OPC UA](connector-opcua-served-nodes) apparaît de la même façon, avec son accès pour nom, et remplacer le tag déplace la ligne vers le nouveau. De même pour une ligne de la [carte Publier](driver-mqtt#the-publish-card) d'un broker, avec le broker pour emplacement et son topic pour nom ; remplacer le tag garde le topic.

Pour Configurer Connector, la carte ajoute l'appareillage de remplacement : un sélecteur qui liste par adresse chaque autre tag de l'espace d'adressage en direct, un bouton **Tout remplacer**, et une action de remplacement par ligne. Tout remplacer réécrit chaque référence listée vers le tag choisi en un seul lot tout ou rien (« 4 références utilisent désormais Connector.Simulated.Air.Pump.Flow. » ; « Aucune référence à remplacer. ») ; l'action de ligne n'en réécrit qu'une (« « Furnace temperature » référence désormais Connector.Simulated.Air.Pump.Flow. », ou « La référence a changé entre-temps. Actualisez et réessayez. » quand elle a bougé sous vos yeux). Une référence de verrouillage d'arrêt ou d'automatisme est de la structure Process, si bien que la remplacer demande Gérer Process en plus : « Remplacer la source d'un verrouillage d'unité demande la permission « Gérer Process ». » et « Tout remplacer inclut la source d'un verrouillage d'unité et demande la permission « Gérer Process ». » Tant qu'aucun tag n'est choisi, Tout remplacer et l'action de la ligne restent grisés, avec l'infobulle « Choisissez d'abord le tag qui reçoit ces références. » ; tant qu'une référence demande Gérer Process et que le rôle ne l'a pas, ils restent grisés avec la phrase ci-dessus pour infobulle. Une ligne de la table des registres du serveur Modbus passe au tag choisi selon les règles du serveur lui-même : une ligne qu'un client peut écrire refuse un tag qui n'accepte pas d'écriture, et rien n'est alors remplacé.

## Ce que la page d'un tag ne fait pas {#what-the-tag-page-does-not-do}

L'équipement et le pilote du tag sont fixés ; déplacez un point en le créant sur l'autre équipement et en employant Tout remplacer. Les étapes d'un seul tag se modifient ici à la fois ; les modifications sur plusieurs lignes sont la modification en masse de la grille de l'équipement, décrite sur [Équipements](connector-devices#mass-edit). Il n'y a ni historique ni courbe sur la page : le point en direct, la valeur et les horodatages sont l'échantillon courant, rafraîchi une fois par seconde.
