Zum Hauptinhalt springen

Cloud und IoT

Ein Cloud- oder IoT-Ziel liegt in der Regel nicht im selben Netzsegment wie der OPC Router. Zwei Eigenschaften bestimmen deshalb die Projektierung: Jede Bestätigung kostet eine volle Netzlaufzeit, und die Verbindung kann zeitweise ausfallen. Die folgenden Regeln beziehen sich auf das MQTT-Plug-in, für das im Handbuch Messreihen vorliegen.

QoS nur so hoch wie nötig wählen

Das Quality-of-Service-Level bestimmt, wie viele Bestätigungsschritte eine Nachricht zwischen Client und Broker durchläuft: QoS 0 keinen, QoS 1 einen, QoS 2 einen vierstufigen Handshake (MQTT Performance). Das kostet messbar Durchsatz: Bei 100 parallelen Transfer-Flows ohne Verbindungspool lag QoS 1 rund 11 % und QoS 2 rund 37 % unter QoS 0 (MQTT-Publish-Benchmark).

Der Verlust wächst mit der Entfernung, denn jede Bestätigungsrunde braucht eine vollständige Hin- und Rücklaufzeit; die Messreihe lief mit einem lokalen Broker. Wählen Sie deshalb:

  • QoS 0 für Werte, die laufend neu geliefert werden und bei denen ein einzelner Ausfall folgenlos ist – etwa zyklische Telemetrie.
  • QoS 1 als Standard, wenn jeder Wert ankommen muss und eine mögliche Dopplung im Ziel verkraftbar ist.
  • QoS 2 nur, wenn eine Dopplung fachlich ausgeschlossen sein muss.

Den Standardwert einer Anbindung setzen Sie in der Plug-in-Konfiguration.

Verbindungspool bei vielen parallelen Flows

Bis etwa 10 gleichzeitig sendenden Flows steigt der Durchsatz linear – jeder Flow trug in der Messreihe rund 64 Nachrichten pro Sekunde bei. Darüber sinkt der Anteil je Flow: bei 50 Flows auf 53, bei 100 auf 42 Nachrichten pro Sekunde. Der Verbindungspool holt einen Teil davon zurück; mit Min 10 / Max 100 stieg der Durchsatz bei 50 Flows um rund 13 % und bei 100 Flows um rund 31 % (MQTT-Publish-Benchmark).

Schalten Sie den Pool also ein, sobald deutlich mehr als zehn Flows gleichzeitig auf dieselbe Anbindung senden. Empfohlene Min-/Max-Werte je Lastbereich nennt MQTT Performance.

hinweis

Die Messreihe lief mit einem lokalen Broker in einer Windows Sandbox mit 4 GB RAM und 100 Byte Nutzlast. Die Zahlen zeigen das Verhältnis der Varianten zueinander, nicht die Leistungsgrenze des OPC Routers.

Damit die Verbindungen des Pools unterschiedliche Client-IDs erhalten, tragen Sie in die Client-ID einen der Platzhalter ein, die die Plug-in-Konfiguration auflistet.

Ausfälle überbrücken statt Werte verlieren

Fällt das Ziel aus, geht ohne Zwischenspeicher jeder Wert verloren, der in dieser Zeit anfällt. Store and Forward puffert die betroffenen Transfers und reicht sie nach, sobald das Plug-in den Fehlerzustand verlässt. Beachten Sie dabei:

  • Store and Forward muss global und zusätzlich im jeweiligen Flow eingeschaltet sein.
  • Nachgereichte und aktuelle Werte kommen nicht zwingend in ihrer ursprünglichen Reihenfolge an. Führen Sie deshalb in jeder Nachricht einen Wert- oder Aufzeichnungszeitstempel mit.
  • Zählt nur der jeweils aktuelle Wert – etwa bei einer Visualisierung –, schalten Sie Store and Forward nicht ein: Es würde veraltete Werte verspätet schreiben. Die weiteren Ausschlussgründe stehen unter Wann Store and Forward nicht verwendet werden sollte.

Sollen empfangene MQTT-Nachrichten nicht nur einmalig einen Transfer auslösen, sondern später gezielt auswertbar bleiben, schalten Sie im MQTT-Plug-in die MQTT Data Storage-Funktion ein und lesen den Speicher mit dem MQTT Storage Lesen Transferobjekt.

Doppelte Auslösungen und Rückstau vermeiden

  • Nachrichtendeduplizierung verhindert, dass identische Nachrichten innerhalb eines Zeitfensters mehrfach einen Transfer auslösen. Schalten Sie sie ab, wenn sich der Nutzwert häufig wiederholt und trotzdem jede Nachricht zählt.
  • Auf Transfer warten lässt den OPC Router dem Broker erst nach abgeschlossenem Transfer antworten. Das schützt vor Rückstau, koppelt den Empfang aber an die Laufzeit des Flows.
  • Flow Control begrenzt die Zahl gleichzeitig unbestätigter Sendevorgänge je Verbindung. Bei entfernten oder langsamen Brokern begrenzt ein zu kleines Sende-Kontingent den Durchsatz, ein zu großes kann der Broker mit Drosselung oder Verbindungsabbruch beantworten.

Alle drei Optionen beschreibt die Plug-in-Konfiguration.

Zugangsdaten als Secret hinterlegen

Cloud-Anbindungen brauchen Zugangsdaten, und dieselben Daten werden meist von mehreren Anbindungen verwendet. Hinterlegen Sie sie als Secret: Die Passwortfelder verweisen dann darauf, und eine Änderung wirkt überall dort, wo das Secret verwendet wird.