ServiceLevel
Der ServiceLevel liefert einem Client Informationen über den Zustand eines Servers und dessen Fähigkeit, Daten zu liefern. Der ServiceLevel ist eine Node vom Datentyp Byte mit einem Wertebereich von 0 bis 255. Ein hoher Wert steht für eine hohe Verfügbarkeit beziehungsweise Dienstgüte, ein niedriger Wert für eine eingeschränkte Verfügbarkeit.
Clients können das ServiceLevel verwenden, um den aktuellen Zustand eines Servers zu bewerten oder Server in redundanten beziehungsweise verteilten Umgebungen miteinander zu vergleichen. Das ServiceLevel ist als allgemeiner Zustandsindikator zu verstehen und ersetzt keine detaillierte Diagnose einzelner Fehlerursachen.
Der TwinCAT OPC UA Server setzt den ServiceLevel aktuell statisch auf den Wert 255. Es gibt zusätzlich über ein ADS-Interface im Server die Möglichkeit, den ServiceLevel eines TwinCAT OPC UA Servers zu beeinflussen. Dabei kann die Funktion entweder mit oder ohne sogenannten Watchdog genutzt werden.
Mit Watchdog-Überwachung
Der geschriebene ServiceLevel muss innerhalb des konfigurierten Zeitfensters zyklisch erneut geschrieben werden. Erfolgt keine Aktualisierung, wird automatisch ein konfigurierter Fallback-Wert gesetzt. Hierzu wird der Funktionsbaustein FB_OpcUaServer_SetServiceLevel verwendet.
Die beiden konfigurierbaren Werten im Kontext des Watchdogs sind:
Einstellung | Bedeutung |
|---|---|
ServiceLevelWatchdogTimeout | Die Zeit in ms, nach der der Watchdog anschlägt, wenn der ServiceLevel nicht erneut an den Server gesendet wird. |
ServiceLevelWatchdogFail | Der Wert auf den das ServiceLevel gesetzt wird, wenn der Watchdog in einen Timeout läuft. |
Ohne Watchdog-Überwachung
Der geschriebene ServiceLevel wird einmalig durch den Funktionsbaustein FB_OpcUaServer_SetServiceLevel gesetzt. Ein eventuell aktiver Watchdog wird dabei deaktiviert. Der Wert bleibt erhalten, bis er durch einen weiteren Schreibzugriff geändert wird. Soll der Watchdog reaktiviert werden, muss die Methode mit Watchdog-Überwachung erneut ausgeführt werden.