Persistente Variablen
In diesem Kapitel finden Sie allgemeine Informationen zur Bedienung von persistenten Variablen der evoVIU-Kamera.
Einleitung
Oftmals gibt es Szenarien, in denen Zähler oder bestimmter Werte nach einem Neustart erneut zur Verfügung stehen müssen. Ein Zurücksetzen oder erneuter Beginn muss in diesen Fällen verhindert werden. Genau an diesem Punkt kommen die persistenten Variablen ins Spiel. Im Workflow können Sie diese nutzen um auf Werte auch nach einem Neustart, ganz egal ob Kamera oder Prozess, zurückgreifen zu können.
Übersicht
Grundsätzlich können Sie den Inhalt der persistenten Variablen auf der Übersichtsseite einsehen. In der Top App Bar, der roten Leiste am oberen Bildschirmrand, können Sie unter Logic Ihren Workflow konfigurieren, unter Dashboard anhand von Widgets Informationen über Ihren aktuellen Prozess anzeigen und über Variants Pfade mit unterschiedlichen Werten, in diesem Fall die initialen Werte Ihrer persistenten Variablen setzen. Sie können auf dieser Übersichtsseite beim laufenden Prozess jedoch auch die aktuellen Werte Ihrer persistenten Variable auslesen.
Wichtig: Bevor Sie einen Workflow mit persistenten Variablen starten können, müssen Sie auf der Übersichtsseite die initialen Werte hinterlegen.

Konfiguration im Workflow
Persistent Attribute
Wie Sie möglicherweise bereits wissen, können Sie im Workflow eine beliebige Anzahl an Variable von unterschiedlichen Typen erstellen und nutzen. Für die Nutzung von persistenten Variablen bietet sich der Int32-Datentyp an. Wenn Sie eine Variable auswählen, dann können Sie im zugehörigen Details-Tab unter dem Attribut Persistent dafür sorgen, dass die Variable als persistente Variable zur Verfügung steht.

Scope
Sobald eine Variable als persistent deklariert ist, muss noch eine Aussage über den Scope, also den Geltungsbereich der Variable getroffen werden. Diese kann für den gesamten Workflow, also global, gültig sein, oder nur für einzelne Varianten.

Anwendungsbeispiel
Aufbau eines Workflows
Zu Grunde liegt ein fiktives Beispiel. Auf der einen Seite soll ein globaler Zähler die Durchläufe protokollieren, auf der anderen Seite soll eine persistente Variablen die Durchläufe der jeweiligen Varianten festhalten. Im Workflow werden letztendlich nur Rechenoperationen durchgeführt. Die entscheidenden Variablen wurden wie in den Bereichen Persistent Attribute und Scope in den beiden möglichen Konstellationen konfiguriert.

Auswertung eines Workflows
Während zum Start des Workflows zunächst alle Variablen den Wert 0 enthielten, so konnte man nach einem Stopp sowie dem Wechsel der Variante feststellen, dass insgesamt 15 Durchläufe stattfanden, wobei die schwarze Variante nur 5, wohingegen die weiße Variante insgesamt 10 mal aufgerufen wurde.

Weiteres Anwendungsbeispiel
Einleitung komplexere Datentypen
In vielen Bildverarbeitungs‑Systemen konnten bisher nur einfache (primitive) Datentypen wie String, Integer oder Boolean dauerhaft gespeichert werden. Mit der Möglichkeit, nun auch komplexere Datentypen zu persistieren, entsteht ein deutlicher praktischer Vorteil für Anwender.
Komplexe Einstellungen sind oft zeitaufwendig aufgebaut – zum Beispiel eine manuell erstellte ROI oder eine Polyline zur Kantenverfolgung. Wenn diese Daten nach einem Neustart verloren gehen, müssen sie jedes Mal neu rekonstruiert werden. Mit Persistenz gilt:
Die Kamera startet genau da, wo der Anwender aufgehört hat.
Das spart Zeit, vermeidet Fehler und erhöht die Prozessstabilität. Viele Prüfaufgaben hängen außerdem von grafischen oder geometrischen Einstellungen ab, z. B. wo gemessen wird (ROI), welche Kante verfolgt wird (Polyline) oder welche Farbe der Sollwert hat (Color). Werden diese Werte komplex gespeichert, bleibt der Prüfprozess identisch und reproduzierbar — unabhängig von Neustarts, Updates oder Stromausfällen.
Ohne persistente komplexe Datentypen müssen Operatoren ROIs neu ziehen, Polylines neu setzen, Farbschwellen neu auswählen oder Bilder manuell neu laden. Das ist fehleranfällig. Persistenz ermöglicht hier das Einrichten sowie das Speichern – und beim nächsten Start ist alles sofort wieder da. Gerade in Produktionsumgebungen erhöht das die Prozesssicherheit erheblich.
Mit der neuen Möglichkeit, komplexe Datentypen wie Image, Polyline oder Color persistent zu speichern, bleibt der gesamte Prüfzustand auch nach einem Neustart vollständig erhalten. Dadurch müssen Anwender keine geometrischen Einstellungen, Farben oder Bilddaten neu einrichten. Das spart Zeit, verhindert Fehler und erhöht die Prozesssicherheit in der industriellen Produktion deutlich. Primitive Datentypen reichen hierfür nicht aus, da sie keine strukturierten Daten wie Bilder, Konturen oder Farbräume abbilden können.
Beispiel
Anhand eines kleinen, simplen Beispiels möchten wir mit Ihnen genauer beleuchten wie komplexe Datentypen im Workflow gesetzt und als Variablen persistiert werden können. Wir werfen dabei einen Blick auf die Inhalte von unterschiedlichen Datentypen, von Polyline über Color bis hin zu Arrays.

Wenn Sie den Workflow mindestens ein Mal gestartet haben und anschließend zur Seite Variants wechseln, werden Sie eine Auflistung all Ihrer persistenten Variablen vorfinden. Das interessante dabei: Im Gegensatz zu den primitiven Datentypen können Sie die Werte Ihrer Variablen über einen Aufklappmechanismus innerhalb der Tabelle auslesen. Dort warten typspezifische Informationen auf Sie.

Sehen wir uns doch mal die Polyline genauer an. Wenn Sie die Detail-Ansicht ausklappen, finden Sie die Polyline in Form eines Bildes vor. Die darunter aufgelisteten Werte der Polyline werden somit grafisch dargestellt und erleichtern Ihnen die Einordnung der Werte.

Lassen Sie uns noch einen weiteren Datentyp ansehen. In der Detail-Ansicht des Datentyps Color werden bspw. die jeweiligen Werte für R, G und B aufgelistet. Das Besondere an diesem Beispiel: Es handelt sich hier um ein Array. Die Werte des Datentyps Color werden somit nicht nur einmal, sondern mehrmals aufgelistet, je nachdem mit wie vielen Einträgen das Array befüllt ist.
