Konfiguration einer Subscription

Der WinCC OA OPC UA Client ist in der Lage sich bei einem OPC UA Server für Wertänderungen, Ereignisse und Alarme zur autonomen Benachrichtigung im Rahmen einer oder mehrerer Subscriptions anzumelden. Die Anzahl der Subscriptions ist nicht limitiert. Es ist zulässig, dass einer Subscription entweder Datenwerte, Ereignisse oder Alarme&Zustände zugeordnet werden. Eine Kombination dieser drei Subscription-Typen ist nicht möglich.

Das Lesen von Eingangswerten von einem OPC UA Server erfolgt entweder über Subscriptions (spontan) oder über Pollgruppen (periodisch). Die bevorzugte Variante ist die spontane Übertragung, da hier das Übertragen von Werten, die sich nicht geändert haben, wegfällt und somit unnötige Last vermieden wird. Die Verbindungsüberwachung für Subscriptions findet gemäß OPC UA Standard statt (für weitere Informationen siehe Verbindungsüberwachung für Subscriptions).

Für jede Subscription sind die Parameter in einem internen Datenpunkt vom Typ _OPCUASubscription abgelegt (siehe Interne Datenpunkte des OPC UA Clients) und im folgenden Subscription-Parametrierpanel einstellbar.

Das Panel zur Parametrierung einer Subscription (Anlegen, Ändern, Löschen) kann entweder über die Schaltfläche "Verwalten" im OPC UA Client-Parametrierpanel oder über die Schaltfläche "..." im OPC UA Peripherieadresspanel geöffnet werden.

Einschränkung: Eine Subscription darf nur einem Server zugeordnet werden.
Abbildung 1. Panel zur Parametrierung einer Subscription vom Typ "Daten"

Das Subscription-Parametrierpanel ermöglicht die Eingabe bzw. Anzeige der folgenden Parameter:

Subscription

Anmerkung: Die Einstellungen der Subscription werden innerhalb des internen Datenpunktes _OPCUASubscription gespeichert.
Erstellen
  1. Klicken Sie auf die Schaltfläche Erstellen, um einen Namen für die Subscription zu definieren und somit auch eine neue Subscription mit Grundeinstellungen zu erstellen. Dies öffnet den folgenden Eingabedialog:
  2. Geben sie unter Datenpunktname einen Namen für die Subscription ein.

  3. Wählen Sie unter Subscription Typ einen Typ. Mittels diesen wird definiert, um welchen der folgenden Subskription-typen es sich handelt:

    • Daten,

    • Ereignisse

    • oder Alarme & Zustände

    Abhängig vom Subscription Typ sind die Einstellungen für die Monitored Items unterschiedlich. Die alarm- und ereignisspezifischen Einstellungen werden im Kapitel Alarme und Zustände beschrieben.

    Einschränkung: Der Subscription Typ darf nachträglich (nachdem eine Subscription erstellt wurde) nicht geändert werden.
    • Klicken Sie auf OK, um die Subscription-Parametrierung fortzusetzen.
    • Klicken Sie im Subscription-Parametrierpanel auf Übernehmen, um den internen Subscription-Datenpunkt mit den Parametern anzulegen oder auf OK, um den internen Subscription-Datenpunkt mit den Parametern anzulegen und das Parametrierpanel zu schließen.
    • Klicken Sie auf Abbrechen, um das Parametrierpanel zu schließen, ohne dabei den Subscription-Datenpunkt anzulegen, falls nicht bereits vorher getan.

Anmerkung: Wenn eine Subscription im Panel erzeugt wird, wird dieser nicht sofort am Server angelegt, sondern erst dann wenn eine Peripherieadresse definiert wurde, die diese Subscription enthält.
Anmerkung: Zum Ändern der Einstellungen wählen Sie den Subscription-Datenpunkt in der Combobox aus, ändern Sie die Parametrierung und klicken Sie auf Übernehmen. Sobald ein neuer Subscription-Datenpunkt erstellt wird, kann dieser sofort vom Treiber verwendet werden (kein Neustart erforderlich).
Anmerkung: Bei Änderungen in einer Subscription zur Laufzeit, werden lediglich die allgemeinen Subscription-Parameter übernommen, jedoch nicht jene, die die Monitored Items betreffen. Die Monitored Items Parameter werden bei einem erneuten Verbindungsaufbau gesetzt.
Entfernen
Klicken Sie auf die Schaltfläche Entfernen, um die ausgewählte Subscription zu löschen (und somit auch den Subscription-Datenpunkt). Beachten Sie, dass das Löschen einer Subscription erst nach einem Klick auf die Schaltfläche Übernehmen wirksam wird.
Hinzufügen

