Zum Hauptinhalt springen

Mit Vorlagen arbeiten

Mit Vorlagen projektieren Sie viele gleichartige Flows effizient und konsistent. Typische Einsatzfälle sind Flows, die sich nur in einzelnen Werten unterscheiden, zum Beispiel in Datenpunkten, Tabellennamen, IDs oder Anbindungsnamen.

Begriffe im Überblick

Vorlage

Eine Vorlage ist das Grundgerüst eines Flows. Sie enthält alle festen Teile der Projektierung.

Vorlagenvariable

Eine Vorlagenvariable ist ein Platzhalter innerhalb der Vorlage. Sie definieren damit die Werte, die sich zwischen einzelnen Flows unterscheiden dürfen. In den Feldern der Trigger- und Transferobjekte steht dann nur noch der Platzhalter, etwa {Machine}; welchen Wert er annimmt, entscheidet sich erst an der Instanz.

Jede Vorlagenvariable hat einen Namen, einen Datentyp und einen Standardwert. Der Standardwert ist die Vorgabe für den Regelfall: Beim Erzeugen einer einzelnen Instanz ist die Spalte Wert damit vorbelegt und lässt sich überschreiben; in der Tabelle für mehrere Instanzen tragen Sie jeden Wert selbst ein.

Sobald die Vorlage eine Variable hat, zeigt der OPC Router links neben der Entwurfsfläche die Liste Variablen mit den Spalten Name, Datentyp und „Standardwert“. Dort pflegen Sie den Standardwert und löschen eine Variable, die Sie nicht mehr brauchen. Ist die Variable noch an Felder gebunden, fragt der OPC Router nach und entfernt mit Ihrer Bestätigung auch diese Bindungen. Anlegen können Sie eine Variable in dieser Liste nicht – das geschieht immer an dem Feld, das sie verwenden soll, siehe Vorlagen anlegen.

Instanz

Eine Instanz ist ein konkreter Flow, der aus einer Vorlage erzeugt wird. Dazu füllen Sie die Vorlagenvariablen mit konkreten Werten. Die Werte gelten nur für diese Instanz; was eine spätere Änderung der Vorlage für sie bedeutet, steht unter Vorlage ändern, wenn es schon Instanzen gibt.

Dynamische Instanz

Eine dynamische Instanz ist ein Flow, der zur Laufzeit über Datenbankeinträge erzeugt wird. Sie eignet sich für Szenarien, in denen Flows nicht nur einmalig projektiert, sondern später automatisiert angelegt oder geändert werden. Die Werte der Vorlagenvariablen liefert dabei die jeweilige Zeile einer Datenbanktabelle; die beim Anlegen der dynamischen Instanz eingetragenen Werte sind die Vorgabe für leere Felder, siehe Dynamische Instanzen erzeugen.

Funktion (FX)

Ein wiederverwendbarer Unterablauf, der im Vorlagen-Baum liegt, aber nicht instanziiert, sondern aus Flows aufgerufen wird; siehe Funktionen (FX).

So arbeiten Sie mit Vorlagen

  1. Legen Sie eine Vorlage an und projektieren Sie darin alle festen Teile des Flows.
  2. Definieren Sie an den variablen Stellen Vorlagenvariablen.
  3. Erzeugen Sie aus der Vorlage konkrete Instanzen.
  4. Schalten Sie die Instanzen produktiv oder erzeugen Sie bei Bedarf dynamische Instanzen zur Laufzeit.

Wege zur Instanzerzeugung

Je nach Anwendungsfall gibt es vier typische Vorgehensweisen:

Hinweise zu Vorlagenvariablen

Vorlagenvariablen sind typsicher. Verwenden Sie daher immer den passenden Variablentyp für den vorgesehenen Einsatzzweck.

Variablentypen

TypVerwendung
StringText jeder Art, zum Beispiel Datenpunktpfade, Tabellen- oder Topic-Namen.
Int32Ganze Zahlen, zum Beispiel eine Maschinen-ID.
SingleGleitkommazahlen, zum Beispiel ein Grenzwert.
DateTimeEin Zeitpunkt aus Datum und Uhrzeit.
TimeOffsetEine Zeitspanne, zum Beispiel der Zyklus eines Time-Triggers. Die zulässigen Einheiten stehen unter Zeitangaben in Vorlagenvariablen.
BooleanEin Wahrheitswert.
Name eines Plug-insVerweis auf eine Anbindung dieses Plug-ins. Jedes Plug-in, von dem es mehrere Anbindungen geben kann, steht mit seinem Namen als eigener Typ in der Liste. Als Wert geben Sie den Namen der Anbindung an.

