KI-GESTÜTZTE DOKUMENTATION
Was möchten Sie wissen?
Variablen
Eine Variable enthält einen Wert aus Ihrer Linie, beispielsweise die Seriennummer des Teils vor der Kamera. Die Kamera hält ihn während des Betriebs aktuell, und jede Prüfung speichert den Wert, den die Variable zu diesem Zeitpunkt hatte. Sie können ihn dann in Dateinamen einsetzen, in der Library ansehen und in Skripten verwenden. Kein Code erforderlich.
Öffnen Sie Integration > Variables.

Woher ein Wert kommt
| Quelle | Wie er ankommt |
|---|---|
| PLC User Data | Die SPS schreibt ihn in ihre User-Data-Bytes |
| MQTT | Eine Nachricht trifft auf einem Topic ein. Der Wert kann die gesamte Payload oder ein Feld einer JSON-Nachricht sein |
| Camera script | Ihr Camera script ermittelt ihn und setzt ihn mit vars.set() |
| Constant | Ein fester Wert, den Sie eingeben, z. B. ein Linien- oder Stationsname |
Sie können auf der Variables-Seite auch einen Wert manuell setzen, zum Beispiel wenn ein Bediener eine Losnummer eingibt. Ein manuell gesetzter Wert bleibt bestehen, bis die eigene Quelle der Variablen einen neuen Wert sendet, und Captures, die ihn verwendet haben, erhalten in der Library ein manual-Kennzeichen.
Die Seite bietet drei Beispiele zum Einstieg: eine Teileseriennummer von der SPS, eine Losnummer von MQTT sowie einen Linien- oder Stationsnamen.
Von der SPS
Wählen Sie, wo der Wert in den User Data der SPS liegt, und seinen Typ:
| Einstellung | Werte |
|---|---|
| Offset | Byte 0 bis 463 der User Data |
| Type | BOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING, BYTES |
| Bit | 0 bis 7, nur für BOOL. Ohne diese Angabe bedeutet BOOL, dass das gesamte Byte ungleich null ist |
| String format | Fixed length (eine festgelegte Anzahl von Zeichen, nachgestellte Leerzeichen und NUL-Zeichen werden entfernt), Rockwell (ein Logix-STRING: ein DINT für die Länge, dann 82 Zeichen) oder Siemens (ein S7-STRING: ein Byte für die Maximallänge, ein Byte für die aktuelle Länge, dann die Zeichen) |
Die Byte-Reihenfolge richtet sich nach dem Feldbus: Little-Endian bei EtherNet/IP, Big-Endian bei PROFINET. Bei PROFINET treffen manche Bytes nur dann ein, wenn die SPS das vollständige User-Data-Modul sendet.
64-Bit-Ganzzahlen erreichen Skripte und Ergebnisnachrichten als Dezimalzeichenketten, da JavaScript-Zahlen nicht jeden 64-Bit-Wert aufnehmen können. Verwenden Sie BigInt(vars.part_id) in einem Skript, wenn Sie damit rechnen müssen.
Von MQTT
Geben Sie das Topic an, wie die Payload gelesen werden soll (JSON, String oder Number) und bei JSON den Pfad zum Feld, zum Beispiel $.id. Wildcards sind im Topic einer Variablen nicht zulässig. Solange MQTT deaktiviert ist, bleibt die Variable leer.
Namen und Grenzen
- Namen bestehen aus Kleinbuchstaben, Ziffern und Unterstrichen, beginnen mit einem Buchstaben und sind bis zu 32 Zeichen lang:
serial,lot_number,part_type - Diese Namen sind reserviert:
vars,vars_info,tools,tools_by_name,rules,trigger,recipe,state - Bis zu 64 Variablen pro Kamera. Textwerte sind bis zu 1024 Bytes lang
Wo Sie sie verwenden
| Wo | Wie |
|---|---|
| Dateinamen und Ordnernamen in Remote-Speicher | {var.serial}, zum Beispiel {camera}/{var.lot} als Ordner und {var.serial}_{capture_id} als Dateiname. Ein Dateiname benötigt weiterhin {capture_id}, {trigger_id} oder {timestamp} und darf kein / enthalten. Siehe Remote-Speicher |
| Library | Die Details jedes Captures listen die gespeicherten Variablen mit ihrer Quelle und dem Empfangszeitpunkt jedes Werts auf |
| Recipe script | vars.serial und vars_info.serial.age_ms für das Alter. Siehe Recipe script |
| Camera script | vars.get("serial") sowie vars.set() für Variablen, deren Quelle das Camera script ist |
| Ergebnisnachrichten | Jedes Ergebnis, das über MQTT, die HTTP-API und an das Camera script gesendet wird, enthält vars und vars_info |
Hinweise
Jede Prüfung speichert die Werte, die die Variablen haben, wenn ihre Tools abgeschlossen sind. Lassen Sie die SPS die Seriennummer schreiben, bevor sie den Trigger auslöst, sonst speichert das Capture den Wert des vorherigen Teils.
- Leer erscheint als
_. Eine Variable ohne Wert erscheint in Dateinamen als_und in Skripten alsnull - Nach einem Neustart leer. Nach einem Neustart wartet jede Variable darauf, dass ihre Quelle einen neuen Wert sendet. Manuell gesetzte Werte müssen erneut gesetzt werden
- Ein Satz pro Kamera. Variablen gehören zur Kamera, sodass jedes Rezept darauf die gleichen liest
- Exporte. Variablen werden mit Rezept-Exporten übertragen
Setzen Sie die Variable manuell auf der Variables-Seite und lösen Sie dann manuell aus. Das Recipe script sieht den manuell gesetzten Wert genauso, wie es den der SPS sehen würde, und das Capture wird als manual gekennzeichnet, damit es nicht mit Produktionsdaten verwechselt wird. Ein Recipe script kann manuell gesetzte Werte auf Linien ablehnen, auf denen sie nicht erlaubt sind, indem es vars_info.<name>.source prüft.