Mittels der Schaltfläche Hinzufügen ist es möglich eine bereits bestehende Subscription ohne Verbindung der aktuellen Verbindung hinzuzufügen.

Abbildung 2. Subscription hinzufügen Dialog
Beschreibung
Im Textfeld Beschreibung können Sie der erstellen Subscription eine individuelle Beschreibung in der entsprechenden Projektsprache hinzufügen bzw. ändern. Die Defaultbeschreibung in jeder Projektsprache ist "_<Subscription-Name>." - diese wird im Parametrierpanel erst nach erneutem Öffnen des Panels angezeigt.

Einstellung

Aktiv
Haken Sie die Checkbox an, um die Subscription aktiv zu setzen. Eine erstellte und konfigurierte Subscription kann jederzeit deaktiviert werden. Der Subscription-Datenpunkt wird nicht gelöscht und kann jederzeit neu aktiviert werden. Wenn eine Subscription deaktiviert wurde, werden an den Client keine Benachrichtigungen über Datenwerte, Ereignisse oder Alarme&Zuständezugesandt. So ist es z.B. möglich Alarme zu vermeiden, wenn auf einem OPC UA Server Wartungsarbeiten durchgeführt werden müssen.
Subscription Typ
Zeigt den Subscription Typ an, der beim Erstellen der Subscription ausgewählt wurde (siehe oben). Dieser kann hier nicht mehr geändert werden.

Erweiterte Konfiguration

Publishing Interval
In diesen Abständen in Millisekunden werden die Werte vom Client aus den Queues am Server gelesen. Der Wert 0 bedeutet, dass diese Funktion deaktiviert ist. Default: 500 ms.
Priorität
Weisen Sie der Subscription eine Priorität zu, wodurch kritische Werte vorrangig gesendet werden. Die Priorität 0 bedeutet kleine Priorität und 255 bedeutet hohe Priorität.
Lifetime count
Anzahl an Publishing-Intervallen bis die Subscription vom Server gelöscht wird, falls kein Publish-Request erhalten wird.
Max keep alive count
Definiert wie oft der Publishing-Timer im Server ablaufen kann, ohne dass Daten gesendet wurden. Danach sendet die Subscription eine keep-alive-Nachricht an den Client.
Max notification per publish

Definiert wie viele Meldungen ein Server maximal als Antwort auf einen Publish-Request schicken soll. Beim Übertragen von gepufferten Daten kann dadurch die Spitzenlast der Kommunikation reduziert werden. Der Wert 0 bedeutet, dass der Client keine Grenze vorgibt und der Server die maximale Anzahl an Meldungen pro Publish verwendet. Der Maximalwert ist abhängig vom Server und beträgt beim WinCC OA OPC UA Server beispielsweise 65535.

Monitored Items

In diesem Bereich können Parameter der Monitored Items eingestellt werden. Die Anzahl der Monitored Items in einer Subscription ist unbegrenzt. Die Parameter sind für alle Monitored Items innerhalb einer Subscription gleich. Sie werden im internen Datenpunkt vom Typ _OPCUASubscription abgelegt.

Die Parameter der Monitored Items sind teilweise fixcodiert oder in der Subscription festgelegt. Das bedeutet, dass viele Monitored Items in Gruppen mit gleichen Parametern zusammengefasst werden.

Abhängig vom Subscription Typ, können im Bereich Monitored Items unterschiedliche Einstellungen für die Subscription getroffen werden.

Subscription-Typ - Daten

bei Überlauf ältestes Element löschen
Haken Sie die Checkbox an, wenn bei einem Überlauf das älteste Element aus der Queue gelöscht werden soll. Belassen Sie die Checkbox unangehakt, wenn bei Überlauf das neueste Element aus der Queue gelöscht werden soll. Da normalerweise der Letztwert eines Items von Wichtigkeit ist, ist diese Checkbox standardmäßig angehakt.
benutze Zeitstempel von

