Variablen
Über das Variablen-Plug-in definieren Sie beliebig viele Variablen mit Namen, Typ und Initialwert. Zur Laufzeit können Sie Werte in die Variablen schreiben und wieder auslesen. Darüber hinaus stehen einige Systemvariablen zur Verfügung, die Sie in Ihrer Projektierung verwenden können.
Die Verwendung von Variablen bietet sich für feste, immer wieder benötigte Werte an, die nicht in einer Datenbank abgelegt sind, oder um Werte zwischenzuspeichern, die nicht in einer Datenbank abgelegt werden können oder sollen. In komplexen Projekten können Variablen auch benutzt werden, um Werte in mehreren Flows zur Verfügung zu stellen.
Öffnen Sie das Plug-in aus der Kategorie „Erweitert“ unter dem Menü „Plug-ins“ per Doppelklick auf „Variablen“.
Variablenliste
Alle Variablen werden in einer Baumansicht mit den beiden Basisordnern „Globale Variablen“ und „Lokale Variablen“ angezeigt:
- Globale Variablen: Der Variablenwert ist in allen Flows, in denen die Variable verwendet wird, identisch.
- Lokale Variablen: Die Variable wird in jedem Flow einzeln deklariert. Jede Wertzuweisung gilt nur innerhalb des jeweiligen Flows.
Innerhalb der Basisordner lassen sich Variablen in Ordnern strukturieren. Ordner legen Sie über die Werkzeugleiste („Neuer Ordner“) oder über die Aktionen einer Ordnerzeile an; per Drag-and-drop verschieben Sie Variablen und Ordner in andere Ordner. Beim Umbenennen oder Löschen eines Ordners werden die enthaltenen Variablen mit verschoben bzw. mit gelöscht.
Die Werkzeugleiste bietet außerdem:
| Funktion | Beschreibung |
|---|---|
| Neu / Bearbeiten / Löschen | Variable anlegen, die ausgewählte Variable bearbeiten (alternativ Doppelklick) oder löschen. Beim Löschen eines Ordners wird der ganze Teilbaum entfernt. |
| Mehrfachauswahl | Schaltet eine Checkbox-Spalte frei, um mehrere Variablen gleichzeitig auszuwählen und zu löschen. |
| Import / Export | Export der Variablen als XLSX-Datei (alle, nur globale oder nur lokale), Import aus XLSX/CSV. Der Geltungsbereich steht dabei in der Datei selbst. |
| Laufzeitwerte aktualisieren | Liest die aktuellen Laufzeitwerte der Variablen neu ein. |
| Filter | Filtert die Baumansicht nach Namen. |
In der Liste können Sie häufige Änderungen direkt in der Zeile vornehmen, ohne den Bearbeiten-Dialog zu öffnen: Initialwert und Typ sind direkt editierbar, „Persist“ (Aufbewahrung) direkt umschaltbar. Die Spalten „Laufzeitwert“ und „Letzte Änderung“ zeigen für globale Variablen den aktuellen Wert der Laufzeit und den Zeitpunkt der letzten Wertänderung.
Variable anlegen und bearbeiten

