Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

MQTT

OV Spark verfügt über einen integrierten MQTT-Client. Dieser 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, etwa die aktuelle Losnummer, in Variablen

Unterstützt werden MQTT 3.1.1 und 5, mit reinem TCP, TLS oder Mutual TLS (Client-Zertifikate).

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

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

Einrichtung​

Die Einrichtung umfasst drei Schritte.

1. Mit dem Broker verbinden​

Wählen Sie die Art des Brokers, um typische Einstellungen vorzubefüllen, die Sie dann 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; alle Felder legen Sie selbst fest

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

EinstellungHinweise
Adresse und PortHostname oder IP-Adresse des Brokers. Standard-Port 1883
MQTT-Version5 (Standard) oder 3.1.1
SicherheitNone, TLS oder Mutual TLS (Client-Zertifikat). TLS ohne CA-Zertifikat verwendet den im Gerät 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 erlaubt
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. Einstellungen werden gespeichert, sobald Sie bei jedem Schritt Speichern und fortfahren drücken, und MQTT bleibt bis Schritt 3 deaktiviert.

TLS im Werksnetzwerk verwenden

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

2. Auswählen, was gesendet werden soll​

NachrichtStandard-TopicHinweise
Prüfergebnisseoverview/<serial>/resultsEine Nachricht pro Produktionsprüfung, mit der von Ihnen gewählten QoS (Standard 1). Summary lässt den detail-Teil jedes Tools weg; Full schließt ihn 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 auf plant/line3/results.

3. MQTT einschalten​

Schalten Sie MQTT ein und verfolgen Sie dann jede ausgehende Nachricht unter Monitor > Topics and messages.

Ergebnisse werden nicht beibehalten

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

So sieht eine Ergebnisnachricht aus​

Dasselbe Dokument wird von MQTT, der HTTP-API und dem onResult des Kamera-Skripts 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 von der Prüfung gespeicherten Variablen
  • 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 aktuellsten Wert. Für Komplexeres, etwa das Herausgreifen eines Feldes aus einer Herstellernachricht oder das Beantworten von Anfragen, verwenden Sie das Kamera-Skript.

Exporte kommen deaktiviert an

MQTT-Einstellungen werden mit Rezept-Exporten übertragen, aber Passwörter und Zertifikate werden niemals exportiert. Wenn die Ursprungskamera Anmeldedaten verwendet hat, die die Zielkamera nicht besitzt, kommt MQTT deaktiviert an. Andernfalls bleibt die Ein/Aus-Einstellung der Quelle erhalten, sodass ein Import auf einer 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​