Ereigniseinträge

Beobachtete Bedingungen des geprüften Dings, als JavaScript-Ausdruck über den Kanälen des Modells geschrieben und während eines Laufs oder immer beurteilt.

Als Markdown ansehen

Ein Ereigniseintrag hält fest, dass das geprüfte Ding etwas Bemerkenswertes getan hat. Wo ein Alarm die Anlage und die Ausrüstung beobachtet, gehört ein Ereigniseintrag zum Ablauf: Seine Flanken bleiben bei dem Lauf, der sie beobachtet hat, und gehen außerdem in den dauerhaften Verlauf Ereigniseinträge der Seite Ereignisse ein. Seine Bedingung ist ein JavaScript-Ausdruck über den Kanälen des Modells, auf beiden Flanken entprellt und von der Qualität dessen bestimmt, was er liest. Ereigniseinträge wohnen unter Process > Modelle > Modell > Setup > Ereigniseinträge und brauchen die Berechtigung Rezepte und Bewertungen ändern.

Der Ordner Ereigniseinträge

Die Auswahl der Zeile Ereigniseinträge öffnet die Ordnerseite ("Beobachtete Bedingungen des geprüften Dings. Jede Flanke bleibt, wo es zutrifft, bei ihrem Lauf und geht außerdem in die dauerhafte Historie der Ereigniseinträge ein.") mit einer Karte je Ereigniseintrag, nach Namen; ein Klick auf eine Karte öffnet ihn, und das X entfernt ihn. Ohne einen sagt die Seite "Noch keine Ereigniseinträge. Fügen Sie einen hinzu."

Befehl Was er tut Ausgegraut, wenn (Lage) Nicht gezeichnet, wenn (Rolle)
Ereigniseintrag (Detailleiste, Ordner gewählt; Rechtsklick Ereigniseintrag hinzufügen) Fügt Occurrence <n> hinzu: Schweregrad Warnung, während der Abläufe scharfgeschaltet, aktiviert, keine Meldung, leere Bedingung. Wählt ihn aus. Irgendeine Einheit hält einen Lauf, oder die Runtime ist gestoppt. Ohne Rezepte und Bewertungen ändern.

Die Seite des Ereigniseintrags

Der Kopf trägt den Namen, eine Pille mit dem Schweregrad (in dessen eigener Farbe) und eine Pille Deaktiviert, wenn der Ereigniseintrag aus ist. Zwei Arten von Hinweis können darunter stehen:

  • Eine warnende Anmerkung, wenn die gespeicherte Bedingung nicht gültig ist (der Entwurf wird trotzdem gespeichert; die Anmerkung sagt, was falsch ist, siehe unten).
  • Ein Hinweis Bewertung nicht verfügbar je Einheit, auf der die laufende Bedingung nicht ausgewertet werden konnte, als "<unit>: <error>". Die Diagnose einer Einheit wird einmal je unverändertem Fehler geschrieben und gelöscht, wenn die Auswertung wieder gelingt.

Identität und Verhalten

Feld Was es ist Werte / Vorgabe Wirkung
Name Der Name des Ereigniseintrags: die Baumzeile, die Beschriftung des Ereignisses in der Laufdatei, im Verlauf der Seite Ereignisse und in den Berichten. Freier Text; Occurrence <n> beim Anlegen. Benennt die Zeile um und ebenso das, was die Checkliste eines Ablaufs so nennt.
Schweregrad Das Gewicht einer Aktivierung. Die Auswahl zeigt jede Möglichkeit in der Farbe, die ihre Pille tragen wird. Information, Warnung (Vorgabe), Kritisch. Färbt die Pille und die Episode überall, wo sie gelistet wird. Während eines Laufs verlangt die Aktivierung eines Ereigniseintrags mit Warnung oder Kritisch außerdem eine Benachrichtigung des Betriebssystems, solange die Anwendung verborgen oder minimiert ist; Information bleibt im Fenster.
Scharfgeschaltet Wann die Bedingung beurteilt wird. Während eines Ablaufs (Vorgabe): nur, solange ein Lauf eines Ablaufs aktiv ist, der ihn scharfschaltet, über den aufgezeichneten Zeilen. Immer: auch außerhalb von Läufen, durch eine Überwachung im Hintergrund, die die Verknüpfungen der Einheit live liest. Ein Ereigniseintrag mit Immer braucht keinen Ablauf, der ihn scharfschaltet; einer mit Während eines Ablaufs wird nur von den Abläufen beurteilt, die ihn ankreuzen.
Einschaltverzögerung (ms) Wie lange die Bedingung wahr bleiben muss, bevor Aktiviert bestätigt wird, in der Auflösung der Abtastwerte. Eine Anzahl Millisekunden; 0 als Vorgabe. Das Feld nimmt keine negative Zahl an: Die Eingabe wird abgelehnt, der Hinweis unter dem Feld sagt das, und der vorherige Wert kommt zurück. Entprellt die steigende Flanke.
Ausschaltverzögerung (ms) Wie lange die Bedingung falsch bleiben muss, bevor Beendet bestätigt wird. Dasselbe; 0 als Vorgabe. Entprellt die fallende Flanke.
Aktiviert Ob der Ereigniseintrag überhaupt scharfschaltet. Ein als Vorgabe. Ein deaktivierter Ereigniseintrag schaltet nie scharf, weder in einem Lauf noch außerhalb, und sperrt nie einen Start.
Meldung Der Text, der mit einer Aktivierung aufgezeichnet und angesagt wird. Freier Text; leer als Vorgabe. Reist mit jeder Flanke in die Laufdatei und ins Journal.

