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.