OPC-Datentransfer via BatchRead alle 30 Sekunden
In diesem Datentransfertest haben wir in einer OPC Router-Instanz 640.000 OPC Datenpunkte angebunden und alle 30 Sekunden an MQTT und InfluxDB übertragen. Die durchschnittliche Datenübertragungsrate lag dabei bei 21.209 Datenpunkten pro Sekunde.
Systeme
OS: Windows Server 2019 Standard 1809
RAM: 16GB
Prozessor: 64bit 2,6GHz (4 Kerne)
OPC Router: 5.3.5007.156
OS: Windows Server 2019 Standard 1809
RAM: 12GB
Prozessor: 64bit 2,6GHz (4 Kerne)
KEPServerEx: V6.16.203.0
OS: Windows 10 Pro N 22H2
RAM: 12GB
Prozessor: 64bit 2,6GHz (4 Kerne)
KEPServerEx: V6.16.203.0
Projekte
Zwei KEPServerEx-Projekte
- mit jeweils einem Kanal (Simulator)
- mit jeweils einem Gerät (16 Bit Device)
- mit jeweils 20 Tag-Gruppen
- mit jeweils 100 Unter-Tag-Gruppen
- mit jeweils 200 Tags
OPC Router-Projekte
Für die beiden Testfälle wurden zwei Projekte mit gleichem Aufbau, aber unter schiedlicher Verbindungs- und somit Datenpunktanzahl erstellt. Beschreibung des einfachen Projektes:
- Vier OPC-UA-Client-Anbindungen (Jeweils 2 Plug-ins je KEPServerEx)
- Jedes Plug-in wird in jeweils 400 Template-Instanzen für jeweils ein „Batch Read”-Transferobjekt verwendet
- Jedes „Batch Read”-Transferobjekt fragt alle 30 Sekunden 200 Tags ab und schreibt diese nach MQTT und Influx-DB
Zusammengefasst: Im Testfall 1 wurden alle 30 Sekunden 320.000 Tags gelesen und an MQTT sowie Influx übergeben.
Testfall 2: Hierin werden statt 400 Template-Instanzen pro Plugin 800 Template-Instanzen betrieben. Hierdurch sollen alle 30s s 640.000 Tags abgefragt werden.
.png)
Aufbau der Template-Instanzen (Verbindungen)
OPC-UA-Client-Anbindung
Abweichungen vom Default:
- Quickstart – Timeout (ms): 240000
- Sicherheit – Server Application Uri validieren: true
- Subscription – OPC-Tags beim Start registrieren: true
- Erweitert – Timeout (ms): 240000
- Erweitert – Maximale Datenpunktanzahl je Abfrage aktivieren: true
- Erweitert – Maximale Datenpunktanzahl je Abfrage: 2500
- Erweitert – Max Items per Subscription Softlimit: 1500
- Erweitert – OPC-Lesemodus: Asynchron
Auswertung
Testfall 1
Es wurden auf vier Plug-ins verteilt alle 30s 320.000 Datenpunkte gelesen und nach MQTT und InfluxDB geschrieben. Nach 30min Lauftzeit wurde geprüft, wie viele Daten in die InfluxDB geschrieben worden sind.
 (1).png)
Bei 640.000 Datensätzen/Minute wurden in unserem Test 100% der Daten übertragen
Testfall 2
Es wurden auf vier Plug-ins verteilt alle 30s 640.000 Datenpunkte gelesen und nach MQTT und InfluxDB geschrieben. Nach 30min Laufzeit wird geprüft, wie viele Daten in die InfluxDB geschrieben worden sind.
 (1) (1).png)
Bei 1.280.000 Datensätzen/Minute wurden in unserem Test mehr als 99% der Daten übertragen