L'espace d'adressage de l'unité

Chaque point qu'une unité publie sous Process.Model.Unit, son type et son sens, quels points sont des commandes inscriptibles, et ce qu'un script Logic peut y lire.

Afficher en Markdown

Chaque unité publie ses données d'essai comme des adresses Logic ordinaires sous Process.<Model>.<Unit>, donc les tableaux de bord, les expressions Logic, le serveur OPC UA embarqué et l'agent y accèdent sans aucune tuyauterie supplémentaire. La branche se parcourt sur la page Logic sous « Venus d'autres pages » (Depuis d'autres pages) et dans chaque sélecteur d'adresse. Renommer un modèle, une unité, une voie, un champ de métadonnées, une évaluation ou un critère remplace les adresses correspondantes et réécrit les références textuelles vivantes ; les fichiers enregistrés gardent les noms figés au moment où ils ont été écrits. Les segments sont les noms assainis : une unité nommée « Unité 1 » du modèle « Climatic chamber » s'adresse Process.Climatic_chamber.Unité_1.

Branche Ce qu'elle expose Inscriptible
Channels.<Channel> La valeur liée en direct de chaque voie, typée comme la voie le déclare. Une voie inscriptible (rôle Écriture seule ou Lecture et écriture) est un point inscriptible par le canal d'écriture ; une source qu'un essai détient refuse tout autre écrivain.
Procedure.<point> L'état de l'essai, un scalaire par point (tableau ci-dessous). Non.
Commands.<command> Start, Hold, Resume, Stop, Abort et Comment. Oui : écrire distribue la commande (tableau ci-dessous).
Next.<point> La zone de préparation que le prochain démarrage consomme. Les champs de métadonnées manuels seulement.
LastRun.<point> L'enregistrement du dernier essai que l'unité a terminé (LastRun). Non.
Productivity.Today.<branch> et Productivity.Rolling.<branch> La projection de productivité de l'unité pour chaque période. Non.

Voies

Un point de voie lit la valeur derrière la liaison de l'unité, projetée vers le type de donnée de la voie, et se lit comme une lacune quand la voie n'est pas liée ou que sa source est indisponible. Dans un script Logic, le point est une projection typée en lecture seule du tag ou de la variable liés, jamais le tag lui-même : Value, ValueObject, ValueRaw, ValueScaled, ValueCalibrated, ValueLimited, ValueRounded, les conversions ValueToBool(), ValueToInteger(), ValueToReal(), ValueToString() et ValueToDateTime(), la qualité State(), les horodatages SourceTimeStamp() et ApplicationTimeStamp(), Refresh(), Name et EngineeringUnit. Les membres de la chaîne de conversion répondent pour une liaison de tag ; une liaison de variable répond la valeur et l'horodatage applicatif.

Procédure

Chaque point est calculé depuis l'essai en direct et se lit avec une bonne qualité ; un point qui n'a rien à dire se lit comme une lacune.

Point Type Signification
Status Texte Preparing tant que l'unité est réservée et qu'aucun essai n'existe encore, Idle tant que rien ne la détient, sinon l'état de l'essai : Running, Held, Saving, Completed, Aborted, Failed.
Running Booléen Strictement l'état En cours ; jamais vrai pour la préparation, la suspension, l'écriture ou la finalisation.
Busy Booléen Toute la durée d'occupation : la réservation, En cours, Suspendu, Écriture et la fermeture finale du fichier d'essai.
Verdict Texte Ok, Nok, Indeterminate ou None, écrits exactement ainsi, quel que soit le mot qu'affichent l'interface ou une étiquette imprimée : une comparaison s'écrit Process.<Model>.<Unit>.Procedure.Verdict == "Nok". La preuve jugée reste lisible après la fin de l'essai jusqu'au démarrage du suivant.
Mode Texte Le mode de l'essai actif, Instant, Temporal ou Controlled ; une commande unique (instantané, évaluer maintenant) le rapporte aussi. Lacune au repos.
ActiveProcedure Texte Le nom de l'essai actif (« Procédure · Unité »). Lacune au repos.
SegmentIndex Entier Le segment actuel du profil temporel, numéroté à partir de 0. Lacune sans profil.
CycleIndex Entier Le cycle actuel, numéroté à partir de 0. Lacune au repos.
CycleCount Entier Le nombre total de cycles de l'essai (1 pour un passage unique). Lacune au repos.
Cycle Texte « 2 / 10 » pour un essai cyclique ; une lacune quand l'essai n'est pas cyclique, pour qu'un relevé lié montre la marque de lacune au lieu d'un passage unique trompeur.
FailedCycles Entier Les cycles jugés non conformes jusqu'ici. Lacune quand l'essai n'est pas cyclique.
SamplesEvaluated, SamplesOut, SamplesUnavailable, SamplesInvalid Entier Les compteurs de preuve de l'évaluation, mis à jour d'un bloc par le moteur d'évaluation. Lacune sans preuve jugée.
Elapsed Décimal Les secondes depuis le démarrage de l'essai. Lacune au repos.
StartedAt Date et heure Quand l'essai actif a démarré. Lacune au repos.
Metadata.<Field> Texte Un point par champ de métadonnées du modèle : la valeur que l'essai en cours a figée au démarrage. Lacune au repos et pour un champ que cet essai ne demande pas ; un champ laissé vide se lit comme un texte vide. C'est ce qu'une action déclenchée au démarrage lit de l'essai qui commence, puisque Next.<Field> montre déjà le suivant.

