Logic
La page Logic, sa colonne Espace d'adressage, les dossiers, la barre de commandes, le cycle et le canal d'écriture derrière chaque volet, et les trois permissions qui décident de ce que la page dessine.
Logic est la troisième entrée de la barre de navigation. Elle s'ouvre pour tout rôle qui détient Voir Logic, et son en-tête indique « Définissez des variables (valeurs calculées ou inscriptibles) et des actions (scripts qui les écrivent), composées sur l'espace d'adressage. » C'est une page liste et détail (comment les pages fonctionnent) : une colonne intitulée Espace d'adressage à gauche, une barre de commandes et un volet de détail à droite. Tout ce que vous modifiez ici s'enregistre automatiquement au fil de la frappe ; il n'y a de bouton d'enregistrement nulle part sur la page.
Dans ce domaine
| Page | Ce qu'elle couvre |
|---|---|
| L'espace d'adressage | Les sept racines réservées, la façon dont une adresse s'écrit et s'assainit, la zone de filtre, et les trois façons de saisir une adresse. |
| Variables | L'éditeur de variable : identité et adresse, les natures Expression et Memory, la carte Valeur, Définir la valeur. |
| Expressions | Le langage d'expression, la surface de lecture d'un point, les règles que l'évaluateur impose, l'éditeur de script. |
| Actions | L'éditeur d'action, ce qu'un script peut écrire, chaque message de validation, Exécuter et Activer/Désactiver. |
| Déclencheurs | L'éditeur de déclencheur et le planificateur périodique. |
| Alarmes | L'éditeur d'alarme, la machine d'état, la signalisation, Acquitter et Tout acquitter. |
| Venus d'autres pages | Les racines System, Server, Connector et Process, le volet du point, et l'avis qui nomme la page qui les modifie. |
La racine Ressources de la même colonne forme un groupe à part : Ressources couvre Visuels, Icônes, Couleurs, Symboles et Types de tracé.
La colonne Espace d'adressage
La colonne liste les racines de l'espace d'adressage sous deux intertitres. Définis ici contient ce que cette page crée et modifie : Variables Logic, Alarmes, Actions Logic, Déclencheurs et Ressources. Venus d'autres pages contient ce qu'elle se contente d'afficher : System, Server, Connector et Process. Chaque racine du premier intertitre porte un compte (Variables et Alarmes comptent leurs définitions, Actions et Déclencheurs les leurs, Ressources la somme de ses cinq catégories), et la racine Alarmes, chaque dossier d'alarme et chaque ligne d'alarme portent un point coloré à la pire priorité qu'ils contiennent parmi celles qui sont actives ou en attente d'acquittement ; le point s'efface dès que l'alarme reçoit sa réponse.
L'arborescence est paresseuse : une branche se charge quand vous la dépliez. Les valeurs en direct ne sont jamais dessinées dans l'arborescence ; c'est le volet de détail du nœud sélectionné qui les montre, rafraîchies deux fois par seconde.
| Commande | Ce qu'elle fait |
|---|---|
| Filtrer… | Réduit l'arborescence aux lignes dont le nom contient le texte, sans tenir compte de la casse. Un dossier survit dès qu'un de ses descendants correspond et s'ouvre sur ses correspondances ; la racine Ressources se réduit aux catégories dont le nom correspond, ou reste entière quand seul son propre nom correspond ; une racine de l'espace d'adressage dont le nom correspond reste listée et charge sa branche quand on la déplie, tandis que les sections Actions Logic et Déclencheurs ne listent que les lignes qui correspondent. |
| Nouveau… (pied de colonne) | Ouvre le menu de création : Nouvelle variable, Nouvelle action, Nouveau déclencheur, Nouvelle alarme, puis Nouveau dossier avec une destination par section (Variables, Alarmes, Actions, Déclencheurs). Tout ce qui est créé ici arrive à la racine de sa section sous le premier nom libre des séries Variable1, Action1, Trigger1, Alarm1 ou Folder1, et s'ouvre pour modification. Dessiné seulement pour un rôle qui détient Configurer Logic ; grisé avec la raison pendant que la station est verrouillée. |
| Tout déplier / Tout replier | Ouvre chaque branche (en chargeant chaque niveau au passage) ou referme tout jusqu'aux racines. |
| Clic droit | Sur une racine de section, sur l'un de vos dossiers ou sur une ligne de définition : sélectionne la ligne et ouvre son menu (ci-dessous). Rien ne s'ouvre sur un nœud venu d'une autre page. |
Le menu du clic droit porte, selon la ligne et le rôle : Nouvelle variable / Nouvelle action / Nouveau déclencheur / Nouvelle alarme (dans le dossier ou la racine cliqués), Nouveau dossier (non proposé sur un dossier déjà au troisième niveau), Acquitter (lignes d'alarme, Piloter Logic), Déplacer vers (un sous-menu avec la racine de la section et chaque dossier où la ligne peut être classée), Copier, Supprimer, et sur un dossier Renommer le dossier et Retirer le dossier. Un rôle sans Configurer Logic ne voit aucun menu, sauf l'entrée Acquitter d'une ligne d'alarme quand il détient Piloter Logic.
La zone de détail est vide tant que vous n'avez rien sélectionné : « Sélectionnez un nœud pour l'examiner : les variables, actions, déclencheurs et alarmes ouvrent leur éditeur. Créez-en un avec Nouveau. »
La barre de commandes
La barre dessine les verbes du nœud sélectionné. Ce que le rôle n'autorise jamais n'est pas dessiné ; ce que la situation refuse pour l'instant reste dessiné, grisé, avec la raison dans son infobulle : « La configuration est verrouillée tant qu'une unité est en cours. » pendant une opération d'ingénierie, « Runtime arrêté » pendant que la station fonctionne en lecture seule.
| Sélection | Groupe de tête | Groupe de queue (danger) |
|---|---|---|
| L'un de vos dossiers | Nouvelle variable / action / déclencheur / alarme (la nature que sa section contient), Nouveau dossier (grisé « Ce dossier est déjà aussi profond que les dossiers s'imbriquent. » à la limite de profondeur), Renommer le dossier | Retirer le dossier |
| Une variable | Copier | Supprimer la variable |
| Une action | Exécuter, Activer ou Désactiver, Copier | Supprimer l'action |
| Un déclencheur | Activer ou Désactiver, Copier | Supprimer le déclencheur |
| Une alarme | Acquitter, Activer ou Désactiver, Copier | Supprimer l'alarme |
| La racine Alarmes | Tout acquitter | |
| Ressources, Visuels | Importer une image… | |
| Ressources, Icônes | Nouvelle icône utilisateur | |
| Ressources, Couleurs | Nouvelle couleur | |
| Ressources, Symboles | Nouveau symbole utilisateur, Importer un symbole…, Copier l'instruction de conversation | |
| Un nœud System, Server, Connector ou Process | L'avis de modification ailleurs et son bouton Ouvrir |
Copier duplique la définition sélectionnée à la racine de sa section, sous le nom de la source quand il est libre et sinon Nom (2), Nom (3) et ainsi de suite, et ouvre la copie pour modification ; une alarme copiée démarre à Normale, un déclencheur copié démarre sans planification, une action copiée n'a aucune exécution enregistrée. Activer et Désactiver basculent l'indicateur Activé de la définition par le même enregistrement automatique que n'importe quel champ. Chaque Supprimer demande d'abord (« Supprimer « X » ? … Cette action est irréversible. ») et signale « Supprimé. » dans le journal des actions ; supprimer une variable ou une alarme laisse sans résolution chaque expression, script, condition et liaison de tableau de bord qui nommait son adresse, ce que la Vérification liste.
Les dossiers
Chacune des quatre sections peut être organisée en dossiers. Un dossier appartient à une section et ne contient que les éléments de cette section ; il s'imbrique sur trois niveaux au plus. Un dossier n'est que de l'organisation : il n'a ni permission, ni évaluation, ni état.
Pour Variables et Alarmes, la chaîne de dossiers compose l'adresse : une variable dans Forno se lit Variables.Forno.Setpoint, une variable de son sous-dossier Zona1 se lit Variables.Forno.Zona1.Setpoint. Un niveau d'une section est un espace de noms d'un seul segment, partagé par ses dossiers et ses définitions : deux dossiers peuvent chacun contenir un Setpoint, mais rien de classé au même niveau ne peut s'assainir en le même segment, et l'éditeur refuse un tel nom au fil de la frappe en nommant l'adresse déjà prise. Actions et Déclencheurs sont référencés par identité : leurs dossiers n'organisent donc que l'arborescence, et leurs volets affichent une ligne d'emplacement au lieu d'une adresse.
| Commande | Ce qui se passe |
|---|---|
| Nouveau dossier | Crée un dossier vide nommé FolderN et ouvre son champ de nom sur la ligne de l'arborescence ; laisser le champ vide ou inchangé conserve ce nom. |
| Renommer le dossier | Ouvre le champ de nom sur la ligne. Chaque adresse sous le dossier suit, chaque référence est réécrite, et le journal des actions dit combien (« Dossier renommé ; 3 références mises à jour. »). |
| Déplacer vers | Classe un dossier ou une définition sous un autre dossier de la même section, ou de nouveau à la racine de la section ; les adresses et les références suivent. La liste ne propose que les destinations légales : jamais le dossier lui-même, ni l'un de ses propres sous-dossiers, ni une autre section, ni un niveau où ses sous-dossiers dépasseraient la limite de profondeur. |
| Retirer le dossier | Demande d'abord, en disant ce qui bouge : « Retirer le dossier « X » ? Ses 3 éléments passent dans Variables ; rien n'est supprimé. Les références aux adresses qui changent sont mises à jour. » Les éléments et les sous-dossiers sont reclassés un niveau plus haut ; le retrait est refusé quand deux d'entre eux entreraient en collision à destination. |
Le cycle et la file
Un cycle du runtime s'exécute toutes les 100 ms sur une seule file séquentielle de la logique : il évalue chaque variable d'expression, puis chaque condition d'alarme activée, dans cet ordre, si bien qu'une condition lit les valeurs de variable de ce cycle. Les exécutions d'action, les écritures en mémoire, les écritures de tag et les acquittements empruntent la même file : un script ne s'intercale donc jamais dans un cycle ni dans un autre script. Un balayage distinct, également toutes les 100 ms, envoie les déclencheurs échus dans la file. Les consommateurs (tableaux de bord, voies, cette page) lisent l'état publié ; rien sur cette page ne déclenche une évaluation à la main.
Écrire des valeurs
Chaque écriture passe par un seul canal, quelle qu'en soit l'origine : l'affectation d'un script ou Write(...), le champ Définir la valeur d'une variable mémoire, une commande de tableau de bord, une recette Process, l'agent, un client OPC UA externe qui écrit un nœud public. Le canal refuse une valeur qui n'est pas finie ou qui ne se convertit pas vers le type de la cible, refuse une source qu'une recette en cours ou un verrouillage retient (en nommant qui la retient), journalise l'écriture de l'ancienne valeur vers la nouvelle sous sa source (Opérateur, MCP, l'essai), et l'applique sur la file de la logique. Une écriture dont la source est une action fait exception : elle ne va qu'à la capture détaillée, jamais à la console Événements, parce qu'un script qui écrit à chaque cycle produit des valeurs par milliers et enterrerait les nouvelles de la station sous elles. Ce que la console retient d'une action, ce sont ses échecs. Une écriture de tag prend la valeur physique et remonte à l'envers la chaîne de conversion du tag jusqu'à la valeur brute que l'équipement accepte. Le détail se trouve sur Variables et Actions.
Permissions et verrous
| Permission | Ce qu'elle autorise ici |
|---|---|
| Voir Logic | Ouvrir la page et lire tout ce qu'elle contient, valeurs en direct comprises. |
| Configurer Logic | Créer, modifier, renommer, déplacer, copier, activer, désactiver et supprimer variables, actions, déclencheurs, alarmes et dossiers, et tenir la bibliothèque de ressources. |
| Piloter Logic | Écrire une valeur en mémoire, exécuter une action, acquitter des alarmes, ici, sur les tableaux de bord et sur la page Événements. |
Un rôle qui n'a que Voir Logic lit toute la page : les éditeurs sont inertes sous une note (« Votre rôle peut consulter Logic mais ne peut pas le configurer (variables, actions, déclencheurs, alarmes et ressources). ») et aucun verbe de configuration ou de pilotage n'est dessiné. Un rôle qui a Piloter sans Configurer garde Exécuter, Acquitter, Tout acquitter et Définir la valeur vivants. Pendant qu'une unité Process tient la station, la page affiche l'avis de verrou d'ingénierie et chaque verbe de configuration et chaque champ d'éditeur sont grisés ; Exécuter, Acquitter et Définir la valeur restent disponibles. Pendant que le runtime est arrêté, la configuration comme le pilotage refusent avec « Runtime arrêté » ; l'arborescence et les volets restent lisibles mais ne portent aucune donnée en direct. Le catalogue des permissions se trouve sur Permissions.
Ce que la page ne fait pas
Il n'y a ni Enregistrer, ni Annuler : une frappe est un changement persisté (le journal des actions dit « Enregistré. ») et un enregistrement refusé recharge le champ avec ce que la station conserve. Les définitions que l'agent crée ou supprime par ses propres outils ne rafraîchissent pas d'elles-mêmes une colonne ouverte ; la branche est relue la prochaine fois que cette page crée, copie ou supprime dans cette section. L'historique des alarmes, la console Événements et les tableaux de bord vivent sur leurs propres pages.