Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

MQTT

OV Spark Pro verfügt über einen integrierten MQTT-Client. Er verbindet sich mit Ihrem Broker, in Ihrem Netzwerk oder in der Cloud, und:

  • veröffentlicht jedes Prüfergebnis als JSON, ganz ohne Skript
  • veröffentlicht einen Heartbeat und seinen Online-Status
  • empfängt Werte, wie z. B. die aktuelle Chargennummer, in Variablen

Er unterstützt MQTT 3.1.1 und 5, mit reinem TCP, TLS oder gegenseitigem TLS (Client-Zertifikate).

Öffnen Sie Integration > Data Connectors und wählen Sie MQTT.

MQTT-Überblick: Ergebnisse senden, Werte empfangen, eigene Nachrichten skripten und die Broker-Typen

Einrichtung​

Die Einrichtung erfolgt in drei Schritten.

1. Mit dem Broker verbinden​

Wählen Sie den Broker-Typ, um typische Einstellungen vorauszufüllen, die Sie anschließend anpassen können:

Broker-TypTypisch
Plant Broker (Mosquitto, HiveMQ, EMQX)Port 1883 oder 8883 mit TLS
Ignition / SCADA (Ignition MQTT Distributor und ähnliche)Port 1883
Cloud-Broker (AWS IoT, Azure, HiveMQ Cloud und ähnliche)Port 8883 mit TLS
Etwas anderesJeder MQTT 3.1.1- oder 5-Broker; Sie legen jedes Feld selbst fest

Mit Ihrem Broker verbinden: Adresse, Port, MQTT-Version, Sicherheit und die Verbindungsprüfung

EinstellungHinweise
Adresse und PortHostname oder IP-Adresse des Brokers. Standardport 1883
MQTT-Version5 (Standard) oder 3.1.1
SicherheitKeine, TLS oder Mutual TLS (Client-Zertifikat). TLS ohne CA-Zertifikat verwendet den in der Kamera integrierten Trust Store; Mutual TLS erfordert eine CA, ein Client-Zertifikat und einen Client-Schlüssel
Benutzername und PasswortLeer lassen, wenn der Broker anonyme Verbindungen zulässt
ErweitertClient-ID (standardmäßig die Seriennummer der Kamera), Keep-Alive (30 s) und Clean Session (ein)

Die Verbindungsprüfung läuft eine Sekunde, nachdem Sie die Eingabe beenden: Sie löst den Hostnamen auf, verbindet sich mit dem Port, prüft TLS und meldet sich an, Schritt für Schritt. Die Einstellungen werden gespeichert, wenn Sie bei jedem Schritt auf Speichern und fortfahren klicken, und MQTT bleibt bis Schritt 3 deaktiviert.

TLS im Werksnetzwerk verwenden

Keine sendet alles unverschlüsselt, einschließlich des Passworts. Das ist in einem isolierten Maschinennetzwerk in Ordnung. Verwenden Sie TLS, wenn der Datenverkehr das Werks- oder Büronetzwerk durchquert, und Mutual TLS für Cloud-Broker, die Client-Zertifikate erfordern.

2. Auswählen, was gesendet werden soll​

NachrichtStandard-TopicHinweise
Prüfergebnisseoverview/<serial>/resultsEine Nachricht pro Prüfung im Produktionsmodus, mit dem von Ihnen gewählten QoS (standardmäßig 1). Summary lässt das detail jedes Tools weg; Full schließt es ein
Heartbeatoverview/<serial>/heartbeatAlle N Sekunden (5 oder mehr, oder aus), mit QoS 0
Online-Statusoverview/<serial>/statusEin retained {"status":"online"}, und ein Last-Will {"status":"offline"}, das der Broker sendet, wenn die Kamera die Verbindung verliert

Sie können jedes Topic ändern, zum Beispiel in plant/line3/results.

3. MQTT einschalten​

Schalten Sie MQTT ein und beobachten Sie dann unter Monitor > Topics and messages, wie jede Nachricht ausgeht.

Ergebnisse werden nicht beibehalten

Ergebnisnachrichten werden mit deaktiviertem Retain-Flag veröffentlicht, sodass ein Subscriber, der sich später verbindet, ein altes Ergebnis nicht als neu erhält. Um das letzte Ergebnis verfügbar zu halten, veröffentlichen Sie es selbst aus dem Kameraskript mit retain: true, oder lesen Sie es über die HTTP API.

Wie eine Ergebnisnachricht aussieht​

Dasselbe Dokument wird von MQTT, der HTTP API und dem onResult des Kameraskripts verwendet. Ein Full-Ergebnis, gekürzt:

{
"schema_version": 1,
"serial": "5F9FE801",
"id": "01a17216-f035-7ec5-adae-b90b6a0868a8",
"recipe": { "id": 3, "name": "Kit tray" },
"trigger": { "id": 420596, "source": "plc" },
"image": { "width": 2592, "height": 1944, "url": "/api/integration/v1/results/01a17216-f035-7ec5-adae-b90b6a0868a8/image" },
"captured_at": "2026-10-25T08:04:28.341Z",
"processing_ms": 82,
"judgment": "fail",
"pass": false,
"not_inspected": false,
"reason": "serial differs",
"judgment_source": "script",
"rules": { "judgment": "pass", "pass": true, "not_inspected": false },
"vars": { "serial": "SN-24-118734" },
"tools": [
{
"id": "01a15f8b-da07-7e42-8b3e-d3edaff79428",
"type": "classical.barcode",
"name": "Label",
"plc_slot": 1,
"judgment": "pass",
"score": 1,
"execute_ms": 4,
"detail": { "decoded": true, "data": "0104012345678901", "symbology": "data_matrix" }
}
],
"metadata": {},
"tags": [],
"plc_inspection_id": 1234,
"phase": "production"
}
  • judgment_source gibt an, was die Beurteilung getroffen hat: die Regeln, das Rezept-Skript oder script_error, wenn das Skript fehlgeschlagen ist
  • rules ist die Beurteilung der Regeln, auch wenn das Skript entschieden hat
  • vars enthält die Variablen, die die Prüfung gespeichert hat
  • image.url ruft das Bild über die HTTP API ab

Der Heartbeat ist klein:

{"schema_version":1,"serial":"5F9FE801","hostname":"line3-cam","recipe":"Kit tray","phase":"production","uptime_s":3600,"mqtt":"connected","ts":"2026-10-25T08:04:28.341Z"}

Werte empfangen​

Um einen Wert hereinzubringen, deklarieren Sie eine Variable mit MQTT als Quelle: das Topic und bei JSON den Pfad zum Feld. Jede Prüfung speichert dann den neuesten Wert. Für alles Weitergehende, etwa das Auslesen eines Feldes aus der Nachricht eines Herstellers oder die Beantwortung von Anfragen, verwenden Sie das Kameraskript.

Exporte kommen deaktiviert an

MQTT-Einstellungen werden mit Rezept-Exporten übertragen, aber Passwörter und Zertifikate werden nie exportiert. Wenn die Quellkamera Anmeldedaten verwendet hat, die die Zielkamera nicht besitzt, kommt MQTT deaktiviert an. Andernfalls behält es die Ein/Aus-Einstellung der Quelle bei, sodass ein Import auf eine Kamera, die einen anonymen Broker erreichen kann, sofort mit dem Veröffentlichen beginnen kann. Prüfen Sie nach jedem Import die Data Connectors.

Wie es weitergeht​