KI-GESTÜTZTE DOKUMENTATION
Was möchten Sie wissen?
Variablen
Eine Variable enthält einen Wert aus Ihrer Linie, zum Beispiel 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 sie in diesem Moment hatte. Sie können ihn dann in Dateinamen einfügen, in der Library sehen und in Skripten verwenden. Es ist kein Code erforderlich.
Öffnen Sie Integration > Variablen.

Woher ein Wert kommt
| Quelle | Wie er ankommt |
|---|---|
| SPS 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() |
| Konstante | Ein fester Wert, den Sie eingeben, etwa ein Linien- oder Stationsname |
Sie können einen Wert auch manuell setzen auf der Variablen-Seite, 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 Aufnahmen, die ihn verwendet haben, erhalten in der Library ein manual-Kennzeichen.
Die Seite bietet drei Beispiele zum Einstieg: eine Teile-Seriennummer von der SPS, eine Losnummer von MQTT und einen Linien- oder Stationsnamen.
Von der SPS
Wählen Sie, wo der Wert in den User Data der SPS liegt, und dessen Typ:
| Einstellung | Werte |
|---|---|
| Offset | Byte 0 bis 463 der User Data |
| Typ | BOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING, BYTES |
| Bit | 0 bis 7, nur für BOOL. Ohne Angabe bedeutet BOOL, dass das gesamte Byte ungleich null ist |
| String-Format | Feste Länge (eine festgelegte Anzahl von Zeichen, nachgestellte Leerzeichen und NULs werden entfernt), Rockwell (ein Logix-STRING: ein DINT-Längenfeld, dann 82 Zeichen) oder Siemens (ein S7-STRING: ein Max-Längen-Byte, ein Längen-Byte, dann die Zeichen) |
Die Byte-Reihenfolge folgt dem Feldbus: Little-Endian bei EtherNet/IP, Big-Endian bei PROFINET. Bei PROFINET kommen manche Bytes nur an, wenn die SPS das vollständige User-Data-Modul sendet.
64-Bit-Ganzzahlen erreichen Skripte und Ergebnisnachrichten als Dezimal-Strings, 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 für JSON den Pfad zum Feld, zum Beispiel $.id. Wildcards sind im Topic einer Variablen nicht erlaubt. 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 |
|---|---|
| Dateiname und Ordnername im 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 jeder Aufnahme listen die gespeicherten Variablen auf, mit ihrer Quelle und dem Zeitpunkt, an dem jeder Wert empfangen wurde |
| Recipe script | vars.serial, und vars_info.serial.age_ms dafür, wie alt der Wert ist. Siehe Recipe script |
| Camera script | vars.get("serial"), und vars.set() für Variablen, deren Quelle das Camera script ist |
| Ergebnisnachrichten | Jedes über MQTT, die HTTP-API und an das Camera script gesendete Ergebnis enthält vars und vars_info |
Wissenswertes
Jede Prüfung speichert die Werte, die die Variablen haben, wenn ihre Tools fertig sind. Lassen Sie die SPS die Seriennummer schreiben, bevor sie den Trigger auslöst, sonst speichert die Aufnahme den Wert des vorherigen Teils.
- Leer wird als
_angezeigt. Eine Variable ohne Wert erscheint als_in Dateinamen und alsnullin Skripten - Neustarts beginnen 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 dieselben liest
- Exporte. Variablen werden mit Rezept-Exporten mitgeführt
Setzen Sie die Variable manuell auf der Variablen-Seite und lösen Sie dann manuell einen Trigger aus. Das Recipe script sieht den manuell gesetzten Wert genauso, wie es den der SPS sehen würde, und die Aufnahme wird als manual gekennzeichnet, damit sie nie 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.