Zum Hauptinhalt springen

KI-GESTÜTZTE DOKUMENTATION

Was möchten Sie wissen?

HTTP API

Die HTTP API ermöglicht es einem MES, einem SCADA-System oder Ihrer eigenen Software, direkt über das Netzwerk mit der Kamera zu kommunizieren – mit oder ohne SPS. Über die API können Sie:

  • Eine Prüfung auslösen und das Ergebnis im selben Aufruf erhalten
  • Vergangene Ergebnisse abrufen oder live mitverfolgen, sobald sie abgeschlossen sind, mit ihren Bildern, Heatmaps und Segmentierungsmasken
  • Rezepte auflisten und das aktive wechseln
  • Zwischen Setup- und Run-Modus wechseln
  • Die Pass/Fail-Zähler lesen und zurücksetzen

Gehen Sie zu Integration → HTTP API:

OV Spark HTTP API-Bildschirm mit Base URL, API-Version und Authentifizierung, einer „Ready to trigger"-Checkliste sowie den Tabs Endpoints und Examples

BereichWas Sie damit erhalten
ConnectionDie Base URL, mit der jeder Aufruf beginnt, zum Beispiel http://10.250.0.100/api/integration/v1, die API-Version und ob Aufrufe Benutzername und Passwort benötigen
Download OpenAPI specEine maschinenlesbare Beschreibung jedes Endpunkts mit seinen Parametern und Antworten. Geben Sie sie Ihren Entwicklern oder laden Sie sie in Postman oder ein beliebiges OpenAPI-Tool
Ready to trigger?Eine Live-Checkliste dessen, was erfüllt sein muss, bevor POST /trigger funktioniert
Endpoints und ExamplesJeder Endpunkt, gruppiert nach Funktion, und kopierfertige Beispielaufrufe

Vor dem ersten Trigger​

Das Panel Ready to trigger? prüft drei Dinge. POST /trigger wird abgelehnt, bis alle drei bestanden sind, und der Fehler nennt den fehlgeschlagenen Punkt.

  1. Run-Modus. Wechseln Sie die Kamera über die obere Leiste aus dem Setup heraus oder rufen Sie POST /mode/run auf.
  2. Aktives Rezept. Ein Rezept muss aktiv sein. Aktivieren Sie eines unter All Recipes oder rufen Sie POST /recipes/{id}/activate auf.
  3. Akzeptiert HTTP-Trigger. Öffnen Sie im aktiven Rezept Schritt 2: Triggering, wählen Sie External und setzen Sie unter Enabled sources ein Häkchen bei HTTP.

Enabled sources unter External triggering: GPIO, PLC / Fieldbus und HTTP mit POST /trigger

HTTP ist nur eine von mehreren Quellen

Sie können mehr als eine Quelle aktivieren. Ein Rezept kann gleichzeitig einen Hardware-Trigger an der Linie und einen HTTP-Trigger von Ihrer Software akzeptieren. Eine nicht aktivierte Quelle wird ignoriert, selbst wenn etwas an sie sendet.

Eine Prüfung auslösen​

curl -X POST http://10.250.0.100/api/integration/v1/trigger \
-H "Content-Type: application/json" \
-d '{"wait_ms": 5000}'

Der Aufruf wartet bis zu wait_ms Millisekunden (standardmäßig 5000, maximal 30000) auf den Abschluss der Prüfung:

AntwortBedeutungWas zu tun ist
200Das abgeschlossene ErgebnisLesen Sie judgment: pass, fail oder not_inspected
202Angenommen, aber nicht innerhalb von wait_ms abgeschlossenRufen Sie GET /results?trigger_id= mit der zurückgegebenen trigger_id ab
409Die Kamera ist nicht bereitBeheben Sie, was code nennt: Run-Modus, aktives Rezept oder die HTTP-Quelle
503Ein temporärer Zustand, z. B. eine noch laufende PrüfungErneut versuchen
Senden Sie jeweils nur einen Trigger

