Zum Hauptinhalt springen

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.

Variables-Seite: Woher der Wert kommt, die Variable und wo Sie sie verwenden

Woher ein Wert kommt​

QuelleWie er ankommt
PLC User DataDie SPS schreibt ihn in ihre User-Data-Bytes
MQTTEine Nachricht trifft auf einem Topic ein. Der Wert kann die gesamte Payload oder ein Feld einer JSON-Nachricht sein
Camera scriptIhr Camera script ermittelt ihn und setzt ihn mit vars.set()
ConstantEin 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:

EinstellungWerte
OffsetByte 0 bis 463 der User Data
TypeBOOL, SINT, USINT, INT, UINT, DINT, UDINT, LINT, ULINT, REAL, LREAL, STRING, BYTES
Bit0 bis 7, nur für BOOL. Ohne diese Angabe bedeutet BOOL, dass das gesamte Byte ungleich null ist
String formatFixed 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.

LINT und ULINT kommen als Text an

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​

WoWie
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
LibraryDie Details jedes Captures listen die gespeicherten Variablen mit ihrer Quelle und dem Empfangszeitpunkt jedes Werts auf
Recipe scriptvars.serial und vars_info.serial.age_ms für das Alter. Siehe Recipe script
Camera scriptvars.get("serial") sowie vars.set() für Variablen, deren Quelle das Camera script ist
ErgebnisnachrichtenJedes Ergebnis, das über MQTT, die HTTP-API und an das Camera script gesendet wird, enthält vars und vars_info

Hinweise​

Vor dem Trigger schreiben

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 als null
  • 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
Auf dem Prüftisch ohne SPS testen

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.

Wie es weitergeht​