Regeln für die Typen

  • Ein Feld nimmt nur Vorlagenvariablen desselben Typs an. Der Eintrag Neue Variable hinzufügen im Feldmenü legt deshalb gleich eine Variable des passenden Typs an, siehe Das Feldmenü in der Vorlage.
  • Eine Kombination mehrerer Vorlagenvariablen oder eine Kombination aus Vorlagenvariablen und zusätzlichem Text innerhalb eines Ausdrucks ist nur bei Variablen vom Typ String möglich, zum Beispiel bp=Objects/2:{Machine}/2:SPS/2:Heater1;. Variablen aller anderen Typen ersetzen den Feldwert vollständig.
  • Eine Vorlagenvariable, die Sie im Ausdruckseditor neu anlegen, ist immer vom Typ String.
  • Beim Erzeugen einer Instanz ersetzt der OPC Router die Platzhalter durch die eingetragenen Werte. Ein Platzhalter, zu dem es keine Vorlagenvariable gibt, bleibt unverändert im Feld stehen.

Die folgenden Seiten zeigen Schritt für Schritt, wie Sie Vorlagen anlegen, Instanzen erzeugen und dynamische Instanzen einsetzen.

Vorlage ändern, wenn es schon Instanzen gibt

Instanzen speichern keinen eigenen Flow, sondern nur den Namen der Vorlage und die Werte ihrer Variablen; der Flow wird bei jedem Laden aus der aktuellen Vorlage aufgebaut. Daraus folgt, was eine Änderung an der Vorlage bewirkt:

  • Ein geänderter Flow gilt für alle Instanzen – nach dem Veröffentlichen.
  • Eine neu angelegte Vorlagenvariable erhält in jeder Instanz den Standardwert aus der Vorlage.
  • Eine aus der Vorlage entfernte Variable verschwindet aus allen Instanzen, samt dem dort eingetragenen Wert.
  • Die Werte aller übrigen Variablen bleiben in den Instanzen stehen.

Die Schaltfläche Alle Instanzen produktiv schalten in der Werkzeugleiste der Vorlage öffnet die Veröffentlichen-Ansicht mit den Instanzen dieser Vorlage vorausgewählt; sie ist ausgegraut, solange die Vorlage keine Instanzen hat. Wie Sie die Werte einzelner Instanzen nachträglich ändern, steht unter Einzelne Instanzen erzeugen.

Vorlagen und Funktionen (FX)

Im Vorlagen-Baum liegen neben den Vorlagen auch die Funktionen (FX). Sie legen eine Funktion über die Schaltfläche mit dem Würfel-Symbol in der Werkzeugleiste oder über den Kontextmenüeintrag Neue Funktion (FX) an; sie entsteht in der gerade gewählten Vorlagen-Gruppe.

Die beiden Bausteine lösen unterschiedliche Aufgaben:

  • Eine Vorlage passt, wenn ganze Flows bis auf einzelne Werte gleich sind. Aus ihr erzeugen Sie Instanzen.
  • Eine Funktion passt, wenn nur ein Teilablauf in sonst unterschiedlichen Flows gleich ist. Sie wird aus einem Flow heraus über das Transferobjekt Funktion (FX) aufgerufen und nicht instanziiert.

Beides lässt sich kombinieren: Auch eine Vorlage darf eine Funktion aufrufen. Alles Weitere zu Funktionen steht unter Funktionen (FX).

warnung

Dynamische Instanzen erhalten beim Veröffentlichen keine Ausführungskopien ihrer Unterabläufe; ein Funktionsaufruf oder ein Zweig in einer dynamischen Instanz kann zur Laufzeit nicht ausgeführt werden.

Variablen aus Unterabläufen