Hier kann angegeben werden, welchen Zeitstempel der OPC UA Client für die Wertänderung eines Knotens (Nodes) übernehmen soll - von der Quelle, vom OPC UA Server oder von keinem der beiden (Treiber verwendet die Empfangszeit der Wertänderung als Zeitstempel).

Bei Ein-/Ausgangsadressen können die Einstellungen Quelle oder Server leicht zu einem Fehler führen (die Quellzeit wird als ungültig markiert), da die Zeit vom Server (bzw. der Quelle) nicht hinter der Zeit vom WinCC OA Rechner liegen darf. D.h. die Zeiten auf den Systemen müssen sehr synchron laufen. In dem Fall kommt die Rückmeldung auf den Befehl mit einem älteren Zeitstempel an als der Befehl selbst.

Die Toleranz kann mittels des Config-Eintrags negativeSourceTimeDiff erhöht werden, wodurch das Markieren der Quellzeit als ungültig verhindert wird.

Queue Size

Am Server gibt es für Monitored Item eine Queue. Geben Sie hier die Anzahl der Wertänderungen pro Monitored Item an, die bis zum nächsten Publish gespeichert werden sollen. Der Wert sollte nicht zu groß sein, da ansonsten der Client mit Wertänderungen überlastet werden kann (Default = 1). Ist das Publishing-Intervall größer als das Abfrageintervall, so kann diese Queue mehrere Werte beinhalten.

Anmerkung: Diese Queue entspricht NICHT der Queue die per Config-Eintrag "maxRequestQueueSize" definiert wird.
Sampling Interval
Geben Sie hier das Intervall in Millisekunden an, in welchem der UA Server die Abfrage der Monitored Items (darunterliegende Hardware) durchführen soll. Der Wert 0 bedeutet in diesem Fall dass so schnell wie möglich abgefragt wird.
Data change filter

In der Subscription kann der Auslöser und ein Todbandfilter für die Monitored Items eingestellt werden. Diese Einstellungen gelten für alle Monitored Items in dieser Subscription.

Anmerkung: Weder der WinCC OA OPC UA Server noch der WinCC OA OPC UA Client unterstützen Filtereinstellungen vom Typ AggregateFilter.
Auslöser

Wählen Sie einen Auslöser, auf den der Filter angewendet wird. Die einzelnen Angaben werden mit ODER-verknüpft. Zum Beispiel bedeutet "Status, Wert" (Default), dass der Server den Wert verschickt, sobald sich der Status oder der Wert ändert.

  • Status
  • Status, Wert
  • Status, Wert, Zeitstempel
Totband Typ

Definiert den Totband-Typ für die Berechnung des Wertes - entweder keine Berechnung, oder der Wert wird absoluter oder in prozentueller Schreibweise angegeben.

Damit die prozentuelle Angabe eines Todbandes gültig ist, muss die betreffende OPC UA Variable vom Typ AnalogItemType sein. Bei normalen Variablen (BaseDataVariableType) wird ein prozentuelles Todband nicht unterstützt. Bitte beachten Sie, dass ein Todband generell nur bei numerischen Typen zulässig ist (z.B. double, int). Bei Items von anderen Typen (z.B. bool oder string) kommt es in dem Fall beim Anlegen des MonitoredItems zu einem Fehler "BadFilterNotAllowed".

Totband Wert

Geben Sie einen Wert ein, in dessen Bereich (vom Originalwert aus) das Totband gelten soll.

Subscription-Typ - Ereignisse

Eventtyp

Erlaubt es anzugeben, welcher Eventtyp für die Subskription verwendet wird.

Node ID

Ermöglicht das Filtern nach bestimmten Knoten-IDs. Abhängig vom gewählten Eventtyp wird der Filter automatisch gesetzt oder kann manuell angegeben werden.

Der Filterwert wird auf das DPE _OPCUASubscription.Config.Alarm.AlarmType geschrieben.

Eventfelder
Die Schaltfläche Eventfelder öffnet einen Dialog, in dem Eventfelder ausgewählt werden können, die vom Server angefordert werden sollen. Es werden immer die Pflichtfelder abgefragt, die für die Bearbeitung des Alarmstatus erforderlich sind. Es ist nur möglich, Eventfelder für zusätzliches Werte-Mapping auszuwählen.
Event Notifier

Erlaubt es den optionalen Event Notifier für die konfigurierte Subscription anzugeben.