Die Kamera prüft einen Trigger nach dem anderen. Ein Trigger, der gesendet wird, während der vorherige noch läuft, wird mit 503 abgelehnt, es sei denn, der Image trigger buffer des Rezepts erlaubt das Warten. Senden Sie den nächsten Trigger erst, nachdem die vorherige Antwort eingetroffen ist.

Behandeln Sie not_inspected als Ausschuss

not_inspected bedeutet, dass jedes Prüfwerkzeug übersprungen wurde, meistens weil die Ausrichtung das Teil nicht gefunden hat. Es wurde nichts geprüft, behandeln Sie es daher als Ausschuss, niemals als Pass.

Ergebnisse lesen​

AufrufRückgabe
GET /results/latestDas jüngste Ergebnis
GET /resultsErgebnisse, neueste zuerst, filterbar nach Rezept oder Trigger
GET /results/{id}Ein Ergebnis mit der Beurteilung jedes Werkzeugs
GET /results/{id}/imageDas geprüfte Bild als JPEG
GET /results/{id}/tools/{tool_id}/heatmapDie Heatmap einer Region als PNG
GET /results/{id}/tools/{tool_id}/maskDie Segmentierungsmaske einer Region als PNG
GET /results/streamEin Live-Stream der Ergebnisse, sobald sie abgeschlossen sind, von jeder Triggerquelle

GET /results/stream verwendet Server-Sent Events: Halten Sie eine Verbindung offen, und jede abgeschlossene Prüfung trifft ein, sobald sie geschieht – unabhängig davon, ob sie über HTTP, durch eine SPS oder durch einen Sensor ausgelöst wurde. Das ist in der Regel einfacher als Polling.

Jedes Werkzeug meldet ok, ng, indeterminate oder not_applicable, und das Gesamtergebnis meldet pass, fail oder not_inspected.

Weitere Aufrufe​

GruppeAufrufe
DeviceGET /health, GET /device, GET /status, GET /whoami, GET /openapi.yaml
RecipesGET /recipes, GET /recipes/active, POST /recipes/{id}/activate
StatisticsGET /statistics, POST /statistics/reset, GET /statistics/stream
ControlPOST /mode/run, POST /mode/setup
FieldbusGET /fieldbus, GET /fieldbus/descriptor (die EDS- oder GSDML-Datei für das aktive Protokoll)

Ein Rezept wird durch seine Nummer identifiziert, dieselbe PLC recipe ID, mit der eine SPS es auswählt, festgelegt in Schritt 5: Outputs.

Warten Sie, bis der Moduswechsel abgeschlossen ist

Nach POST /mode/run fragen Sie GET /status ab, bis mode auf run steht und mode_changing false ist, bevor Sie triggern. Der Moduswechsel dauert einen Moment, während das Rezept geladen wird.

Anmeldung und Sicherheit​

Solange die Kamera keinen Admin-Benutzer hat, benötigt die API keine Anmeldedaten. Sobald ein Admin existiert, benötigt jeder Aufruf außer /health, /whoami und /openapi.yaml den Benutzernamen und das Passwort eines Kamerakontos, gesendet als HTTP Basic-Authentifizierung:

curl -u line3-mes:PASSWORD http://10.250.0.100/api/integration/v1/results/latest
Geben Sie jedem angeschlossenen System ein eigenes Konto

Erstellen Sie unter Users and Permissions ein Konto pro System, damit die Audit Logs zeigen, welches System was getan hat. Weisen Sie ihm die niedrigste Rolle zu, die die Aufgabe erfüllt; GET /whoami listet mit den Anmeldedaten dieses Kontos genau auf, was es aufrufen darf. Aktivieren Sie HTTPS in den System Settings, damit Passwörter nicht im Klartext durch das Netzwerk übertragen werden.

Die API wächst nur innerhalb von /api/integration/v1: Neue Endpunkte und Felder können hinzukommen, aber bestehende ändern niemals ihre Bedeutung und verschwinden nicht. Code, der heute dagegen geschrieben wird, funktioniert auch nach einem Firmware-Update weiter.

Nächste Schritte​