Commandes

Lire un point de commande répond « ceci peut-il s'exécuter maintenant », donc un Bouton lié se désactive tout seul ; l'écrire distribue la commande par la console d'essai, journalisée avec la source de la surface qui écrit et enregistrée avec l'identité de qui a pressé. Une commande est un appel de service, jamais une écriture de point mise en file.

Point Se lit vrai quand Écrire
Start L'unité n'est pas occupée, le runtime accepte les opérations, le verrouillage est normal et une procédure est préparée. Démarre la procédure préparée avec les métadonnées préparées.
Hold Un essai est En cours et sa procédure est Temporelle. Fige la fenêtre.
Resume Un essai est Suspendu et le verrouillage est normal. Lève la suspension.
Stop Un essai est En cours. Termine l'essai en Terminé.
Abort Un essai est En cours ou Suspendu. Termine l'essai en Interrompu.
Comment Jamais : le point n'a aucune lecture. Ajoute le texte écrit comme commentaire à l'essai actif, ou comme note post-essai sur le dernier essai terminé de l'unité quand elle est au repos. Une unité sans aucun essai refuse (« L'unité n'a aucun essai à commenter. »), et un texte vide aussi.

Chaque commande se lit fausse tant que la station refuse les écritures (le runtime arrêté).

Préparation

Point Type Signification
Next.Procedure Texte Le nom de la procédure préparée. En lecture seule ici : la préparation se fait sur la carte Essai du volet d'unité.
Next.<Field> Texte Un point par champ de métadonnées que la procédure préparée demande ; la branche se reforme quand l'unité est préparée de nouveau, et un champ d'une autre procédure se lit comme une lacune. Un champ manuel (texte ou numérique) est un point de préparation inscriptible, ce qu'écrit un composant Saisie qui lui est lié. Un champ séquentiel est une prédiction en lecture seule de l'identifiant que le compteur composerait maintenant ; le lire ne le réserve jamais.

La préparation vaut pour toute la station, vit en mémoire et est passagère : elle se réinitialise au démarrage de l'application et elle est consommée, non effacée, par le démarrage.

Productivité

