OPC UA Client - Methoden

Der WinCC OA OPC UA-Client unterstützt die Verwendung von OPC UA-Methoden. Hierfür kann mittels Datenpunktelementen eine ein- und ausgehende Kommunikation mit OPC UA-Server Methoden eingerichtet werden.

Funktionsweise

Die Methoden-Kommunikation erfolgt mittels der Peripherieadresse eines Datenpunktelements. Hierbei werden die Daten mittels JSON-String übermittelt.

Datenpunktelemente - Eingang / Ausgang

Für die Kommunikation zwischen Client und Server mittels OPC UA-Methoden ist es erforderlich zwei Datenpunktelemente dahingehend zu konfigurieren, dass eines der DPEs für das Versenden des Methoden-Aufrufs und ein DPE für den Empfang der Rückgabewerte der Methode vorgesehen werden. Die jeweilige Adress-Konfiguration muss hierbei ident sein, und darf sich nur bei der "Richtung" unterscheiden.

Durch Setzen eines entsprechenden JSON-Strings auf die Ausgangsadresse wird die Server-Methode aufgerufen und der Rückgabewert und zusätzliche Ausgaben dieser Methode werden wiederum durch das Eingangs-DPE erhalten.

Um eine OPC UA-Adresskonfiguration für OPC UA-Methoden zu konfigurieren, muss die entsprechende Checkbox innerhalb des Konfigurationspanels gewählt werden, siehe dazu die Beispiele unterhalb.

Ebenfalls muss mittels der Schaltfläche "Get Item ID" die entsprechende Server-Methode ausgewählt werden.

OPC UA-Methoden AusgangsadresseOPC UA-Methoden Eingangsadresse

JSON-Struktur

Die Struktur des JSON strings unterscheidet sich je nach Eingangs- oder Ausgangsnachricht.

JSON-String Ausgangsadresse

  • input 1..n - Die Liste an Parametern die an die Server-Methode übergeben werden. Diese sind im Format "<id>_<datatype>":<Value> aufgebaut, wobei die id mit 1 beginnen und der Datentyp als Integer-Wert angegeben werden muss, z.B. "1_757":1,"2_757":51
  • userdata - Ein freies Feld für die Übertragung von benutzerspezifischen Informationen. Dieses Element wird innerhalb der Antwort des Servers erneut zurückgeliefert und kann als RequestID verwendt werden, z.B.: "userdata":29689
  • timeout - Maximale Zeit (in Millisekunden) die auf eine Rückmeldung des Servers an die Eingangsadresse gewartet werden soll (optional), z.B.: "timeout":100

Der vollständige JSON-String der Beispiele oberhalb würde nun auf dem Wert des DPEs wie folgt aussehen:

{"1_757":1,"2_757":51,"userdata":29689}

.

JSON-String Eingangsadresse

  • result - Das "result" liefert den OPC UA-StatusCode zurück. Dieser wird im Format "0_<datatype>":"<value>" zurückgeliefert, z.B. "0_762":"0-Good"
  • output 1..n - Die Ausgabewerte der Methode werden werden als einzelne Elemente des JSON-Strings übertragen und haben das Format "<id>_<datatype>":<Value>. Die ID entspricht der Stelle des Rückgabewerts und der Datentyp wird auch hier als Integer-Wert angegeben, z.B.
    "1_762":"Slept for 299 mili
                            seconds."
    .
  • userdata - Liefert die Informationen des "userdata"-Elementes der Ausgangsadresse zurück, z.B. "userdata":29689

Der vollständige JSON-String innerhalb des Eingangs-DPEs, anhand der Beispiele oberhalb, sieht wie folgt aus:

{"0_762":"0-Good","1_762":"Slept for 299 milliseconds.","userdata":29689}

Beispiel

Ein vollständiges Beispiel für die Verwendung von OPC UA-Methoden finden Sie im Kapitel OPC UA-Methoden Beispiel.

Hinweise

Bitte beachten Sie folgende Informationen:

  • Nachfolgende Typen werden nicht als Methoden-Parameter unterstützt, da diese, durch herkömmliche JSON Datentypen und Variablen-Konvertierungen, nicht behandelt werden können:
    • int64
    • uint64
    • date time
    • guid
    • byte string
    • xml element
    • node id
    • lokalisierte Texte