Bedingung

"Ein einzelner JavaScript-Ausdruck, der Bool zurückgibt." Die Karte hält einen Codeeditor, die Liste der Verweise, die Sie benutzen dürfen ("Verfügbare Kanalverweise: Channels.Ch_1, Channels.Outlet_temperature, …"), und die Erinnerung "Während eines Laufs liest die Bedingung die aufgezeichneten Spalten des Datalogs; die Überwachung Immer liest die Verknüpfungen der Einheit live. Syntaxfehler, fehlende Verweise und Fehler bei der Auswertung werden hier gezeigt, statt als falsch oder als Signalverlust behandelt zu werden."

Auf einen Kanal wird als Channels.<identifier> verwiesen, wobei der Bezeichner der bereinigte Name des Kanals ist: Buchstaben und Ziffern überleben, jedes andere Zeichen wird _, und einem Namen, der mit einer Ziffer beginnt, wird ein _ vorangestellt. Channels hält allein die Kanäle des Modells und sonst nichts, ein Kanal namens Math, isNaN oder true ist also weiterhin ein gültiger Kanalname und verdeckt keine globale Größe von JavaScript. Ein vorhandenes, gutes NaN sind Daten, die Sie mit isNaN(Channels.Pv) prüfen können. Beispiele: Channels.Outlet_temperature > 80, Channels.Door_open && Channels.Heater_on.

Der Entwurf wird schon während des Tippens gegen Beispielwerte des Typs jedes Kanals geprüft, und die warnende Anmerkung unter dem Kopf sagt, was scheitert:

Anmerkung Bedeutung
"Syntaxfehler: …" Der Ausdruck lässt sich nicht lesen.
"Der Kanalverweis 'Channels.X' besteht in diesem Modell nicht." Ein Verweis nennt keinen Kanal.
"Mehr als ein Kanal bildet auf 'Channels.X' ab." Zwei Kanalnamen werden auf denselben Bezeichner bereinigt; benennen Sie einen im Gitter der Kanäle um.
"Die Bedingung muss Bool zurückgeben, gab aber <type> zurück." Der Ausdruck liefert etwas anderes als wahr oder falsch.
"Fehler bei der Auswertung: …" Der Ausdruck wirft eine Ausnahme.

Eine ungültige Bedingung wird trotzdem als Entwurf gespeichert. Sie hat anderswo Folgen: Ein aktivierter Ereigniseintrag, der die Prüfung nicht besteht und von einem Ablauf scharfgeschaltet wird (auf ihm angekreuzt oder mit Immer scharf), sperrt den Start dieses Ablaufs, und die Seite des Ablaufs zeigt "Der Ereigniseintrag '<name>' ist ungültig: …"; ein ungültiger Ereigniseintrag mit Immer startet seine Überwachung außerhalb von Läufen nicht und lässt stattdessen hier eine sichtbare Diagnose zurück, statt sie bei jeder Abfrage zu wiederholen.

Jede Auswertung läuft in einer eingeschränkten Ausführungsumgebung (eine Grenze von 500 ms, eine begrenzte Anzahl Anweisungen und ein begrenzter Speicher), ein außer Kontrolle geratener Ausdruck lässt also seine Auswertung scheitern und nicht die Station.

Wie ein Ereigniseintrag beurteilt wird

