Zum Hauptinhalt springen

OPC-Datentransfer via Multi-Datachange-Trigger

info

In unserem Performance-Benchmark konnten wir gleichzeitig rund 28.500 OPC-Datenpunkte pro Sekunde an MQTT und InfluxDB übertragen. Die Übertragungsrate wurde dabei durch die Verarbeitungskapazität des OPC-Servers begrenzt, der unter höherer Last zum limitierenden Faktor wurde.

Systeme

OS: Windows Server 2019 Standard 1809
RAM: 16GB
Prozessor: 64bit 2,6GHz (4 Kerne)
OPC Router: 5.3.5008.157

OS: Windows Server 2019 Standard 1809
RAM: 12GB
Prozessor: 64bit 2,6GHz (4 Kerne)
KEPServer: V6.16.203.0

OS: Windows 10 Pro N 22H2
RAM: 12GB
Prozessor: 64bit 2,6GHz (4 Kerne)
KEPServer: V6.16.203.0

Projekte

2 KEPServerEx-Projekte

  • mit jeweils einem Kanal (Simulator)
  • mit jeweils einem Gerät (16 Bit Device)
  • mit jeweils zwei Tag-Gruppen
  • mit jeweils 40 Unter-Tag-Gruppen
  • mit jeweils 200 Tags (Random 1000)

Zusammengefasst 32.000 Tags

OPC Router-Projekt

  • Vier OPC-UA-Client-Anbindungen (Jeweils 2 Plug-ins je KEPServerEx)
  • Jedes Plug-in wird in jeweils 40 Template-Instanzen im Multi-Datachange-Trigger verwendet
  • Jeder Multi-Datachange-Trigger überwacht eine Tag-Gruppe (Mit jeweils 200 Tags)
  • Die bei Auslösung der Trigger jeweils gelesenen Werte werden in Influx und über MQTT weggeschrieben

Zusammengefasst: Überwachung und Auslesung von 32.000 Tags

OPC-UA-Client-Anbindung

Abweichungen vom Default:

  • Subscription – OPC-Tags beim Start registrieren: true
  • Erweitert – Sample Rate (ms): 1000

Multi-Datachange-Trigger

Abweichungen vom Default:

  • Items aktualisieren: false

Aus Template generierte Flow-Instanz

Auswertung

Betrachtet wurde der durchschnittliche, zeitliche Abstand zwischen den Ausführungen der jeweiligen Multi-Datachange-Trigger.

Die Spalten Flows, Datenpunkte, Plug-ins und OPC Server beschreiben den gesamten Aufbau und sind deshalb in allen vier Zeilen gleich: 4 Anbindungen mit je 40 Vorlagen-Instanzen ergeben 160 Flows, bei je 200 Tags also 32.000 Datenpunkte. Nur der Trigger-Abstand ist je Anbindung gemessen.

FlowsDatenpunktePlug-insOPC ServerØ Trigger-AbstandPlug-in
16032000421100msKEPServerEx 1
Anbindung #1
16032000421027msKEPServerEx 1
Anbindung #2
16032000421204msKEPServerEx 2
Anbindung #1
16032000421101msKEPServerEx 2
Anbindung #2

Fazit

Alle vier Anbindungen lieferten ihre Werte im selben Takt: Der mittlere Trigger-Abstand lag zwischen 1027 ms und 1204 ms und damit bei rund einer Sekunde – dem Sample-Intervall, das in der OPC-UA-Client-Anbindung eingestellt war. Der Aufbau hat die Last also gleichmäßig getragen; keine der vier Anbindungen fiel zurück.

Der Abstand ist die Kennzahl, mit der sich der Aufbau auf ein eigenes Projekt übertragen lässt: Steigt er deutlich über das eingestellte Sample-Intervall, kommt die Kette aus OPC-Server, Anbindung und Zielsystem nicht mehr nach.

info

Bei einer weiteren Erhöhung der zu übertragenden Datenpunkte zeigte sich der OPC-Server als limitierender Faktor. Die Performance-Analyse ergab, dass die Verarbeitungskapazität des Servers nicht ausreichte, um höhere Lasten effizient zu bewältigen, wodurch die Gesamtübertragungsrate begrenzt wurde.

Projektdateien

Download Benchmark_Multidatachange.rpe

Benchmark_KepServer1 (ZIP)

Benchmark_Kepserver2 (ZIP)

Entpacken vor dem Import

Die KEPServer-Projektdateien liegen als ZIP-Archiv vor. Entpacken Sie das Archiv, bevor Sie die enthaltene .opf-Datei in KEPServer Ex importieren.