Alarme
Der Editor eines Alarms: Identität und Adresse, die Bedingung, die Karte Verhalten mit Priorität, Benachrichtigung, Verzögerungen, Meldungstext und Quittierung, die Schiene Zustand, der Zustandsautomat, die Meldung sowie Quittieren und Alle quittieren.
Ein Alarm beobachtet eine Bedingung vom Typ Wahrheitswert und treibt einen Zustandsautomaten für die Quittierung, damit eine Bedingung, auf die es ankam, nie ungesehen kommen und gehen kann. Wählen Sie einen Alarm unter der Wurzel Alarms der Spalte von Logic (oder legen Sie einen mit Neu… > Neuer Alarm an), um seinen Editor zu öffnen; Lesen setzt Logic anzeigen voraus, Bearbeiten Logic konfigurieren, Quittieren Logic bedienen.
Die Kopfzeile zeigt die Marke des Alarms (klingelnd, solange der Alarm ansteht), den Namen, die Zeile "Eine Bedingung, die diese Station beobachtet: Solange sie ansteht, meldet sich der Alarm und wartet auf eine Quittierung.", eine Pille mit dem aktuellen Zustand (Normal; Aktiv unquittiert; Aktiv quittiert; Gegangen unquittiert) und eine Pille Deaktiviert, solange der Alarm aus ist. Die Spalte des Formulars enthält IDENTITÄT, BEDINGUNG und VERHALTEN; die Schiene enthält ZUSTAND.
Identität
| Feld | Was es ist | Werte / Standard | Wirkung |
|---|---|---|---|
| Name | Der angezeigte Name; sein bereinigtes Segment ist die Adresse unter Alarms. |
Freier Text; ein neuer Alarm heißt AlarmN. |
Wird über das sichere Umbenennen übernommen wie der Name einer Variablen: eine Vorschau der Verweise, die mitgehen, die Eingabetaste oder das Verlassen des Feldes zum Übernehmen, "Alarm umbenannt und N Verweise aktualisiert." Das Umbenennen bewahrt den laufenden Zustand und eine ausstehende Quittierung. Ein zusammenstoßender Name wird an Ort und Stelle abgelehnt. |
| Zeile mit der Adresse | Alarms.<Ordner>.<Segment>, unter dem Namen wiederholt. |
Wird nur gelesen. | Ausdrücke und Skripte lesen den Zustand des Alarms darüber (Alarms.HighLevel.IsActive). |
| Beschreibung (wahlweise) | Freier Text. | Leer. | Keine. |
Bedingung
Die Karte BEDINGUNG ist der Editor für Skripte mit dem Hinweis "Ein einzelner JavaScript-Ausdruck vom Typ Bool über dem Adressraum, z. B. Connector.Simulated.Pump.Temp.ValueToReal() > Variables.SetpointHigh.ValueToReal(). Bedingungen dürfen nicht auf andere Alarme verweisen." Die Bedingung folgt jeder Regel für Ausdrücke: ein einzelner, nur lesender Ausdruck, statische Adressen, das Tor der Qualität, die Grenze von 250 ms. Sie darf auf Tags, auf Variablen beider Arten, auf Punkte von Process, auf Assets und auf die Diagnosewerte verweisen, nie auf Alarms.*, und sie muss einen Wahrheitswert ergeben ("Die Bedingung muss zu einem Bool auswerten, hat aber '…' ergeben."). Eine Bedingung, die sich in einem Zyklus nicht auswerten lässt (ein genannter Punkt ist schlecht, fehlt oder ist leer), ist Ungewissheit: Der Zustandsautomat hält seinen letzten Zustand.
Verhalten
| Feld | Was es ist | Werte / Standard | Wirkung |
|---|---|---|---|
| Priorität | Der Schweregrad. | Kritisch, Hoch, Mittel (Standard), Niedrig; jede Wahl wird in ihrer Farbe für den Schweregrad gezeichnet. | Auf dem Punkt im Baum gezeigt, in jeder Zusammenfassung, auf der Snackbar-Karte, im Journal und an der Anzeige der Statusleiste; auf den geteilten Marken gewinnt die schlimmste anstehende Priorität. |
| Benachrichtigung | Wie sich ein Kommen über die immer sichtbare Anzeige der Statusleiste hinaus meldet. | Haftend (Standard), Befristet, Statusleiste. Der Tooltip des Feldes: "Haftend = Snackbar, bis quittiert oder wieder normal; Befristet = Snackbar für einige Sekunden; Statusleiste = nur die Anzeige der Statusleiste." | Siehe Meldung. |
| Verzögerung beim Kommen (ms) | Wie lange die Bedingung wahr bleiben muss, bevor der Alarm kommt. | Eine nicht negative ganze Zahl; 0 lässt ihn sofort kommen. | Anhaltend beobachtete Zeit, in der Auflösung des Zyklus von 100 ms. |
| Verzögerung beim Gehen (ms) | Wie lange die Bedingung falsch bleiben muss, bevor der Alarm geht. | Eine nicht negative ganze Zahl; 0 lässt ihn sofort gehen. | Dieselbe Auflösung. |
| Meldungstext (wird angezeigt, solange der Alarm ansteht, wahlweise) | Text, den die Meldung trägt. | Freier Text, leer. | Die Karte und die Benachrichtigung des Systems lesen "<Meldungstext> (Priorität)"; ohne einen: "<Priorität> Alarm steht an." |
| Quittierung nötig: ein gegangener Alarm bleibt gehalten, bis der Bediener quittiert | Ob ein Kommen eine Antwort verlangt. | Standardmäßig ein. | Aus: Der Alarm geht unmittelbar auf Aktiv quittiert und von dort unmittelbar auf Normal; er meldet sich, wird aber nie gehalten und wartet nie. |
Eine Verzögerung, die negativ ist oder sich nicht lesen lässt, behält den gespeicherten Wert und zeigt "Verzögerungen müssen nicht negative ganze Zahlen sein (ms; die Auflösung ist der Zyklus von 100 ms)." Eine Verzögerung ist anhaltend beobachtete Zeit: Solange sich die Bedingung nicht auswerten lässt, laufen beide Uhren der Verzögerungen neu an, ein blindes Fenster wird also nie auf das Kommen oder Gehen angerechnet.
Eine Änderung an der Bedingung, an einer Verzögerung, an Quittierung nötig oder an Aktiviert zu speichern setzt den Automaten auf Normal zurück (ein veralteter Zustand zu einer anderen Regel würde lügen); das Zurücksetzen wird mit der Quelle Konfiguration protokolliert und schließt die Snackbar-Karte des Alarms. Den Namen, die Beschreibung, die Priorität, den Meldungstext oder die Benachrichtigung zu ändern oder den Alarm in einen anderen Ordner zu legen bewahrt den Zustand.
Die Schiene Zustand
ZUSTAND zeigt den aktuellen Zustand in Worten, "Priorität: <Priorität>", Aktiv seit (ein Strich, solange die Bedingung nicht ansteht) und Letzter Übergang (ein Strich vor dem ersten Zustandswechsel) und den Hinweis "Jeder Übergang erscheint auf der Seite Ereignisse und in der dauerhaften Historie der Alarme. Der Zustand eines Alarms lebt im Adressraum, z. B. Alarms.X.IsActive in einem Ausdruck oder einem Skript." Der Bereich der Wurzel Alarms führt jeden Alarm mit "<Zustand> · <Priorität> · seit <wann>" in seiner Spalte Wert auf und je Zeile eine Schaltfläche Quitt.
Der Zustandsautomat
| Zustand | Bedeutung |
|---|---|
| Normal | Bedingung falsch, nichts steht an. |
| Aktiv unquittiert | Bedingung wahr, noch nicht quittiert. |
| Aktiv quittiert | Bedingung wahr, quittiert (oder der Alarm verlangt nie eine Quittierung). |
| Gegangen unquittiert | Die Bedingung ist in den Normalzustand zurückgekehrt, während sie unquittiert war: gehalten, bis der Bediener quittiert. |
Eine Bedingung, die über die Verzögerung beim Kommen hinweg wahr bleibt, lässt den Alarm aus Normal oder aus Gegangen unquittiert auf Aktiv unquittiert kommen (unmittelbar auf Aktiv quittiert, wenn Quittierung nötig aus ist). Eine Bedingung, die über die Verzögerung beim Gehen hinweg falsch bleibt, lässt ihn gehen: auf Normal, wenn er schon quittiert ist, auf Gegangen unquittiert, wenn nicht. Das Quittieren bringt Aktiv unquittiert auf Aktiv quittiert und gibt die Haltung zurück auf Normal frei. Der Zyklus wertet alle 100 ms zuerst die Variablen und dann die Alarme aus, auf der Warteschlange der Logik. Der Zustand eines Alarms lebt im Arbeitsspeicher: Nach einem Neustart beginnt jeder Automat bei Normal, und der erste Zyklus leitet die Wirklichkeit aus den laufenden Bedingungen neu ab, eine Haltung oder eine ausstehende Quittierung übersteht einen Neustart also nicht. Jeder Übergang, welchen Ursprung er auch hat (der Zyklus, eine Quittierung, ein Zurücksetzen beim Speichern, Deaktivieren oder Löschen), wird protokolliert und in der dauerhaften Alarmhistorie der Seite Ereignisse festgehalten.
Die Meldung
Die Statusleiste der Oberfläche trägt immer die Anzahl und den schlimmsten anstehenden Schweregrad (das Fenster). Darüber hinaus entscheidet die Art der Benachrichtigung:
| Benachrichtigung | Verhalten |
|---|---|
| Haftend | Eine Snackbar-Karte beim Kommen, mit dem Namen des Alarms als Titel und nach Priorität gefärbt (Kritisch als Fehler, Hoch und Mittel als Warnung, Niedrig als Information), die Quitt. trägt, solange nicht quittiert ist, und Alarme öffnen. Sie bleibt stehen, bis der Alarm quittiert ist oder auf Normal zurückgeht; die Haltung Gegangen unquittiert hält sie auf dem Bildschirm, und ein erneutes Kommen ersetzt sie. |
| Befristet | Dieselbe Karte, die sich nach 8 Sekunden von selbst ausblendet. |
| Statusleiste | Keine Karte und keine Benachrichtigung des Systems; nur die Anzeige der Statusleiste. |
Eine Karte von Hand auszublenden ist keine Quittierung. Solange das Fenster in den Infobereich ausgeblendet oder minimiert ist, löst ein Kommen mit Haftend oder Befristet außerdem eine Benachrichtigung des Systems mit demselben Text aus.
Quittieren
Quittieren ist ein Befehl zum Bedienen und geschieht dort, wo der Alarm Ihnen begegnet: der Befehl Quittieren über einem offenen Alarm, Alle quittieren über der Wurzel Alarms, die Schaltfläche Quitt. jeder Zeile im Bereich der Wurzel Alarms, das Quittieren im Rechtsklickmenü einer Alarmzeile, das Quitt. der Snackbar-Karte, die Seite Ereignisse, ein Alarmhinweis auf einem Dashboard und der Agent (protokolliert als MCP). Jede Quittierung läuft über die Warteschlange der Logik, wird mit ihrer Quelle protokolliert und schließt die Karte des Alarms.
Wo immer sie erscheint, wird die Antwort nur dort angeboten, wo es eine zu geben gibt. Ein Alarm auf Normal oder ein bereits quittierter behält seinen Befehl an Ort und Stelle, ausgegraut, mit "Dieser Alarm wartet auf keine Antwort."; Alle quittieren über einem Verzeichnis, in dem nichts ansteht, sagt "Kein Alarm wartet auf eine Antwort." Und das Aktionsprotokoll bestätigt nur, was sich bewegt hat: Eine Antwort zu drücken, die nichts ändert, meldet denselben Satz und nie "Quittiert.", denn ein Journal der Station, das eine Handlung eines Bedieners festhält, die niemand vorgenommen hat, ist schlimmer als ein Befehl, der kurz nicht erreichbar ist.
| Befehl | Wirkung | Ausgegraut, wenn | Nicht gezeichnet, wenn |
|---|---|---|---|
| Quittieren | Quittiert den offenen Alarm; das Aktionsprotokoll sagt "Quittiert." | "Dieser Alarm wartet auf keine Antwort.", wenn er auf Normal oder schon quittiert ist; "Runtime gestoppt", solange nur lesend. | Der Rolle fehlt Logic bedienen. |
| Alle quittieren | Quittiert jeden Alarm, bei dem etwas ansteht, als einen Eintrag in der Warteschlange; das Aktionsprotokoll sagt "Alle Alarme quittiert." | "Kein Alarm wartet auf eine Antwort.", wenn nichts ansteht; "Runtime gestoppt", solange nur lesend. | Der Rolle fehlt Logic bedienen. |
| Aktivieren / Deaktivieren | Legt Aktiviert um; das Deaktivieren setzt den Automaten auf Normal zurück und hält die Auswertung an. | Station gesperrt oder nur lesend. | Der Rolle fehlt Logic konfigurieren. |
| Kopieren | Verdoppelt den Alarm an die Wurzel Alarms unter einem freien Namen; die Kopie beginnt bei Normal. | Station gesperrt oder nur lesend. | Der Rolle fehlt Logic konfigurieren. |
| Alarm löschen | Fragt "'X' löschen? Damit verschwindet der Alarm. Das lässt sich nicht rückgängig machen.", setzt den Automaten zuerst zurück (damit eine Meldung nie ihren Alarm überlebt) und entfernt ihn; Verweise auf Alarms.X werden unauflösbar. |
Station gesperrt oder nur lesend. | Der Rolle fehlt Logic konfigurieren. |
Was Alarme nicht tun
Keine Hysterese und kein Totband über das hinaus, was die Bedingung ausdrückt, kein Stilllegen, kein Ton, keine Quittierung aus einem Skript, kein gespeicherter Zustand über Neustarts hinweg und keine Auswertung, solange der Alarm deaktiviert oder die Runtime gestoppt ist. Ein Alarm ist kein Ereigniseintrag von Process: Die werden auf der Seite Process eingerichtet und beurteilt.