Reguläre Ausdrücke zum Filtern der Applikationsvariablen verwenden
Der OPC-UA-Server bietet die Möglichkeit, OPC-UA-Variablen zu Laufzeit zu generieren und auf Applikationsvariablen abzubilden. Die abzubildenden Applikationsvariablen werden dabei über reguläre Ausdrücke aus allen vorhandenen Applikationsvariablen herausgefiltert.
Um eine solche Abbildungsvorschrift zu erstellen, gehen Sie wie folgt vor:
- Wählen Sie ein Objekt (keine Variable) im Informationsmodell aus.
- Öffnen Sie unter dem Informationsmodell das Register „Mapping“.
- Für OPC-UA-Objekte wird hier kontextsensitiv die Mapping-Konfiguration über reguläre Ausdrücke angeboten.
- Konfigurieren Sie die regulären Ausdrücke, mit denen zur Laufzeit automatisch Variable unterhalb des ausgewählten OPC-UA-Objektes generiert werden (siehe auch nachfolgendes Beispiel).
- Um die Änderungen zu übernehmen, klicken Sie auf [Bestätigen].
Beispiel für die Verwendung von regulären Ausdrücken
In diesem Beispiel bilden Sie alle Applikationsvariablen unterhalb einer OPC-UA-Variablen ab, deren Namen das Präfix „opc_“ vorangestellt ist. Dabei soll unerheblich sein, ob diese in dem Programm „PLC_PRG“ oder der globalen Variablenliste „GVL“ definiert sind. Als Ausgangspunkt des Beispiels dient die folgende Symbolkonfiguration:

- Legen Sie zunächst eine OPC-UA-Objektinstanz an (z. B. mit dem Namen „RegExpMapping“). Für das Beispiel können Sie den Objekttyp auf dem Standardwert („BaseObjectType“) belassen.
- Selektieren Sie das neu angelegte Objekt und bearbeiten Sie die regulären Ausdrücke im Register „Mapping“ unter dem Informationsmodell wie folgt:
- DataSourceIdentifier
Geben Sie unter „DataSourceIdentifier“ einen regulären Ausdruck ein, mit dem die Symbolpfade aller zur Verfügung stehenden Applikationsvariablen gefiltert werden.
Hinweis: Die Symbolpfade enthalten Punkte als Trennzeichen („.
“). Stellen Sie im regulären Ausdruck diesem Punkt einen Backslash („\
“) voran, da der Punkt sonst als Wildcard interpretiert wird.
(Es sei denn, Sie möchten den Punkt tatsächlich als Wildcard verwenden.) - Beispiel:
.*\.opc_.*
- NodeId
Für jeden bereits über den „DataSourceIdentifier“ gefilterten Symbolpfad wird über die Eigenschaften „NodeId“ sowie „NodeIdTarget“ ein NodeId-String generiert.
Geben Sie als Eigenschaft „NodeId“ einen regulären Ausdruck ein, der auf den bereits gefilterten Symbolpfad angewendet wird. - Beispiel:
.*\.(.*)\.opc_(.*)
- NodeIdTarget
Geben Sie die Eigenschaft „NodeIdTarget“ ein, um aus den Bestandteilen des regulären Ausdrucks unter „NodeId“ den endgültigen NodeId-Wert der OPC-UA-Variable zusammen zu setzen. - Beispiel:
nodeid_$1_$2
Für den Symbolpfadadvanced.GVL.opc_global_input01
würde sich somit als „NodeId“nodeid_GVL_global_input01
ergeben. - Hinweis: Beachten Sie, dass der NodeId-String gemäß der OPC-UA-Spezifikation eindeutig sein muss. Um dies sicherzustellen, wird im Beispiel ein Teil des Symbolpfades (GVL bzw. PLC_PRG) mit einbezogen, da sonst die Gefahr einer doppelten NodeId bestünde.
- BrowseName / BrowseNameTarget
Geben Sie die Eigenschaften „BrowseName“ und „BrowseNameTarget“ ein, um den OPC-UA-BrowseName aus dem bereits gefilterten Symbolpfad zu bilden. - Beispiel:
BrowseName:*\.(.*)\.opc_(.*)
BrowseNameTarget:browsename_$1_$2
Das Ergebnis füradvanced.GVL.opc_global_input01
lautetbrowsename_GVL_global_input01
. - DisplayName / DisplayNameTarget
Geben Sie die Eigenschaften „ DisplayName“ und „DisplayNameTarget“ ein, um den OPC-UA-DisplayName aus dem bereits gefilterten Symbolpfad zu bilden. - Beispiel:
DisplayName:*\.(.*)\.opc_(.*)
DisplayNameTarget:$2 from $1
Das Ergebnis füradvanced.GVL.opc_global_input01
lautetglobal_input01 from GVL
. - Klicken Sie auf [Bestätigen].
- Das Ergbnis der durch reguläre Ausdrücke gefilterten Variablen können Sie sich mit einem OPC-Client ansehen (Ansicht hier beispielhaft für den OPC-UA-Client „UAexpert“).
- Wenn Sie sich die Attribute ansehen, finden Sie beispielsweise hier die NodeId, den BrowseName und den DisplayName wieder. Diese wurden aus den regulären Ausdrücken gebildet, die Sie bei NodeID, NodeIdTarget etc. eingegeben haben.
Hinweis
Generieren der OPC-UA-Variablen erfolgt zur Laufzeit!
Die OPC-UA-Variablen werden erst zur Laufzeit durch den OPC-UA-Server generiert. Aus diesem Grund werden diese im OPC UA Mapping Editor nicht unter dem ausgewählten OPC-UA-Objekt im Informationsmodell dargestellt.
Hinweis
Filtern über reguläre Ausdrücke auch ohne Importieren einer Symbolkonfiguration möglich!
Die regulären Ausdrücke werden durch den OPC-UA-Server zur Laufzeit immer auf die Symbolkonfiguration der gerade aktiven Applikation angewendet. Aus diesem Grund können Sie den OPC UA Mapping Editor auch direkt zur Eingabe regulärer Ausdrücke verwenden, ohne dass Sie eine Symbolkonfiguration importieren müssen. Sie exportieren lediglich das Mapping und laden es in den Controller. Die regulären Ausdrücke werden zur Laufzeit auf die jeweils aktive Applikation angewendet.