Vorlagen anlegen
Das folgende Beispiel geht davon aus, dass OPC-Server und Datenbank im Plug-in-Bereich korrekt angebunden sind. Ziel ist eine Vorlage, aus der Sie später mehrere Instanzen erzeugen können. In diesem Beispiel genügt eine einzige Vorlagenvariable, um die Daten zu erfassen.

Vorlage anlegen
- Wählen Sie im Snap-in „Vorlagen“ die Schaltfläche „Neue Vorlage“ (
). Alternativ klicken Sie mit der rechten Maustaste auf einen vorhandenen Eintrag und wählen „Neue Vorlage“.
- Vergeben Sie einen Namen für die Vorlage.
- Legen Sie die Flow-Eigenschaften fest. Diese Einstellungen werden später für alle daraus erzeugten Instanzen übernommen.
- Projektieren Sie den Flow innerhalb der Vorlage.
Der OPC-Server ist in diesem Beispiel so projektiert, dass die Datenpunkte identisch benannt sind und sich nur im Zugriffspfad unterscheiden. Dieser variable Teil wird daher als Vorlagenvariable angelegt.
Vorlagenvariable anlegen

- Platzieren Sie ein Multi Data Change Triggerobjekt in der Vorlage und öffnen Sie es per Doppelklick.
- Öffnen Sie über die Schaltfläche rechts neben dem Feld „OPC-Datenpunkte“ das Feldmenü. Es führt zuerst die Aktionen und darunter die schon vorhandenen Vorlagenvariablen; die Einträge im Einzelnen stehen unter Das Feldmenü in der Vorlage.
- Wählen Sie „Neue Variable hinzufügen“ und vergeben Sie im Dialog „Vorlagenvariable hinzufügen“ den Namen
Machine.
Die Vorlagenvariable wird anschließend direkt für den variablen Teil des Pfades verwendet.
Das Feldmenü in der Vorlage
Innerhalb einer Vorlage trägt jedes Feld, das eine Vorlagenvariable aufnehmen kann, rechts eine zusätzliche Schaltfläche. Sie öffnet ein Menü mit diesen Einträgen:
| Eintrag | Wirkung |
|---|---|
| „Neue Variable hinzufügen“ | Legt eine Vorlagenvariable vom Typ des Feldes an und bindet das Feld daran. Das Feld zeigt danach nur noch den Platzhalter, etwa {Machine}. |
| Name einer vorhandenen Variable | Bindet das Feld an diese Variable. Angeboten werden nur Variablen, deren Typ zum Feld passt. |
| „Variablenbindung entfernen“ | Löst die Bindung; das Feld nimmt wieder einen festen Wert. Die Variable selbst bleibt in der Vorlage erhalten. |
| „In den Ausdrucksmodus wechseln“ | Nur bei Textfeldern: Das Feld nimmt einen Text auf, in dem Platzhalter an beliebiger Stelle stehen – SPS.Anlage{Nr}.{Aggregat}.Temperatur. Der Eintrag heißt danach „In den Auswahlmodus wechseln“ und führt zurück. |
| „Ausdruck bearbeiten“ | Nur im Ausdrucksmodus: Öffnet den Ausdruckseditor mit dem Feld „Ausdruck:“ und der Liste der vorhandenen Variablen. |
Im Ausdruckseditor können Sie einen Platzhalter tippen, zu dem es noch keine Variable gibt: Beim Übernehmen legt der OPC Router die Variable an – immer vom Typ String. Ein Feld mit Zahl, Zeitspanne oder Wahrheitswert kennt keinen Ausdrucksmodus; dort steht entweder ein fester Wert oder genau eine Variable des passenden Typs.
Vorlagenvariable im Triggerobjekt verwenden
Tragen Sie die Eigenschaften ein. Binden Sie die Vorlagenvariable über das Feldmenü an das Feld. Soll vor oder nach dem Platzhalter noch fester Text stehen, wählen Sie „In den Ausdrucksmodus wechseln“ und schreiben den restlichen Pfad direkt in das Feld oder über „Ausdruck bearbeiten“ im Ausdruckseditor.
Im gezeigten Beispiel entsteht so ein Kepware-Browsepfad, in dem der Maschinenname über die Vorlagenvariable Machine eingefügt wird.
| Name | Wert |
|---|---|
| OPC-Anbindung | <Name der Anbindung aus der Plug-in-Konfiguration> |
| OPC-Datenpunkte | bp=Objects/2:{Machine}/2:SPS/2:Heater1; |
Schließen Sie danach das Multi Data Change Triggerobjekt.
Datenbankobjekt ergänzen
Projektieren Sie nun ein DB Insert-Transferobjekt zur Aufzeichnung. In diesem Beispiel wird die Tabelle ProcessValues verwendet. Die Messreihe wird durch das Feld MachineID und ItemName bestimmt. Bis auf die Maschinen-ID werden die Daten über den Multi Datachange Trigger vom OPC-Server bereitgestellt.
| Name | Konfiguration |
|---|---|
| Datenquelle | <Name der Anbindung aus der Plug-in-Konfiguration> |
| Tabelle | ProcessValues |
| Spalten -> verwendet | ItemName (String), Value (Single), Value Time (DateTime), MachineID (Int32) |
Flow vervollständigen
- Projektieren Sie eine Konstante mit der Vorlagenvariable „Machine“.
- Verbinden Sie die Konstante mit
MachineID. - Verbinden Sie außerdem
Value,Value TimeundItem Namevom Multi Data Change Triggerobjekt mit dem DB Insert-Transferobjekt.
Damit ist die Vorlage fertig. Sie können Vorlagen wie normale Flows in Gruppen ordnen.
Vorlagenvariablen in Objekten verwenden
Welche Felder das Feldmenü tragen und was seine Einträge bewirken, steht unter Das Feldmenü in der Vorlage; Felder mit Zahl, Zeitspanne oder Wahrheitswert bieten darin nur das Anlegen, Binden und Lösen.
Einschränkungen je Plug-in
Eine Vorlagenvariable kann nicht nur in einem einzelnen Feld stehen, sondern auch die Anbindung selbst ersetzen (Variablentyp „Name eines Plug-ins“, siehe die Typtabelle unter Mit Vorlagen arbeiten). Dann steht beim Projektieren der Vorlage noch nicht fest, mit welchem Gegenüber der Flow später spricht – das legt erst die Instanz fest. Prüfungen und Komforthilfen, die das Gegenüber kennen müssten, entfallen deshalb in der Vorlage; an einer Stelle gilt umgekehrt eine Regel weniger streng. Beachten Sie je Plug-in:
- OPC: Ist die OPC-Anbindung selbst eine Vorlagenvariable, kann der OPC Router die Spezifikation nicht kennen und Sie können den Trigger-Pfad nicht mehr browsen. Dies gilt auch bei OPC-Triggern (Bit, Datachange, Message, Grenzwert). Tragen Sie die Adressen in diesem Fall von Hand ein.
- OPC, Namen der Datenpunkte: Ist die Anbindung eine Vorlagenvariable, blendet das OPC-Transferobjekt zusätzlich den Schalter „Display Name benutzen“ ein. Lassen Sie ihn ausgeschaltet, übernimmt der OPC Router die eingetragene OPC-Adresse zugleich als Namen des Datenpunkts. Schalten Sie ihn ein, wenn Sie im Flow eigene Namen vergeben wollen – diese bleiben dann erhalten.
- REST-Server: Steht im Feld „Endpoint“ eines REST-Server-Triggers eine Vorlagenvariable, prüft der Dialog beim Schließen nicht mehr, ob derselbe Endpunkt mit denselben HTTP-Methoden schon von einem anderen Trigger belegt ist. Er kann es nicht, denn der endgültige Endpunkt entsteht erst mit dem Wert der Instanz. Umgekehrt gilt dasselbe: Legen Sie später einen Trigger mit festem Endpunkt an, prüft der Dialog ihn nicht gegen Trigger, deren Endpunkt eine Vorlagenvariable ist. Achten Sie deshalb selbst darauf, dass jede Instanz einen eigenen Endpunkt erhält; ein doppelt vergebener Wert fällt hier nicht auf.
- E-Mail: Platzhalternamen im E-Mail-Transferobjekt dürfen keine geschweiften Klammern enthalten. Ausgenommen ist genau der Fall, dass der Platzhalter an eine Vorlagenvariable gebunden ist – dort gehören die Klammern zur Schreibweise der Variablen.
Vorlagen aus Flows erstellen
Sie können auch aus einem bestehenden Flow eine Vorlage generieren:

- Wechseln Sie in das Snap-in „Flows“.
- Klicken Sie mit der rechten Maustaste auf den bestehenden Flow und wählen Sie „Vorlage aus Flow erzeugen“.
- Vergeben Sie im Dialog einen eindeutigen Namen für die neue Vorlage.
- Wählen Sie bei Bedarf einen Zielordner aus.
- Aktivieren Sie bei Bedarf die Checkbox „Vorlage direkt öffnen“.
- Bestätigen Sie mit „OK“.