KI-GESTÜTZTE DOKUMENTATION
Was möchten Sie wissen?
Scriptable Integration
Ab Firmware 2026.10.30 kann OV Spark Daten von Ihrer Linie entgegennehmen, mit Ihrer eigenen Logik entscheiden und Ergebnisse in Ihrem eigenen Format ausgeben – alles direkt auf der Kamera. Es gibt vier Bausteine, und die meisten Konfigurationen nutzen nur ein oder zwei davon:
| Baustein | Was es ist | Code? |
|---|---|---|
| Variablen | Werte, die von außen kommen, etwa eine Serien- oder Losnummer von der SPS oder aus MQTT. Jede Aufnahme speichert die Werte, mit denen sie ausgeführt wurde | Nein |
| Recipe script | JavaScript im Schritt Beurteilung, das OK oder NG mit Begründung entscheidet, Metadaten und Tags hinzufügt und eigene Bytes für die SPS schreibt | Ja |
| Camera script | Ein kamera-weites Skript, das an MQTT veröffentlicht, auf eingehende Nachrichten reagiert sowie Zähler und Alarme pflegt | Ja |
| MQTT | Ein integrierter MQTT-Client. Sobald ein Broker eingerichtet ist, wird jedes Prüfergebnis veröffentlicht – ganz ohne Skript | Nein |
Sie finden diese unter Integration in der linken Navigation der Kamera: Variables, Camera Script und Data Connectors. Das Recipe script befindet sich im Schritt Beurteilung jedes Rezepts.