Wählen Sie „Neu“ oder doppelklicken Sie auf einen vorhandenen Eintrag und nehmen Sie im Dialog die Einstellungen vor:
| Eigenschaft | Beschreibung |
|---|---|
| Name | Name der Variable, erscheint in der Projektierung. Der vollständige Name muss über globale und lokale Variablen hinweg eindeutig sein, siehe Namensregeln. |
| Ordner | Ordner, in dem die Variable abgelegt wird. Über die Baumauswahl wählen Sie einen vorhandenen Ordner oder legen direkt einen neuen Unterordner an. |
| Geltungsbereich | Umschalter zwischen „Global“ und „Lokal“. Die Werte lokaler Variablen sind nur in den Flows verfügbar, in denen sie verwendet werden. Die Änderung einer bestehenden Variable gilt für alle ihre Verwendungen. |
| Aufbewahrung | Wenn aktiv, wird nach Neustart des OPC Routers der letzte Wert der Variable wiederhergestellt; jede Wertänderung wird dazu in der Datenbank gespeichert. Wenn nicht aktiv, wird der eingestellte Initialwert geladen. Für lokale Variablen und Secrets ist keine Aufbewahrung möglich. |
| Bei Leerwert | Verhalten, wenn beim Schreiben ein leerer Wert ankommt: „Fehler auslösen“, „Wert ignorieren“ oder „Wert akzeptieren“. |
| Typ | Wählen Sie den zutreffenden Datentyp, damit der Wert zweifelsfrei interpretiert werden kann – z. B. um eine 1 als Zahl von einer 1 als Wahrheitswert zu unterscheiden. Typenlos ist ebenso möglich, die Variable kann dann beliebig befüllt werden. Auch Array-Typen stehen zur Verfügung. |
| Initialwert | Initialwert der Variable, mit typgerechtem Eingabefeld (z. B. Checkbox für Wahrheitswerte, Datumsauswahl für Zeitstempel). Bei Array-Typen pflegen Sie die Elemente in einer Werteliste. In der Flow-Projektierung können Sie den Wert auslesen und ändern. Der Wert DB-NULL gibt im Transferobjekt NULL-Werte aus. |
Mit „OK und neu“ speichern Sie die Variable und legen direkt die nächste im selben Ordner an.
Namensregeln
Der vollständige Name einer Variable ist ihr Pfad einschließlich der Ordner, z. B. Linie1/Temperatur; der Geltungsbereich ist nicht Teil des Namens. Beim Speichern prüft der Bearbeiten-Dialog den Namen deshalb gegen alle Variablen des Projekts, globale wie lokale:
- Der vollständige Name muss eindeutig sein. Groß- und Kleinschreibung wird dabei nicht unterschieden,
Testundtestgelten als derselbe Name. - Ordner und Variablen dürfen sich keinen Namen teilen. Existiert eine Variable
Test, kann kein OrdnerTestund somit auch keine Variable unterhalb vonTest/…angelegt werden. Umgekehrt kann keine VariableTestangelegt werden, solange der OrdnerTestexistiert.
Beide Regeln gelten auch über die Geltungsbereiche hinweg. Eine lokale Variable Test verhindert also das Anlegen von Variablen in einem globalen Ordner Test. Benennen Sie in diesem Fall die Variable oder den Ordner um.
Secrets
Für Passwörter, API-Schlüssel und ähnliche geheime Werte steht der Typ Secret String zur Verfügung. Der Wert wird ausschließlich über einen Passwort-Dialog gesetzt, verschlüsselt gespeichert und in Variablenliste, Transfer-Monitoring und Status nur maskiert angezeigt. Erst am Ziel eines Transfers – z. B. in einem HTTP-Header eines REST-Aufrufs – wird der Klartext eingesetzt.
Der Typ wirkt in beide Richtungen: Auch ein Klartextwert, der in eine Secret String-Variable geschrieben wird, ist ab dem Ziel der Verbindung ein Geheimnis – Verbindungslinie und Status zeigen ihn maskiert. Umgekehrt lehnt die Laufzeit das Schreiben eines geheimen Werts in eine Variable mit Aufbewahrung ab, weil der Wert dort im Klartext abgelegt würde; verwenden Sie dafür eine Secret String-Variable oder schalten Sie die Aufbewahrung ab.
Wie weit die Maskierung reicht, entscheidet das weiterverarbeitende Transferobjekt: Das Bedingung (IF)-Transferobjekt hält den Wert maskiert und gibt nur das Ergebnis der Bedingung aus, während das Formel- und Taschenrechner-Transferobjekt ihn für die Berechnung einsetzt und im Ergebnis als gewöhnlichen Text ausgibt. Ein durchgängiges Beispiel steht unter Verbindung mit Bearer Token.
Aggregation
Für globale, persistente Variablen können Sie im Bearbeiten-Dialog eine Aggregation aktivieren: Die Laufzeit bildet dann über die geschriebenen Werte Kennzahlen je Zeitfenster („Fensterdauer“). Zur Auswahl stehen:
| Kennzahl | Beschreibung |
|---|---|
| Count | Anzahl der geschriebenen Werte im Fenster (auch Wiederholwerte). |
| Min | Kleinster Wert im Fenster. |
| Max | Größter Wert im Fenster. |
| Average | Arithmetisches Mittel der geschriebenen Werte. |
| TimeAverage | Zeitgewichteter Mittelwert: Werte zählen nach ihrer Haltedauer. |
| Total | Zeitintegral über das Fenster (Wert mal Sekunden). |
| Range | Spannweite: Max minus Min. |
| StdDev | Stichproben-Standardabweichung der Werte. |
| Variance | Stichproben-Varianz der Werte. |
| First | Erster geschriebener Wert im Fenster. |
| Last | Letzter geschriebener Wert im Fenster. |
Bis auf Count setzen alle Kennzahlen einen numerischen Typ voraus; Wahrheitswerte zählen dabei als 0 und 1. Für alle übrigen Typen – etwa String, Zeitstempel, Arrays oder typenlose Variablen – steht nur Count zur Verfügung.
Jede aktivierte Kennzahl erscheint als eigene globale, persistente Variable unterhalb der Quell-Variable (Namensschema Variablenname.Kennzahl, z. B. Temperatur.Average) und ist in der Liste mit dem Zusatz „Kennzahl“ gekennzeichnet. Kennzahl-Variablen werden von der Laufzeit geschrieben und können in Flows wie andere Variablen als Quelle verwendet werden. Änderungen an der Aggregations-Konfiguration greifen nach dem Produktivschalten mit dem Neustart der Laufzeit.

Hinweis zu Projekten aus älteren Versionen
Ordner werden über das Zeichen / im Variablennamen abgebildet. In älteren Versionen konnte / als normales Zeichen im Namen verwendet werden: Solche Variablen bleiben beim Update bzw. beim Import älterer Projektdateien unverändert flache Variablen – aus einer alten Variable A/B wird also kein Ordner A mit Variable B. Erst wenn Sie einer solchen Variable im Bearbeiten-Dialog einen Ordner zuweisen, nimmt sie an der Ordnerstruktur teil.