Datenquellen
OPC UA Methoden aufrufen
Neben dem Lesen von Werten und dem Schreiben nach OPC UA kann Peakboard auch OPC UA Methoden aufrufen, die ein Server über seine Objektknoten bereitstellt. Dafür gibt es zwei Building Blocks: Call method ruft eine Methode auf, ohne ihr Ergebnis weiterzuverwenden, und Call method with return value ruft eine Methode auf und liefert deren Ergebnis zurück, sodass du es im Skript weiterverarbeiten kannst.
Achtung
Hierzu muss mindestens eine zuvor angelegte OPC UA Datenquelle vorhanden sein! Der Building Block ruft die Methode im Kontext dieser Verbindung auf.
Die OPC UA Blöcke finden
Öffne den Building-Blocks-Editor für ein beliebiges Skript (zum Beispiel ein [Button]-Klick, ein Timer oder ein globales Ereignis) und stelle sicher, dass der [Block Mode] aktiv ist. Filtere mit der Blocksuche (1) nach OPC UA. Die Blöcke liegen unter FUNCTIONS → Publish to external systems → OPC UA (2).

- Set variable (3): schreibt einen Wert in eine beschreibbare OPC UA Variable (siehe Schreiben nach OPC UA).
- Call method (4): ruft eine OPC UA Methode eines Objektknotens auf dem Server auf, ohne einen Rückgabewert zu verwenden.
- Call method with return value (5): ruft eine OPC UA Methode auf und gibt ihr Ergebnis zurück, sodass du den Rückgabewert weiterverwenden kannst – zum Beispiel, um ihn in einer Variablen zu speichern.
Den Block Call method hinzufügen
Mache einen Doppelklick auf Call method (oder ziehe ihn auf die Arbeitsfläche). Der Block startet in einem minimalen Zustand mit nur der Verbindungszeile.

- for connection (1): die OPC UA Datenquelle, in deren Kontext die Methode aufgerufen wird. Wähle die Verbindung im Dropdown aus.
- Zurücksetzen / Methode wählen (2): das Aktualisieren-Symbol öffnet den Knoten-Browser, mit dem du den Objektknoten und die Methode auswählst.
- Solange keine Methode ausgewählt ist, zeigt der erzeugte Code (3) den Hinweis
-- !!! Please reset the connection and select any Objects with methods !!!.
Die Methode auswählen
Das Aktualisieren-Symbol öffnet den Dialog [Select OPC UA nodes] – denselben Knoten-Browser wie in der Datenquelle. Er zeigt den Adressraum des verbundenen Servers.

- Methode wählen (1): klappe den Baum auf und setze den Haken in der Checkbox der Methode, die du aufrufen möchtest. Methoden findest du unter dem Objektknoten, der sie bereitstellt – Standardmethoden liegen zum Beispiel unter dem Knoten Server.
- Attributes (2): im Attributbereich kannst du prüfen, ob du den richtigen Knoten gewählt hast. Eine aufrufbare Methode hat
NodeClass= Method undExecutable= True. - Select (3): bestätigt die Auswahl und kehrt zum Editor zurück.
Der Block passt sich an
Sobald eine Methode ausgewählt ist, baut sich der Block Call method neu auf: Er zeigt jetzt die Methode und – falls die Methode Eingabeargumente erwartet – je einen typisierten Eingabeanschluss pro Argument.

- for connection (1): die OPC UA Verbindung, über die die Methode aufgerufen wird.
- method (2): die gewählte Methode, dargestellt mit NodeID und Name. Über das Dropdown kannst du zu einer anderen Methode derselben Verbindung wechseln.
- Argumente (3): für jedes Eingabeargument der Methode (im Beispiel
SubscriptionId) erzeugt der Block einen typisierten Anschluss. Hier hängst du einen festen Wert, einen [Get value]-Block oder einen passenden Ausdruck an. - Erzeugter Code (4): der Block erzeugt automatisch den passenden
callmethod-Aufruf, zum Beispielconnections.getfromid('…').callmethod('i=2253', 'i=11492', ''). Das erste Argument ist die NodeID des Objektknotens, das zweite die NodeID der Methode, danach folgen die Methodenargumente.
Call method with return value
Der Block Call method with return value funktioniert genauso wie Call method – Verbindung, Methode und Argumente werden identisch ausgewählt. Der Unterschied: Er liefert das Ergebnis der Methode zurück.

- Rückgabewert-Ausgang (1): der Anschluss oben links am Block gibt das Ergebnis der Methode aus. Verbinde ihn zum Beispiel mit einem Set value-Block, um den Rückgabewert in einer Variablen zu speichern.
- Verbindung, Methode und Argumente (2): werden wie beim Block Call method ausgewählt.
- Erzeugter Code (3): der erzeugte Code beginnt jetzt mit
local _ = …, das heißt das Ergebnis descallmethod-Aufrufs wird übernommen und kann weiterverwendet werden.
Aus dem Skript aufrufen
Derselbe Aufruf ist auch direkt im Skriptcode verfügbar, was für fortgeschrittene Szenarien nützlich ist:
-- ohne Rückgabewert
connections.getfromid('EncodedConnectionKey').callmethod('ObjectNodeId', 'MethodNodeId', 'Argumente')
-- mit Rückgabewert
local result = connections.getfromid('EncodedConnectionKey').callmethod('ObjectNodeId', 'MethodNodeId', 'Argumente')
Die NodeIDs des Objektknotens und der Methode findest du im Durchsuchen-Dialog der OPC UA Datenquelle im Feld “NodeID”. Eine Methode ist an NodeClass = Method erkennbar.
Hinweis
Die NodeID kann auch mit Hilfe von UaExpert oder einem ähnlichen Tool ermittelt werden.
Für die Peakboard Skript Engine sind alle Zahlen gleichwertig und werden als “double” verarbeitet. Übergibst du der Methode numerische Argumente, konvertiere sie daher mit den passenden Funktionen (toint32(), toint16(), …) in den vom Server erwarteten OPC UA Datentyp. Der Building Block Call method übernimmt diese Konvertierung über seine typisierten Eingabeanschlüsse für dich.