Recipe script oder Camera script
| Recipe script | Camera script | |
|---|---|---|
| Gehört zu | Einem Rezept und wird mit diesem exportiert | Der Kamera und läuft über Rezeptwechsel hinweg weiter |
| Läuft | Bei jeder Prüfung, nach den Tools und bevor die SPS das Ergebnis sieht | Wenn etwas passiert: ein Ergebnis, eine MQTT-Nachricht, eine Änderung der SPS-Benutzerdaten, ein Timer |
| Speicher | Kein verlässlicher Speicher: jede Prüfung beginnt neu | Behält Zustand zwischen Ereignissen bis zum Neuladen |
| Zeitlimit | 25 ms standardmäßig, bis zu 200 ms | 1 Sekunde bis zum ersten await eines Hooks, danach 50 ms pro Teil |
| Kann | OK oder NG und die Begründung setzen, PLC User Results Bytes schreiben, Metadaten und Tags hinzufügen | An MQTT veröffentlichen, Variablen setzen, Alarme auslösen, Timer ausführen |
| Kann nicht | Netzwerk nutzen, Zustand halten, Timer verwenden | Eine Beurteilung ändern, SPS-Bytes schreiben, eine abgeschlossene Aufnahme bearbeiten |
Wenn die SPS es benötigt, sobald Inspection Completed aktiv wird, gehört es in das Recipe script. Wenn es über das Netzwerk geht oder sich etwas über Teile hinweg merken muss, gehört es in das Camera script.
Die beiden sind über Variablen verbunden: Das Camera script setzt eine Variable, das Recipe script liest sie, und der Wert wird mit der Aufnahme gespeichert – so sehen Sie jederzeit, worauf eine Entscheidung beruhte.
Typische Konfigurationen
| Sie möchten | Verwenden Sie |
|---|---|
| Die Serien- oder Codenummer, die die SPS mit jedem Bild sendet, speichern | Eine Variable, die an PLC User Data gebunden ist. Kein Code: Jede Aufnahme speichert sie, die Library zeigt sie an, und Dateinamen im Remote-Speicher können sie nutzen, z. B. {camera}/{var.lot} für den Ordner und {var.serial}_{capture_id} als Dateinamen |
| Das Teil mit dem vergleichen, was die SPS erwartet | Ein Recipe script, das den OCR-Text oder Code mit der Serien-Variable vergleicht und mit serial differs ablehnt. Dasselbe Prinzip funktioniert für eine Anzahl gegenüber der Bestellmenge |
| Daten aus MES oder einem anderen System übernehmen | Eine Variable, die an ein MQTT-Topic und ein JSON-Feld gebunden ist, oder ein Camera script, das ein Feld aus einer Fremdnachricht entnimmt und die Variable setzt |
| Einem Bediener die Eingabe der Losnummer erlauben | Setzen Sie die Variable manuell auf der Seite Variables. Aufnahmen mit einem manuell eingegebenen Wert erhalten ein manual-Kennzeichen. So testen Sie auch Skripte auf dem Tisch ohne SPS |
| Aufnahmen später nach Los oder danach finden, wie knapp sie am Ausschuss waren | Ein Recipe script, das Werte als Metadaten speichert und Aufnahmen taggt, etwa near-miss oder review |
| Eigene Daten an die SPS senden | Ein Recipe script, das mit pack() eine Anzahl, ein Bit pro Region oder einen Code pro Tool in User Results packt |
| Pro Modell andere Prüfungen ausführen | Die SPS sendet den Teiletyp; das Recipe script kennzeichnet andere Teiletypen als Not inspected oder aktiviert/deaktiviert eine Prüfung |
| Eigene Pass-Logik verwenden | Zum Beispiel OK, wenn mindestens 78 von 80 Regionen OK sind, oder den Namen des fehlerhaften Tools in die Begründung schreiben |
| Ein Teil nicht prüfen, wenn Daten fehlen oder veraltet sind | Ein Recipe script, das Not inspected zurückgibt, wenn die Seriennummer nicht eingetroffen ist oder wenn der letzte Wert der SPS zu alt ist |
| Jedes Ergebnis veröffentlichen | Nichts zu schreiben: Mit einem unter Data Connectors eingerichteten Broker gehen jedes Ergebnis und ein Heartbeat an MQTT. Nutzen Sie das Camera script für ein eigenes Topic oder Nachrichtenformat |
| Die Linie überwachen | Ein Camera script, das nach N Ausschüssen in Folge einen Alarm auslöst, OK- und NG-Zählerstände pro Schicht als CSV veröffentlicht oder einen Heartbeat sendet |
| Auf Anfragen über MQTT antworten | Ein Camera script, das Anfragen wie last result oder value of a variable beantwortet |
Für jede der obigen Konfigurationen, die ein Skript verwendet, gibt es eine fertige Vorlage im Bereich Templates des Skript-Editors.
Die Skript-Werkbank
Beide Skripte werden im selben Editor auf der Kamera geschrieben, mit:
- Templates: funktionierende Beispiele für jede obige Aufgabe. Wählen Sie eines aus und tragen Sie Tool oder Variable ein
- Autocomplete und ein Reference-Panel, das jeden Hook, jede globale Variable und jeden Typ mit kurzen Anleitungen dokumentiert
- Test gegen die Live-Kamera oder kürzliche Aufnahmen, sodass Sie nicht mehr zwischen HMI und Skript-Tab wechseln müssen
- History: Ihre letzten 20 gespeicherten Versionen zum Vergleich oder zur Wiederherstellung
- Test führt den Entwurf an einem Live-Trigger oder gespeicherten Aufnahmen aus (die neueste, die letzten N bis zu 500, einen Library-Filter oder Aufnahmenummern). Für das Camera script ist dies ein Dry Run, der kürzliche Ergebnisse abspielt, ohne etwas zu senden

Ein Recipe script, das einen Fehler wirft oder das Zeitlimit überschreitet, macht das Teil Not inspected und nullt die PLC User Results. Führen Sie Test sowohl mit einem fehlerhaften als auch einem guten Teil aus, bevor Sie speichern, und halten Sie das Skript kurz: Seine Laufzeit addiert sich zu jedem Zyklus.
Gut zu wissen
- Variablen, Skripte und MQTT-Einstellungen werden mit Rezept-Exporten übernommen. Passwörter und Zertifikate werden nicht exportiert: Wenn die Quelle Anmeldedaten verwendet hat, die das Ziel nicht hat, kommt MQTT deaktiviert an; andernfalls bleibt die Einstellung der Quelle erhalten
- Die HTTP API gibt Ergebnisse jetzt im gleichen Format wie MQTT und die Skripte zurück. Wenn Sie gegen 2026.10.13 integriert haben, beachten Sie die Feldänderungen auf dieser Seite
- Noch nicht verfügbar: Eine Prüfung auslösen oder Rezepte aus dem Camera script heraus wechseln (das machen weiterhin SPS und HTTP), TCP und OPC-UA sowie ein HMI-Widget zum Anzeigen oder Setzen einer Variable
Nächste Schritte
- Variables
- Recipe script, mit einem Playground, den Sie im Browser ausprobieren können
- Camera script
- MQTT