Variables
L'éditeur de variable, carte par carte : identité et adresse, les natures Expression calculée et Mémoire, les types de sortie, la carte Valeur en direct, Définir la valeur, la qualité et la rémanence, les commandes, et ce que l'éditeur refuse.
Une variable est une valeur typée que la station calcule ou conserve, adressée sous Variables par son chemin de dossiers et son nom assaini. Sélectionnez une ligne de variable dans la colonne Logic (ou créez-en une avec Nouveau… > Nouvelle variable, ou avec Nouvelle variable sur un dossier) pour ouvrir son éditeur. L'éditeur demande Voir Logic pour lire, Configurer Logic pour changer un champ, et Piloter Logic pour écrire une valeur en mémoire.
L'en-tête du volet montre la marque de la ligne (une marque d'expression ou de mémoire), le nom, et une ligne par nature : « Une valeur que cette station calcule à partir d'une expression sur l'espace d'adressage, recalculée à chaque cycle. » ou « Une valeur que cette station conserve : écrite par un script, un tableau de bord ou vous, et lisible partout par son adresse. » La colonne du formulaire porte la carte IDENTITÉ puis l'éditeur EXPRESSION DE CALCUL ou la carte MÉMOIRE; le rail de droite porte VALEUR et, pour une expression, POINTS RÉFÉRENCÉS.
Identité
| Champ | Ce que c'est | Valeurs et valeur par défaut | Effet |
|---|---|---|---|
| Nom | Le nom affiché; son segment assaini est le dernier niveau de l'adresse. | Texte libre; une nouvelle variable s'appelle VariableN. |
Se valide par le renommage sûr (ci-dessous). Un nom vide est refusé (« Un nom est obligatoire. »). |
| Ligne d'adresse | L'adresse à laquelle la variable répond, rappelée sous le nom : la racine de la section, les niveaux de dossier, le segment. | Lecture seule. | Suit le nom au fil de la frappe; la partie dossier ne change que par Déplacer vers dans l'arborescence. |
| Nature | Comment la valeur est produite. | Expression calculée (par défaut) ou Mémoire. | Passer à Mémoire réamorce la valeur depuis la valeur initiale; passer à Expression calculée la vide jusqu'au cycle suivant. |
| Type de sortie | La catégorie vers laquelle chaque résultat et chaque écriture sont convertis. | Booléen, Entier, Décimal (par défaut), Texte, Date et heure, Image, Icône, Couleur. | Le changer réamorce une variable mémoire (et persiste l'amorce quand elle est rémanente) ou vide une variable d'expression; l'aperçu se résout de nouveau sous le nouveau type. |
| Unité (facultative) | L'unité physique dessinée à côté de la valeur. | Texte libre, vide par défaut. | Affichée dans la carte VALEUR et lisible dans les scripts par .EngineeringUnit. |
| Description (facultative) | Texte libre. | Vide par défaut. | Aucun sur l'évaluation. |
Nom et adresse
Le champ Nom est un champ de renommage : la frappe reste locale, une ligne sous le champ annonce l'effet après une courte pause (« Vérification des références… », puis « Le changement de nom met à jour les 3 emplacements qui lisent cette adresse. », « Aucune référence n'utilise l'adresse actuelle. », ou « L'adresse effective ne change pas; aucune référence n'est à mettre à jour. » quand le nouveau nom s'assainit en le même segment), et Entrée ou la sortie du champ valide. La validation renomme la variable, réécrit chaque expression, script, condition et liaison de tableau de bord qui utilisait l'ancienne adresse, conserve la valeur en direct et les liaisons de voie (une voie se lie par la clé stable de la variable, jamais par son nom), et signale « Variable renommée et 3 références mises à jour. » Un nom qui entre en collision à son niveau est refusé sur place : « « X » répond déjà à « Variables.X ». Les noms rangés dans un même dossier doivent donner des segments distincts. » Les règles d'écriture et de collision sont sur L'espace d'adressage.
Expression calculée
Affichée tant que la nature est Expression calculée : l'éditeur EXPRESSION DE CALCUL avec son bouton Parcourir… et l'indication « Une seule expression JavaScript sur l'espace d'adressage (par exemple Connector.Simulated.Pump.Flow.ValueToReal() * 0.1, Variables.Setpoint.Value). Pour une sortie Image/Icône/Couleur, renvoyez une adresse Assets.Images, Assets.Icons ou Assets.Colors (par exemple Variables.Level.Value > 50 ? Assets.Colors.Red : Assets.Colors.Green). Saisissez pour l'autocomplétion, ou Parcourir… pour en choisir une. » Le texte s'enregistre automatiquement à chaque frappe et est validé toutes les demi-secondes; un problème s'affiche dans la carte VALEUR. Le langage, la surface de lecture et toutes les règles sont sur Expressions. Le texte de l'expression est conservé, mais ignoré, tant que la nature est Mémoire.
Mémoire
Affichée tant que la nature est Mémoire.
| Champ | Ce que c'est | Valeurs et valeur par défaut | Effet |
|---|---|---|---|
| Valeur initiale | L'amorce, sous forme de texte. En dessous : « Interprétée selon le type de sortie au démarrage. Laissez vide pour aucune valeur. » | N'importe quel texte, vide par défaut. | Interprétée selon le type de sortie à la création de la variable, au changement de nature ou de type de sortie, et à chaque démarrage d'une variable non rémanente. Vide signifie aucune valeur : la variable démarre à vide. Un texte qui ne s'interprète pas est signalé dans la carte VALEUR (« La valeur initiale n'a pas pu être interprétée comme décimal. ») et amorce un vide. |
| Rémanente : la dernière valeur écrite survit aux redémarrages | Si les écritures sont persistées. | Désactivée par défaut. | Une variable rémanente est persistée environ une seconde après la fin des écritures et jamais plus de cinq secondes après la première écriture non persistée; arrêter le runtime vide ce qui est en attente. Au démarrage suivant, le texte retenu est interprété sous le type de sortie courant; quand il ne s'interprète plus, la valeur initiale est employée à la place. Une variable non rémanente revient à la valeur initiale au démarrage. |
Définir la valeur
Le champ Définir la valeur et son bouton Écrire ne sont dessinés que pour un rôle qui détient Piloter Logic, et sont grisés avec « Runtime arrêté » pendant que la station est en lecture seule; le verrou d'ingénierie ne les touche pas. Saisissez une valeur et pressez Écrire : le texte est interprété selon le type de sortie; un texte qui ne s'interprète pas est refusé (« « abc » n'a pas pu être interprété comme entier. ») et rien n'est écrit; un champ vide n'écrit aucune valeur, ce qui ramène la variable à un vide. L'écriture emprunte l'unique canal : elle est refusée pendant qu'une recette en cours ou un verrouillage retient la variable (« « Variables.X » est protégé en écriture par « <qui la retient> ». »), journalisée de l'ancienne vers la nouvelle valeur sous la source Opérateur, appliquée sur la file de la logique, et marquée pour la rémanence quand la variable est rémanente. Le journal des actions indique « Valeur écrite. » Le champ n'est pas un afficheur; la carte VALEUR l'est.
Types de sortie
| Type de sortie | Porte | Remarques |
|---|---|---|
| Booléen | vrai ou faux | Enregistrable et traçable par une voie |
| Entier | un entier sur 64 bits | Enregistrable et traçable |
| Décimal | un réel en double précision | Enregistrable et traçable; l'afficheur montre deux décimales |
| Texte | du texte libre | |
| Date et heure | un instant | Affiché au format de date et d'heure de la station |
| Image | un identifiant de ressource, sous forme de texte | Sortie de présentation : l'expression renvoie une adresse Assets.Images.* |
| Icône | un glyphe ou du balisage SVG, sous forme de texte | Sortie de présentation : renvoyez une adresse Assets.Icons.* |
| Couleur | une couleur hexadécimale, sous forme de texte | Sortie de présentation : renvoyez une adresse Assets.Colors.* |
La conversion est la même conversion permissive que le reste de l'application emploie : le texte s'interprète, les nombres s'arrondissent ou se convertissent, et ce qui ne se convertit pas devient aucune valeur. Une variable mémoire d'un type de présentation conserve le littéral que vous écrivez (un identifiant de ressource, un glyphe, un hexadécimal). Les trois sorties de présentation existent pour les tableaux de bord, où le composant Image, Icône ou Symbol lié dessine ce à quoi la variable se résout à cet instant; les adresses qu'elles renvoient sont listées sous Ressources.
La carte Valeur
Le rail VALEUR montre la valeur courante, rafraîchie deux fois par seconde : pour un type scalaire, l'afficheur avec l'unité à côté; pour Image, l'image; pour Icône, le glyphe à sa taille; pour Couleur, l'échantillon avec sa valeur hexadécimale. Un vide est dessiné par un tiret. Pour une variable d'expression, la carte montre un aperçu du brouillon que vous tapez, évalué avec les valeurs courantes avant que le cycle ne le reprenne; tant que l'expression est invalide, l'afficheur reste un tiret et le message de validation apparaît dans la carte (une collision de nom y est signalée aussi, même si un mauvais nom n'arrête jamais l'aperçu). Sous un afficheur scalaire, la carte indique « Associez une voie à cette variable sous Process > Définition > Voies pour l'enregistrer. »; la liaison se fait sur la vue Voies d'un modèle Process.
Pour une variable d'expression, la carte POINTS RÉFÉRENCÉS liste chaque adresse que l'expression nomme avec sa lecture courante, « ? » quand l'adresse ne se résout plus, si bien qu'une entrée de mauvaise qualité se voit d'un coup d'œil.
Qualité
La valeur d'une variable est soit une valeur typée, soit rien du tout (un vide). Un point n'est de bonne qualité que lorsque sa propre valeur existe : une variable mémoire l'est dès qu'elle conserve une valeur, et une amorce vide reste un vide jusqu'à la première vraie écriture; une variable d'expression porte la qualité de sa dernière évaluation, donc dès qu'un point référencé manque, est de mauvaise qualité ou est sans valeur, l'expression n'est pas évaluée et la variable devient un vide de mauvaise qualité. Une lecture vide ne devient jamais zéro en silence. Les scripts lisent la qualité par .State(); une voie liée à la variable enregistre le vide comme un vide.
Commandes
| Commande | Ce qu'elle fait | Grisée quand | Non dessinée quand |
|---|---|---|---|
| Copier | Duplique la variable à la racine Variables sous un nom libre (Nom (2), etc.) et ouvre la copie; la copie a une clé neuve, donc aucune voie ne lui est encore liée. |
Station verrouillée ou en lecture seule. | Le rôle n'a pas Configurer Logic. |
| Supprimer la variable | Demande « Supprimer « X »? Cela retire la variable. Les références à son adresse ne se résoudront plus. Cette action est irréversible. » puis la supprime avec sa valeur retenue. | Station verrouillée ou en lecture seule. | Le rôle n'a pas Configurer Logic. |
| Déplacer vers (clic droit) | Classe la variable dans un autre dossier ou à la racine; l'adresse et chaque référence suivent. | Station verrouillée ou en lecture seule. | Le rôle n'a pas Configurer Logic. |
Une variable n'a ni Activer, ni Désactiver : elle est toujours évaluée ou toujours conservée.
Ce que l'éditeur refuse
- Un nom vide, ou un nom dont le segment est déjà pris à son niveau.
- Une expression qui n'est pas une seule expression JavaScript en lecture seule, qui référence un point qui n'existe pas ou une autre variable d'expression, ou qui échoue à une évaluation d'essai (les messages exacts sont sur Expressions).
- Une valeur initiale ou une valeur à écrire qui ne s'interprète pas sous le type de sortie, et toute valeur NaN ou infinie.
- Tout changement pendant que la station est verrouillée par un essai ou arrêtée : le champ se recharge avec ce que la station conserve et le journal des actions dit pourquoi.
Ce que l'éditeur ne fait pas
Il ne trace ni n'enregistre (une voie le fait), n'écrit pas de tags (un script ou une commande de tableau de bord porte une valeur mémoire plus loin), ne référence pas d'autres variables d'expression, ne garde aucun historique de valeurs, et ne persiste pas une valeur non rémanente d'un redémarrage à l'autre.