Tech Talks

OPC-UA-Werte mit Peakboard Hub Flows an Azure Event Hubs senden

Mit Peakboard Hub Flows kannst du Werte aus OPC UA als Ereignisse an Azure Event Hubs senden, und mit einer Peakboard-Anwendung kannst du diese Ereignisse empfangen und anzeigen.

04.11.2026

·

6 Min. Lesezeit

Lichtschranke an einem Aluprofil neben einem Rollenförderer, auf dem ein Karton vorbeiläuft (KI-generiertes Bild)
Das Wichtigste in Kürze
  • Azure Event Hubs ist ein Dienst zur Aufnahme großer Datenströme in Echtzeit, in Werken oft für Telemetrie und Sensordaten.
  • Ein Hub Flow kann Ereignisse an einen Event Hub senden, eine Peakboard-Anwendung kann Ereignisse empfangen.
  • Im Beispiel löst jede neue OPC-UA-Wertänderung zweier Lichtschranken den Hub Flow aus.
  • Auf Azure-Seite sind ein Event-Hubs-Namespace mit Zugriffsrichtlinie und ein Storage-Konto nötig.

Das Beispiel nutzt die Zählerstände zweier Lichtschranken.

Azure Event Hubs und Peakboard

Azure Event Hubs ist ein Dienst von Microsoft, der große Datenströme in Echtzeit aufnimmt, zum Beispiel Logs, Klickstreams oder IoT-Signale. In Werken landen dort oft die Telemetrie- und Sensordaten von Maschinen. Die Grundlagen erklärt Microsoft in der Einführung zu Azure Event Hubs.

Mit Peakboard gibt es zwei Rollen:

  1. Event Publisher: Ein Hub Flow sendet Ereignisse an einen Azure Event Hub.
  2. Event Consumer: Eine Peakboard-Anwendung erhält ausgewählte Ereignisse eines Azure Event Hubs, sobald sie eintreffen.

Vorbereitung in Azure

1. Event-Hubs-Namespace anlegen

Zuerst kannst du einen Event-Hubs-Namespace erstellen. Ein Namespace bündelt eine oder mehrere Event-Hub-Instanzen, darunter den Event Hub für das Beispiel. Für den Zugriff aus Peakboard kannst du unter „Settings“ › „Shared access policies“ eine neue Richtlinie mit der Berechtigung „Manage“ anlegen und ihren Connection String kopieren.

2. Storage-Konto anlegen

Als Nächstes kannst du ein Azure-Storage-Konto erstellen. Unter „Security + networking“ › „Access keys“ kannst du den Connection String kopieren, den die Event-Hub-Datenquelle später benötigt. Im Storage-Konto werden die Offsets der Partitionen des Event Hubs gespeichert. Sie halten für jede Partition fest, wo das neueste Ereignis liegt.

Event-Hub-Datenquelle im Peakboard Designer

Beide Projekte, der Hub Flow und die Anwendung, beginnen mit einer Event-Hub-Datenquelle, im Beispiel MyEventHub. Dort kannst du die Connection Strings des Event Hubs und des Storage-Kontos eintragen, dazu unter „Entity path“ den Namen des Event Hubs und unter „Storage container name“ den Namen des Storage-Containers. Mehr zu allen Einstellungen der Datenquelle kannst du in der Peakboard-Hilfe zur Azure-Event-Hub-Datenquelle nachlesen.

Einstellungen der Event-Hub-Datenquelle mit Connection String, Entity Path, Storage Connection String und Container

Hub Flow als Event Publisher

1. OPC-UA-Datenquelle anlegen

In der OPC-UA-Datenquelle MyMachine kannst du als „Communication type“ die Option „Subscriptions“ und als „Message type“ die Option „Last message (simple)“ wählen. Danach kannst du zwei Knoten abonnieren, je einen für den Zähler einer Lichtschranke. Jeder Zähler erfasst, wie viele Waren an seiner Lichtschranke vorbeigekommen sind. Die Datenquelle liefert damit zwei Spalten, LB1Count und LB2Count. Mehr zu OPC UA in Peakboard kannst du im Artikel OPC UA mit Peakboard und auf der Seite zur Datenanbindung OPC UA nachlesen.

OPC-UA-Datenquelle mit Subscriptions auf die Zähler zweier Lichtschranken LB1Count und LB2Count

2. Hub Flow bauen

Als Trigger kannst du „After data reload“ mit der Bedingung „Data change“ auf der Datenquelle MyMachine wählen. Ändert sich einer der beiden Zählerstände, startet der Hub Flow und ruft die Funktion SendToAzure auf.

Hub Flow mit Trigger nach Datenänderung der OPC-UA-Datenquelle und dem Schritt Run function SendToAzure

3. Funktion SendToAzure

Die Funktion ruft sendevent auf, eine Funktion der Event-Hub-Datenquelle. Sie bekommt zwei Parameter:

  1. Die Nachricht, hier ein JSON-Text mit den beiden Zählerständen. Dafür liest die Funktion LB1Count und LB2Count aus der ersten Zeile von MyMachine und schreibt sie in die Felder LightBarrier1 und LightBarrier2.
  2. Eigenschaften mit Metadaten zur Nachricht. Im Event Hub lassen sie sich zum Beispiel für das Routing nutzen. Die Eigenschaft SendBy mit dem Wert Peakboard dient im Beispiel nur zur Demonstration.

