L'espace d'adressage de l'unité
Chaque point qu'une unité publie sous Process.Modèle.Unité, son type et son sens, quels points sont des commandes inscriptibles, et ce qu'un script Logic peut en lire.
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 les atteignent sans plomberie supplémentaire. La branche se parcourt sur la page
Logic sous « Venus d'autres pages » (Depuis les 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 « Chambre climatique » s'adresse
Process.Chambre_climatique.Unité_1.
| Branche | Ce qu'elle expose | Inscriptible |
|---|---|---|
Channels.<Channel> |
La valeur liée en direct de chaque voie, typée comme la voie la 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 auteur. |
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 déclenche (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.<branche> et Productivity.Rolling.<branche> |
La projection de productivité de l'unité pour chaque période. | Non. |
Les voies
Un point de voie lit la valeur derrière la liaison de l'unité, projetée dans le type de donnée de la
voie, et se lit comme un vide 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ée, 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 à un tag; une liaison à une variable répond la valeur et
l'horodatage d'application.
Procedure
Chaque point est calculé à partir de l'essai en direct et se lit avec une bonne qualité; un point qui n'a rien à dire se lit comme un vide.
| Point | Type | Sens |
|---|---|---|
Status |
Texte | Preparing pendant 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 période d'occupation : réservation, En cours, Suspendu, Écriture et fermeture finale du fichier d'essai. |
Verdict |
Texte | Ok, Nok, Indeterminate ou None, écrits exactement ainsi, peu importe 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) répond aussi. Vide au repos. |
ActiveProcedure |
Texte | Le nom de l'essai actif (« Procédure · Unité »). Vide au repos. |
SegmentIndex |
Entier | Le segment courant du profil temporel, numéroté à partir de 0. Vide sans profil. |
CycleIndex |
Entier | Le cycle courant, numéroté à partir de 0. Vide au repos. |
CycleCount |
Entier | Le nombre total de cycles de l'essai (1 pour un passage unique). Vide au repos. |
Cycle |
Texte | « 2 / 10 » pour un essai cyclique; un vide quand l'essai n'est pas cyclique, pour qu'un affichage lié montre la marque de vide au lieu d'un passage unique trompeur. |
FailedCycles |
Entier | Les cycles jugés non conformes jusqu'ici. Vide quand l'essai n'est pas cyclique. |
SamplesEvaluated, SamplesOut, SamplesUnavailable, SamplesInvalid |
Entier | Les compteurs de preuve de l'évaluation, mis à jour de façon atomique par le moteur d'évaluation. Vides sans preuve jugée. |
Elapsed |
Décimal | Les secondes écoulées depuis le démarrage de l'essai. Vide au repos. |
StartedAt |
Date et heure | Quand l'essai actif a démarré. Vide 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. Vide 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. |
Commands
Lire un point de commande répond « ceci peut-il s'exécuter maintenant », donc un bouton lié se désactive de lui-même; l'écrire déclenche la commande par la console d'essai, journalisée avec l'origine 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 en mode Temporel. | Fige la fenêtre. |
Resume |
Un essai est Suspendu et le verrouillage est normal. | Relâche 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 d'après-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é).
Next
| Point | Type | Sens |
|---|---|---|
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.<Champ> |
Texte | Un point par champ de métadonnées que la procédure préparée demande; la branche se remodèle quand l'unité est préparée de nouveau, et un champ d'une autre procédure se lit comme un vide. Un champ manuel (texte ou numérique) est un point de préparation inscriptible, ce qu'un composant de saisie qui y est lié écrit. Un champ séquentiel est une prévision 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 est consommée, non effacée, par le démarrage d'un essai.
Productivity
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; un vide tant que le dénominateur n'existe pas. |
Summary |
Finalized, OK, NOK, Indeterminate, Unclassified, Aborted, Failed |
Comptes entiers. |
Outputs.<clé> |
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.<clé> |
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, pas du nom affiché, donc un changement de nom ne déplace jamais une expression. Chaque point est en lecture seule, et la projection est lue dans l'index des historiques, jamais dans 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 vide, sans valeur; 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é | Vide, 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; vide jusqu'à ce qu'il soit lu. |
| Un critère que le dernier essai n'a pas jugé (d'une autre évaluation, ou ajouté depuis) | Vide 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 voies, 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 déclencher une commande, ni écrire un champ de préparation, ni ajouter un commentaire; ces écritures appartiennent aux consommateurs de commandes 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;
}