Enthält eine Vorlage Unterabläufe – Zweige einer Bedingung, einer Fehlerbehandlung oder eines Change Gates oder den Aufruf einer Funktion –, bringen diese eigene Variablen mit. Der Instanzdialog fragt jede dieser Variablen ab, für die an der Aufrufstelle kein Wert gesetzt ist; sie steht dann neben den eigenen Variablen der Vorlage – beim Erzeugen einer einzelnen Instanz ebenso wie als Spalte in Mehrere Instanzen erstellen und in der Datei aus Vorlage herunterladen.

Ist der Wert an der Aufrufstelle leer, wird die Variable dort zusätzlich als verdrahtbares Eingangs-Item angeboten. Der Instanzwert tritt an die Stelle des Standardwerts der Variablen; welche Werte beim Veröffentlichen in welcher Reihenfolge gelten und was eine verdrahtete Variable daraus macht, steht unter Unterabläufe in Vorlagen.

Trägt eine Variable eines Unterablaufs denselben Namen wie eine Vorlagenvariable, fragt der Dialog sie nur einmal ab; der Instanzwert gilt dann auch im Unterablauf, sofern an der Aufrufstelle kein fester Wert eingetragen ist.

Namen und Eindeutigkeit

Vorlagen, Instanzen und Vorlagenvariablen haben jeweils eigene Namensregeln. Beim Umbenennen und beim Verschieben im Baum sowie beim Erzeugen aus einer Datei oder Tabelle prüft der OPC Router diese Regeln und lehnt einen Namen ab, der sie verletzt. Der Dialog zum Erzeugen einer einzelnen oder dynamischen Instanz prüft nur, ob der Name leer oder im Zielordner schon vergeben ist – halten Sie die übrigen Regeln dort selbst ein.

WasRegel
Name einer Vorlage oder einer InstanzEindeutig innerhalb des Ordners, in dem der Eintrag liegt – gegen die anderen Einträge und gegen die Unterordner desselben Ordners. Der Name darf nicht leer sein, keinen Rückwärtsschrägstrich \ enthalten und höchstens 1000 Zeichen lang sein. In einem anderen Ordner darf derselbe Name erneut vorkommen. Beim Erzeugen aus einer Datei steht der Ordner im Spaltenwert, siehe Mehrere Instanzen aus Datei erzeugen.
Name einer VorlagenvariableEindeutig innerhalb einer Vorlage; in einer anderen Vorlage darf derselbe Name erneut vorkommen. Der Vergleich unterscheidet Groß- und Kleinschreibung, Anlage und anlage sind also zwei verschiedene Variablen. Verwenden Sie keine geschweiften Klammern im Namen – sie begrenzen den Platzhalter {Name}.
Name einer dynamischen InstanzWie bei einer Instanz. Zusätzlich dürfen die Zeichen ', [ und ] nicht vorkommen, und der aus dem Pfad gebildete Tabellenname darf höchstens 128 Zeichen lang sein, siehe Dynamische Instanzen erzeugen.

Legen Sie eine Vorlagenvariable über das Feldmenü an, ist im Dialog Vorlagenvariable hinzufügen bereits der technische Name des Feldes als Vorschlag eingetragen; ist er in dieser Vorlage schon vergeben, hängt der OPC Router an den Vorschlag eine zweistellige Nummer an (01, 02, …). Einen selbst eingetragenen Namen, den es in der Vorlage schon gibt, weist der Dialog mit Es existiert bereits eine Vorlagenvariable mit diesem Namen. zurück.

Beim Umbenennen im Baum nennt der OPC Router den Grund der Ablehnung: Ein Flow mit gleichem Namen existiert bereits, Eine Flow-Gruppe mit gleichem Namen existiert bereits, Der Flow-Name enthält ungültige Zeichen. oder Der Flow-Name überschreitet die maximal zulässige Länge. Beim Erzeugen einer einzelnen Instanz meldet ein bereits belegter Name Der eingegebene Name wird in dieser Flow-Gruppe bereits verwendet.; hier spielt die Groß- und Kleinschreibung keine Rolle.

Beim Erzeugen mehrerer dynamischer Instanzen aus einer Datei prüft der OPC Router die beiden Zusatzregeln der dynamischen Instanz nicht; halten Sie sie dort selbst ein.

Weiterführende Seiten