Laufzeitverhalten der Funktion SignedAlarmAck()
- Last UpdatedSep 25, 2024
- 2 minute read
Zur Laufzeit zeigt die Funktion SignedAlarmAck() folgendes Verhalten:
-
Die Funktion überprüft, ob für die Quittierung der angegebenen Alarme eine Signatur erforderlich ist.
-
Hierzu wird ermittelt, ob der Parameter „Signature_Reqd_for_Range“ den Wert „wahr“ hat.
-
Wenn ja, wird für Ihr HMI-/SCADA-Projekt oder Anwendung geprüft, ob die Sicherheit aktiviert ist.
-
Wenn ja, wird für jeden angegebenen Alarm überprüft, ob die Priorität im angegebenen Prioritätsbereich liegt. Ist dies bei einem der Alarme der Fall, so ist eine Signatur erforderlich.
-
Wenn keiner der Alarme im Prioritätsbereich liegt, aber auch kein Benutzer angemeldet ist, ist ebenfalls eine Signatur erforderlich.
-
Wenn kein Alarm quittiert werden muss, gibt die Funktion lediglich einen für diese Situation vorgesehenen Ergebniscode zurück und die Ausführung wird beendet.
-
-
Ist für keinen der angegebenen Alarme eine Signatur erforderlich, so wird ein einfaches Dialogfeld zur Eingabe des Quittierungskommentars angezeigt.
-
Klickt der Bediener auf OK, so wird der Quittierungskommentar in das Attribut „AckMsg“ jedes der Alarme aus dem Parameter „Alarm_List“ beschrieben.
Wenn ein Benutzer angemeldet ist, wird er für alle Alarme als quittierender Benutzer übernommen.
-
Hat dieser Benutzer die nötigen Rechte zum Quittieren von Alarmen, so werden die Alarme anschließend als quittiert gekennzeichnet. Gleiches gilt, wenn kein Sicherheitsmodus im Projekt oder in der Anwendung aktiviert ist.
-
Schlägt die Quittierung dagegen fehl, so gibt es keine direkte Rückmeldung an den Bediener. Am Status der Alarme ist jedoch ersichtlich, dass die Quittierung nicht stattgefunden hat.
-
-
Erfordert einer der zu quittierenden Alarme eine Signatur, so wird ein Dialogfeld zur Eingabe der Anmeldedaten angezeigt.
-
Es enthält Eingabefelder für Benutzername, Kennwort und Domäne. Ist ein Benutzer angemeldet, so wird sein Benutzername standardmäßig eingetragen. Anderenfalls ist das Feld für den Benutzernamen leer. Der Bediener kann die Angaben in allen Eingabefeldern ändern.
Wenn keine Smartcards konfiguriert sind, sind die Schaltflächen zum Wechsel zwischen Smartcard- und Kennwortauthentifizierung deaktiviert.
-
Der Bediener gibt nun seine Anmeldedaten und, falls zulässig, einen Quittierungskommentar ein.
-
Die Funktion überprüft daraufhin die Anmeldedaten.
-
Bei ungültigen Anmeldedaten wird eine Fehlermeldung angezeigt.
Wird diese mit OK bestätigt, so erscheint erneut das Anmeldedialogfeld und der Bediener kann die Anmeldedaten erneut eingeben.
In diesem Fall werden der Benutzername, die Domäne und der Quittierungskommentar aus dem vorherigen Versuch übernommen, der Inhalt des Felds für das Kennwort bzw. die Smartcard-PIN wird jedoch gelöscht. Der Bediener kann nun erneut seine Anmeldedaten eingeben oder den Vorgang abbrechen.
-
Sind die Anmeldedaten gültig, so wird der Quittierungskommentar in das Attribut „AckMsg“ jedes der Alarme aus dem Parameter „Alarm_List“ geschrieben.
Der im Anmeldedialogfeld angegebene Benutzer wird als quittierender Benutzer für alle Alarme übernommen, auch für diejenigen, die keine Signatur erfordern.
Hat dieser Benutzer die nötigen Rechte zum Quittieren von Alarmen, so werden die Alarme anschließend als quittiert gekennzeichnet.
Schlägt die Quittierung dagegen fehl, so gibt es keine direkte Rückmeldung an den Bediener. Am Status der Alarme ist jedoch ersichtlich, dass die Quittierung nicht stattgefunden hat.
-
-
Die Funktion gibt einen Ergebniswert zurück und schreibt außerdem eine Infomeldung in den Logger, wenn ein Fehler auftritt oder der Vorgang abgebrochen wird.
Weitere Informationen zum Laufzeitverhalten und der Ausführungsreihenfolge von Skriptvorgängen finden Sie unter Die Ausführungsreihenfolge der Funktion SignedWrite() zur Laufzeit.