Anbindung EOS Betriebsstatistik an ein OPC-UA Server (PCS-7)
Setup
Hardware
Das Betriebsstatistik-EOS ist auf einem separaten Rechner installiert. Dabei handelt es sich um eine leistungsfähige Maschine, die deutlich mehr Performance hat als der IPC, auf dem das „Analyse“-EOS installiert ist.
Anbindung an die OPC-UA Schnittstelle
Primär und Sekindärserver
Beide Systeme halten eine Verbindung zu einem der beiden OPC UA Servern aufrecht. Adressen: 192.168.110.1 (OPC-Server 1) oder 192.168.110.2 (OPC-Server 2). Ein OPC UA Server ist als primäres Ziel definiert, der zweite OPC UA Server dient als Ersatzserver.
Im EOS ist eine Strategie hinterlegt, anhand der entschieden wird, wann die Umschaltung von dem primären Server zum Ersatzserver und zurück stattfindet. Wird eine Verbindung zum einem OPC UA Server aufgebaut, so wird ein sogenannter ErrorCounter (Fehlerzähler) angelegt und auf 0 gesetzt. Treten Fehler beim Lesen der Werte auf, so wird der ErrorCounter zunächst um einen Wert von 2 hochgezählt. Verschwindet die Störung von selbst (was nicht selten der Fall ist), so wird pro erfolgreiche Lesen des ErrorCounters um 1 reduziert, aber maximal bis auf den Wert 0. Erreicht der ErrorCounter einen Maximalwert von 20, wird die bestehende Verbindung geschlossen und der Server wechselt zum Alternativserver und liest nun von diesem Ausweichserver. Treten die Fehler auch beim Ausweichserver auf, so schaltet EOS zurück zum Primärserver usw.
Lesegruppen und Abstastraster
Über eine bestehende Verbindung zum OPC UA Server werden synchron in definierten Zeitabständen Anfragen an den OPC UA Server verschickt und somit die Werte abgetastet. Das Abtastraster ist in Lesegruppen (ReadGroup) definiert:

Zu welcher der Lesegruppen eine zu lesende OPC UA Adresse gehört, wird an den EOS Variableninstanzen definiert:

Aggregationsart
Müssen die abgetasteten Werte zu einem größeren Raster aggregiert werden, so wird die in der EOS Variable eingestellte Aggregationsart verwendet. Diese ist für alle Instanzen der Variable gleich.

Initialisierung der Verbindung und Lesetests
Wird erfolgreich eine Verbindung zum OPC UA Server aufgebaut, führt EOS zunächst einen Test durch, welche der zum Lesen hinterlegten Signale auch tatsächlich gelesen werden können und ob diese Signale aktuell auch reale Werte haben. Die erfolgreich gelesene OPC UA Adressen werden auf eine Leseliste gesetzt. Die Adressen, die nicht gelesen werden konnten, werden vermerkt und in einer Fehlerliste abgelegt. Dies dient zur Vermeidung von unnötigen Wechseln zwischen Primär- und Sekundärserver aufgrund von aktuell nicht lesbaren OPC UA Adressen. Oftmals werden solche Lesefehler durch Störungen im Messgerät verursacht und nicht durch eine Störung an der Verbindung zum OPC UA Server. Damit die temporär nicht verfügbaren Adressen wieder auf die Leseliste kommen können, führt EOS in fest definierten Zeitabständen ein Cronjob aus, der versucht, die nicht verfügbaren Adressen zu reaktivieren.

Wie im obigen Bild zu sehen ist, wird der Cronjob einmal pro Stunde ausgeführt. Besteht die Notwendigkeit, den Cronjob manuell auszuführen, kann dies über das Kontextmenu -> „Execute Now“ erreicht werden.
Import der historischen Werte über OPC-UA HDA Schnittstelle
Manueller Import
Ist eine Verbindung zum OPC UA Server gestört, sind die OPC UA Adressen nicht lesbar oder ist der EOS-Server ausgeschaltet, so entsteht eine Lücke in den aufgezeichneten Werten. Um diese Lücke zu füllen, werden die fehlende Werte über eine OPC UA HDA (Historical Data Access) Schnittstelle gefüllt. Der Importvorgang kann über den Menüpunkt „Werkzeuge -> Engineering -> Import Historica Values“ manuell gestartet werden.

Automatisierter Import
Im System sind zwei Cronjobs angelegt, ähnlich wie der Cronjob zum Reaktivieren der nicht verfügbaren Signale. Diese Cronjobs werden in festen Zeitintervallen (gemäß der aktuellen Konfiguration) von 30 Minuten und einem Tag automatisiert ausgeführt.

Sofern der Cronjob ausgeführt wird, sucht er nach Lücken im RAW-Archiv seit der letzten Ausführung. Falls er seit dem Neustart noch nie ausgeführt wurde, wird seit dem Zeitpunkt gesucht, wann der letzte Wert gelesen wurde, zuzüglich das Ausführungsintervall. Der Cronjob kann auch manuell über das Kontextmenu „Execute Now“ gestartet werden.
Neue OPC-UA Adressen
Manueller Import OPC-UA Adressen über ein OPC-UA Scanner
Das EOS schreibt nur solche Werte mit, welche auch zum Mitschreiben konfiguriert wurden. Man kann solche Signale von Hand im System anlegen, was allerdings aufwendig werden kann, insbesondere wenn es sich um mehrere tausende Signale handelt. Man kann aber auch den OPC UA Server nach Mustern durchsuchen und alles zum Protokollieren vermerken, was in das Muster passt. Der Importvorgang kann über den Menüpunkt „Werkzeuge -> Engineering -> Import SignalIDs“ gestartet werden:

Das EOS System durchsucht alle noch nicht erfassten OPC UA Adressen und fügt diese der Ausgewählten EOS Variable hinzu.
Datenexport in die ORACLE Datenbank
Exportprofil
Das EOS-System ist in der Lage, jegliche neu im System erfasste Werte in eine externe Datenbank zu exportieren. Hierfür protokolliert EOS die Änderungen in der Datenbank und vermerkt die Zeiträume in denen neue Daten hinzugekommen sind oder bereits verstrichene Zeiträume, in denen sich die Daten geändert haben (zum Beispiel über die OPC UA HDA Funktion nachimportiert wurden). Zum Export der Daten können Exportprofile angelegt werden, wie unten abgebildet:

Die Daten werden im „Data Raster“ in die im Writer Options definierten SQL-Tabellen exportiert. Die Daten, welche exportiert werden, können vom Anwender nach unter-schiedlichen Verfahren ausgewählt werden. Für die SKS Betriebsstatistik ist vor allem der Modus „SelectedInstances“ von Interesse:

Hier kann die Liste der zu exportierenden Variablen definiert werden. Wählt man eine EOS-Variable aus, so werden alle EOS Variablen Instanzen, d.h. alle damit verbundenen OPC UA Signale in die SQL-Datenbank exportiert. Der Export wird automatisch „Execution Interval“ im vorgegebenen Raster exportiert, kann aber auch manuell über das Kontextmenupunkt „Export Data“ gestartet werden.