So sieht das vollständige Skript aus:

--Create message properties (optional)
local props = {}
props.SendBy = 'Peakboard'

local message = '{ "LightBarrier1": ' .. data.MyMachine.first.LB1Count
      .. ',"LightBarrier2": ' .. data.MyMachine.first.LB2Count .. '}'

data.MyEventHub.sendevent(message, props)
Lua-Funktion SendToAzure, die die Zählerstände als JSON mit sendevent an den Event Hub sendet

Nach dem Upload in den Peakboard Hub läuft der Hub Flow sofort und sendet jede Wertänderung der Lichtschranken an den Event Hub.

Peakboard-Anwendung als Event Consumer

In der Anwendung kannst du die Ereignisse der Lichtschranken im Event Hub abonnieren und die Zählerstände anzeigen, die sich bei jedem neuen Ereignis aktualisieren. Ausgangspunkt ist auch hier die Event-Hub-Datenquelle MyEventHub. Sie liefert eine Tabelle mit den Spalten Timestamp und Message. Wie viele Zeilen sie höchstens enthält, legt der Parameter „Queue size“ fest, im Beispiel 5. Verarbeiten kannst du die Daten mit den üblichen Mitteln wie einem Reload-Ereignis oder einem Dataflow.

Alternativ kannst du in der Datenquelle das Feld „Script (called if a message was received)“ nutzen. Dieses Skript wird für jede eingehende Nachricht ausgeführt, und seine Logik kannst du mit Building Blocks bauen. Im Beispiel liest das Skript die Werte LightBarrier1 und LightBarrier2 per JSON-Pfad aus der Nachricht und setzt sie in die Textfelder txtLB1 und txtLB2. Bei einem Fehler steht dort #ERROR#. So lässt sich die Logik später erweitern, etwa um weitere Eigenschaften aus der Nachricht.

Peakboard-Anwendung als Consumer: Skript der Event-Hub-Datenquelle setzt die Zählerstände in zwei Textfelder

Das Ergebnis

Die Werte der Lichtschranken gelangen per OPC UA zum Hub Flow, von dort zum Event Hub und weiter zur Peakboard-Anwendung. In der Anwendung stehen die Rohdaten in einer Tabelle, die an die Datenquelle gebunden ist, und die verarbeiteten Werte in zwei Textfeldern.

Peakboard-Anwendung mit den Nachrichten aus Azure Event Hubs in einer Tabelle und den Zählerständen der beiden Lichtschranken

Weiterführende Links

Das Flow-Projekt OPCUAToAzureHub.pbfx und die Anwendung AzureEventHub.pbmx kannst du herunterladen und im Peakboard Designer öffnen.

Produkt

Peakboard Hub Flows

Alle Funktionen, die Preise und die 60-tägige Testphase des Peakboard Hub stehen auf der Produktseite zu Peakboard Hub Flows.

Was ist Azure Event Hubs?

Ein Dienst von Microsoft, der große Datenströme in Echtzeit aufnimmt, etwa Logs, Klickstreams oder IoT-Signale. In Werken landen dort oft die Telemetrie- und Sensordaten von Maschinen.

Welche Rolle übernimmt Peakboard dabei?

Ein Hub Flow kann als Event Publisher Ereignisse an einen Event Hub senden. Eine Peakboard-Anwendung kann als Event Consumer Ereignisse empfangen und anzeigen.

Was brauche ich auf Azure-Seite?

Einen Event-Hubs-Namespace mit Event Hub und einer Zugriffsrichtlinie mit der Berechtigung Manage sowie ein Storage-Konto für die Offsets. Von beiden werden die Connection Strings benötigt.

Wann sendet der Hub Flow im Beispiel?

Bei jeder Änderung der beiden Zählerstände. Der Trigger „After data reload“ mit der Bedingung „Data change“ auf der OPC-UA-Datenquelle startet den Hub Flow, der dann die Funktion SendToAzure aufruft.

Wie kann ich Ereignisse aus Azure Event Hubs empfangen?

Mit einer Peakboard-Anwendung, die eine Event-Hub-Datenquelle nutzt. Die Anwendung erhält die abonnierten Ereignisse, sobald sie eintreffen, und die Datenquelle liefert sie als Tabelle mit den Spalten Timestamp und Message. Optional kannst du im Feld „Script (called if a message was received)“ ein Skript hinterlegen, das für jede eingehende Nachricht ausgeführt wird.

Teile diesen Artikel:
Peakboard Favicon
Author: Peakboard Redaktion

Die Peakboard Redaktion schreibt über Digitalisierung, Datenvisualisierung und Prozessoptimierung in Industrie und Logistik. Der Fokus liegt auf praxisnahen Lösungen, aktuellen Entwicklungen und verständlich aufbereitetem Fachwissen.

Schneebedeckter Berg mit orangefarbener Markierung entlang des Gipfels.
Schwarz-weiß-Bild von schneebedeckten Bergen in einem Tal.
Weiße Wolken vor schwarzem Hintergrund, die in horizontalen Linien verlaufen.
Weiße Wolken vor schwarzem Hintergrund, die in horizontalen Linien verlaufen.