Deux périodes, Today (depuis minuit local) et Rolling (la fenêtre déclarée sur le modèle ou sur l'unité), chacune avec trois branches (Productivité) :

Branche Points Type
Summary ProductivityPercent, YieldPercent, TypicalElapsedSeconds Décimal ; une lacune tant que le dénominateur n'existe pas.
Summary Finalized, OK, NOK, Indeterminate, Unclassified, Aborted, Failed Des comptes entiers.
Outputs.<key> Quantity, RatePerHour Décimal ; une clé par quantité nommée, ou par procédure productive quand le modèle ne déclare aucune quantité.
Procedures.<key> Quantity, RatePerHour et les points de résumé ci-dessus Comme ci-dessus, par procédure productive.

Les clés dérivent de l'identifiant stable et de l'unité de mesure figée, non du nom affiché, donc un renommage ne déplace jamais une expression. Chaque point est en lecture seule, et la projection est lue depuis l'index d'historique, jamais depuis les fichiers d'essai.

LastRun

L'enregistrement du dernier essai que l'unité a terminé : lequel c'était, comment il s'est terminé, ce que l'opérateur a saisi au démarrage et comment chaque critère s'est conclu. C'est ce que lit une action Logic déclenchée à la fin (Actions), et tout autre consommateur le lit de la même façon : un écran qui montre la dernière pièce, une alarme, les serveurs de la station. Chaque essai enregistré de l'unité compte, y compris un essai en échec et un instantané ou une évaluation immédiate ; un essai importé ne compte jamais.

Point Type Signification
RunId Texte L'identifiant de l'essai.
Procedure Texte Le nom de la procédure tel que l'essai l'a enregistré.
Status Texte Completed, Aborted ou Failed, écrits exactement ainsi.
Verdict Texte Ok, Nok, Indeterminate ou None, écrits comme pour Procedure.Verdict ; un essai en échec se lit None.
StartedAt, FinishedAt Date et heure Quand l'essai a démarré et quand il s'est terminé.
Elapsed Décimal Les secondes du démarrage à la fin.
CycleCount Entier Les cycles de l'essai (1 pour un passage unique).
FailedCycles Entier Les cycles jugés non conformes.
Metadata.<Field> Texte Un point par champ de métadonnées du modèle : la valeur que l'essai a figée au démarrage. Un champ que l'essai n'a pas demandé se lit comme une lacune ; un champ laissé vide se lit comme un texte vide.
Evaluations.<Evaluation>.<Criterion>.<point> Comme ci-dessous Un dossier par évaluation du modèle et, dessous, un par critère, au nom du critère, ou à celui de sa voie quand il n'en a pas.

Chaque critère porte un résultat, replié sur tous les cycles où il a été jugé, donc l'adresse est la même pour un passage unique et pour un essai de cent cycles :

Point Type Signification
Outcome Texte Ok, Nok ou Indeterminate, écrits exactement ainsi : un cycle non conforme donne Nok, sinon un cycle indéterminé donne Indeterminate, sinon Ok.
Passed Booléen Vrai seulement quand Outcome vaut Ok.
Value Décimal La valeur mesurée de la voie surveillée : le dernier échantillon évalué de la fenêtre, en mode Un seul point celui qui est jugé, du cycle le plus récent qui en a mesuré un.
MinValue, MaxValue Décimal La plus petite et la plus grande valeur évaluée, sur tous les cycles.
Limits Texte Les limites telles qu'elles ont été enregistrées, comme 5 .. 45.
WorstExcursion Décimal Le plus grand écart au-delà d'une limite, sur tous les cycles.
FailedCycles Entier Les cycles qui ont jugé ce critère non conforme.

La branche a la forme du modèle, jamais celle du dernier essai : chaque champ de métadonnées du catalogue et chaque critère de chaque évaluation est un point, donc un script qui en nomme un est validé avant tout essai, et après un essai d'une procédure qui a jugé selon une autre évaluation.

Situation Ce que lisent les points
Aucun essai de l'unité ne s'est encore terminé Une lacune de mauvaise qualité, pour chaque point.
Un essai se termine Le nouvel enregistrement, en place avant que le Procedure.Status de l'unité dise que l'essai est terminé.
Un autre essai de l'unité est en cours L'enregistrement précédent, jusqu'à la fin de cet essai.
L'application redémarre Le dernier essai terminé de l'unité, relu dans son fichier peu après le démarrage ; une lacune jusqu'à ce qu'il soit lu.
Un critère que le dernier essai n'a pas jugé (d'une autre évaluation, ou ajouté depuis) Une lacune pour chaque point.
Deux évaluations, ou deux critères, dont les noms se lisent pareil Rien : l'adresse ne se résout vers aucun des deux, et la page de l'évaluation le dit (Évaluations).

Renommer un champ de métadonnées, une évaluation, un critère ou la voie d'un critère sans nom déplace ces adresses comme tout autre renommage de cette page.

Ce qu'un script peut faire

Les scripts de variable, d'alarme et d'action de Logic peuvent lire tout ce qui est ici : les valeurs de voie, l'état de l'essai, la disponibilité des commandes, les valeurs préparées, le dernier essai et les points de productivité. Ils ne peuvent ni distribuer une commande, ni écrire un champ de préparation, ni ajouter un commentaire ; ces écritures appartiennent aux consommateurs de commande explicites : les volets de conduite, les Boutons et les Saisies des tableaux de bord, l'automatisme de l'unité et les outils de l'agent.

Un point de voie se lit comme la projection typée de Voies ; tout autre point d'ici se lit comme sa valeur brute, sans .Value après lui, contrairement à une variable :

if (Process.Oven_soak.Oven_1.LastRun.Verdict === "Ok") {
  Variables.Last_serial = Process.Oven_soak.Oven_1.LastRun.Metadata.Serial;
}