Zum Hauptinhalt springen

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.

Variablen-Seite: woher der Wert kommt, die Variable und wo Sie sie verwenden

Woher ein Wert kommt​

QuelleWie er ankommt
SPS 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()
KonstanteEin 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:

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

LINT und ULINT kommen als Text an

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​

WoWie
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
LibraryDie Details jeder Aufnahme listen die gespeicherten Variablen auf, mit ihrer Quelle und dem Zeitpunkt, an dem jeder Wert empfangen wurde
Recipe scriptvars.serial, und vars_info.serial.age_ms dafür, wie alt der Wert ist. Siehe Recipe script
Camera scriptvars.get("serial"), und vars.set() für Variablen, deren Quelle das Camera script ist
ErgebnisnachrichtenJedes über MQTT, die HTTP-API und an das Camera script gesendete Ergebnis enthält vars und vars_info

Wissenswertes​

Schreiben vor dem Trigger

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 als null in 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
Testen auf dem Prüftisch ohne SPS

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.

Wie es weitergeht​