Während eines Laufs wird die Bedingung über den Zeilen beurteilt, die das Datalog aufzeichnet, ein Kanal, den das Datalog des Ablaufs nicht aufzeichnet, steht ihr also nicht zur Verfügung. Ein Ablauf, der einen Ereigniseintrag über einem solchen Kanal scharfschaltet oder der einen scharfschaltet und überhaupt nichts aufzeichnet, wird auf seiner eigenen Seite und bei Start abgewiesen: Der Ereigniseintrag würde nie beurteilen, und die warnende Anmerkung nennt ihn. Außerhalb von Läufen wird ein Ereigniseintrag mit Immer von einer Überwachung beurteilt, die die Verknüpfungen der Einheit live liest. Beide Bewerter halten den letzten bestätigten Zustand, solange irgendein bezogener Kanal nicht verfügbar ist: Nur ein fehlender Wert oder eine schlechte Qualität setzen das Beurteilen aus, und ein vorhandener, guter Wert (ein NaN eingeschlossen) sind auswertbare Daten. Der Bewerter zeichnet vier Übergänge auf: Aktiviert (nach der Einschaltverzögerung), Beendet (nach der Ausschaltverzögerung), Nicht verfügbar (ein bezogener Kanal hat sein Signal verloren) und Wiederhergestellt (jeder bezogene Kanal ist zurück; die Bedingung wird erneut beurteilt, und die zutreffende Verzögerung beginnt von vorn).

Während eines Laufs wird jeder Übergang zuerst in die Laufdatei geschrieben und dann mit seinem Laufkontext in das dauerhafte Journal auf der Seite Ereignisse kopiert; außerhalb von Läufen schreibt die Überwachung allein ins Journal. Einen Lauf zu starten verwirft den laufunabhängigen Bewerter der Einheit, und den Lauf zu verlassen legt einen frischen an, keine Aktivierung reicht also über eine unbeobachtete Grenze. Änderungen an Name, Meldung oder Schweregrad wirken nur auf spätere Flanken; Änderungen an der Bedingung, an den Verzögerungen, an der Scharfschaltung oder am Aktivierungszustand beginnen eine frische Beobachtung.

Episoden (von der Aktivierung bis zum Ende, mit jedem Abschnitt eines Signalverlusts getrennt gezählt) werden aus diesen Flanken abgeleitet, wo immer die Anwendung sie zeigt: auf der Karte Ereigniseinträge eines Einheitenbereichs, auf der Seite Ereignisse, in den Historien und in den Berichten. Die aktive Zeit einer Episode ist genau der Abstand zwischen den beiden gesicherten Flanken, sie schließt die Einschaltverzögerung also aus und die Ausschaltverzögerung ein: Die Uhr beginnt, wenn die Bedingung die Einschaltverzögerung bereits gehalten hat, und sie hält erst an, wenn das Ende geschrieben ist, nachdem die Ausschaltverzögerung abgelaufen ist. Das ist die Zahl, die ein Bericht einem Dritten reicht.

Wo ein Ereigniseintrag benutzt wird

Die Seite eines Ablaufs trägt die Karte Während dieses Ablaufs scharfgeschaltete Ereigniseinträge, mit einer Pille "<n> scharf" und einem Kontrollkästchen je Ereigniseintrag des Modells, nach Namen. Einen anzukreuzen schaltet ihn während der Läufe dieses Ablaufs scharf; ein Ereigniseintrag mit Immer beobachtet ohnehin und braucht kein Kreuz. Ohne Ereigniseintrag im Modell sagt die Karte "Noch keine Ereigniseinträge in diesem Modell. Fügen Sie unter den Ereigniseinträgen des Modells welche hinzu." Siehe Abläufe.

Einen Kanal umzubenennen schreibt die Verweise Channels.<identifier> dieses Kanals in jeder Bedingung des Modells mit; Zeichenketten, Kommentare und eine gleichnamige Eigenschaft eines anderen Objekts bleiben unberührt.

Ereigniseintrag entfernen

Ereigniseintrag entfernen steht in der Gefahrengruppe der Detailleiste, wenn der Ereigniseintrag gewählt ist, in seinem Rechtsklickmenü und als X auf der Karte der Ordnerseite. Es fragt zuerst ("Ereigniseintrag löschen", "Das entfernt den Ereigniseintrag aus dem Modell.") und schaltet den Ereigniseintrag in jedem Ablauf, der ihn angekreuzt hatte, nicht mehr scharf. Es braucht Rezepte und Bewertungen ändern und ist unter der Projektierungssperre und bei gestoppter Runtime ausgegraut.

Was ein Ereigniseintrag nicht tut

  • Er ist kein Alarm: Er wird nicht quittiert, hat keine Priorität und beobachtet keine Tags. Die Alarme der Anlage stehen auf der Seite Logic.
  • Er löst nichts aus. Eine Aktivierung wird aufgezeichnet und angesagt; keine Aktion, kein Etikett und kein Bericht hängen daran.
  • Er kann nichts außer den Kanälen des Modells lesen: kein Tag, keine Variable, kein anderes Modell.
  • Er wird nicht je Einheit verschieden beurteilt: Eine Bedingung dient jeder Einheit, über deren eigenen Verknüpfungen oder aufgezeichneten Zeilen.