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:

  1. Wählen Sie ein Objekt (keine Variable) im Informationsmodell aus.
  2. Öffnen Sie unter dem Informationsmodell das Register „Mapping“.
  3. Für OPC-UA-Objekte wird hier kontextsensitiv die Mapping-Konfiguration über reguläre Ausdrücke angeboten.
  4. Reguläre Ausdrücke im Register „Mapping“
  5. 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).
  6. 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:

Symbolkonfiguration (Beispiel)
Symbolkonfiguration (Beispiel)
  1. 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.
  2. Selektieren Sie das neu angelegte Objekt und bearbeiten Sie die regulären Ausdrücke im Register „Mapping“ unter dem Informationsmodell wie folgt:
  3. 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.)
  4. Beispiel: .*\.opc_.*
  5. 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.
  6. Beispiel: .*\.(.*)\.opc_(.*)
  7. 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.
  8. Beispiel: nodeid_$1_$2
    Für den Symbolpfad advanced.GVL.opc_global_input01 würde sich somit als „NodeId“ nodeid_GVL_global_input01 ergeben.
  9. 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.
  10. BrowseName / BrowseNameTarget
    Geben Sie die Eigenschaften „BrowseName“ und „BrowseNameTarget“ ein, um den OPC-UA-BrowseName aus dem bereits gefilterten Symbolpfad zu bilden.
  11. Beispiel:
    BrowseName: *\.(.*)\.opc_(.*)
    BrowseNameTarget: browsename_$1_$2
    Das Ergebnis für advanced.GVL.opc_global_input01 lautet browsename_GVL_global_input01.
  12. DisplayName / DisplayNameTarget
    Geben Sie die Eigenschaften „ DisplayName“ und „DisplayNameTarget“ ein, um den OPC-UA-DisplayName aus dem bereits gefilterten Symbolpfad zu bilden.
  13. Beispiel:
    DisplayName: *\.(.*)\.opc_(.*)
    DisplayNameTarget: $2 from $1
    Das Ergebnis für advanced.GVL.opc_global_input01 lautet global_input01 from GVL.
  14. Klicken Sie auf [Bestätigen].
  15. Reguläre Ausdrücke verwenden
  16. 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“).
  17. Trefferliste der regulären Ausdrücke (Ansicht im OPC UA Client „UAexpert“)
  18. 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.
  19. Ergebnis der regulären Ausdrücke (Ansicht im OPC UA Client „UAexpert“)

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.