Eventfelder als JSON

Ermöglicht die Angabe, ob die Eventfelder als JSON-String zurückgegeben werden sollen. Standardmäßig werden die Felder als verketteter String zurückgegeben, der durch ein Pipe-Symbol getrennt ist ("FieldA|FieldB").

Die Zeichenfolge wird entweder in die Fallback-Ereignisadresse geschrieben, siehe [opcua] eventFallbackAddress, oder, im Falle einer explizit angegebenen Adresse, in die Event Source Node ID.

Subskription-Typ - Alarme & Zustände

Abbildung 3.
Alarmtyp
Dieser Alarmtyp definiert das Mapping eines OPC UA Attributes zu einem WinCC OA Alarmbereich. Das Mapping zwischen dem Status des OPC UA Attributes ActiveState und der Alarmbereich ist vordefiniert und hängt vom gewählten Alarmtyp ab. Abhängig vom gewählten Alarmtyp ist eine zusätzliche Mapping Tabelle für Status und Bereich (Range) verfügbar.
Eventfelder
Die Schaltfläche Eventfelder öffnet einen Dialog, in dem Eventfelder ausgewählt werden können, die vom Server angefordert werden sollen. Es werden immer die Pflichtfelder abgefragt, die für die Bearbeitung des Alarmstatus erforderlich sind. Es ist nur möglich, Eventfelder für zusätzliches Werte-Mapping auszuwählen.
Event Notifier

Erlaubt es den optionalen Event Notifier für die konfigurierte Subscription anzugeben.

UA Severity
Die Checkbox wird benötigt um festzulegen, ob die WinCC OA Severity oder die Unified Architecture Severity für die Subscription verwendet werden soll.
UA Alarmtext
Abhängig von der Auswahl werden die WinCC OA Alarmtexte oder die Unified Architecture Alarmtexte für die Subscription verwendet.
Eventfelder als JSON
Gibt an, ob die Eventfelder des Alarms als JSON-String auf den Alarmbegleitwert abgebildet werden (_add_value_5).

Siehe Parametrierung einer Subscription im Kapitel OPC UA Alarme und Zustände.

Status

zugewiesener Server
In diesem Feld wird der Name des OPC UA Servers ausgegeben, dem die ausgewählte Subscription zugewiesen ist.
ID
Die interne Identifikationsnummer für die ausgewählte Subscription. Diese muss pro Server eindeutig sein.
Publishing Interval
In diesem Feld wird das tatsächliche Publishing-Intervall in Millisekunden ausgegeben, d.h. in diesen Abständen werden die Werte vom Client aus den Queues am Server gelesen, die der Server auch einhalten kann.
Lifetime count
Tatsächliche Anzahl an Publishing-Intervallen bis die Subscription vom Server gelöscht wird, falls kein Publish-Request erhalten wird.
Max keep alive count

Zeigt wie oft der Publishing-Timer im Server ablaufen kann, ohne dass Daten gesendet wurden. Danach sendet die Subscription eine keep-alive-Nachricht an den Client.

Failed Registrations
Anzahl der Einträge, bei denen die Registrierung für die Subscription fehlgeschlagen ist.
Queue size
Siehe Queue Size
Sampling Interval
siehe Sampling Interval

Status Redundanz

Hier werden dieselben Informationen angezeigt wie im Abschnitt Status, aber nur für den OPC UA Client, der am zweiten System eines redundanten WinCC OA Systems läuft.

Generalabfrage (GA)

Klicken Sie auf diese Schaltfläche, um eine Generalabfrage für die ausgewählte Subscription auszulösen.

Verbindungsüberwachung für Subscriptions

Die Verbindungsüberwachung für Subscriptions findet gemäß OPC UA Standard statt. Der Client übergibt dabei dem Server mit CreateSubscription einen Keep-Alive-Counter. Wenn in der Subscription für eine bestimmte Anzahl (die Anzahl entspricht dem Wert vom Keep-Alive-Counter) von Publish-Intervallen keine Notifikationen vorliegen, sendet der Server eine Keep-Alive-Nachricht.

Wenn der Server für eine Subscription für eine bestimmte Anzahl (3 * Keep-Alive-Counter - OPC UA Empfehlung) von Publish-Intervallen keine Publish-Request vom Client erhält, wird die Subscription vom Server geschlossen.