UA_MethodCall

UA_MethodCall 1:

Dieser Funktionsbaustein ruft eine Methode auf einem Remote-UA-Server auf. Die Methode wird durch eine Verbindung und ein Methodenhandle bestimmt. Erstere kann durch UA_Connect und letzterer durch UA_MethodGetHandle abgefragt werden.

UA_MethodCall 2: Eingänge

VAR_INPUT
    Execute                     : BOOL;
    ConnectionHdl               : DWORD;
    MethodHdl                   : DWORD;
    nNumberOfInputArguments     : UDINT;
    pInputArgInfo               : POINTER TO ST_UAMethodArgInfo;
    cbInputArgInfo              : UDINT;
    pInputArgData               : PVOID;
    cbInputArgData              : UDINT;
    pInputWriteData             : PVOID;
    cbInputWriteData            : UDINT;
    nNumberOfOutputArguments    : UDINT;
    pOutputArgInfo              : POINTER TO ST_UAMethodArgInfo;
    cbOutputArgInfo             : UDINT;
    pOutputArgInfoAndData       : PVOID;
    cbOutputArgInfoAndData      : UDINT;
    Timeout                     : TIME := DEFAULT_ADS_TIMEOUT;
END_VAR

Name

Typ

Beschreibung

Execute

BOOL

Der Befehl wird durch eine steigende Flanke an diesem Eingang ausgelöst.

ConnectionHdl

DWORD

Verbindungshandle, das vorher vom Funktionsbaustein UA_Connect ausgegeben wurde.

MethodHdl

DWORD

Methodenhandle, zuvor vom Funktionsbaustein UA_MethodGetHandle ausgegeben.

nNumberOfInputArguments

UDINT

Anzahl Eingabeparameter.

pInputArgInfo

POINTER TO ST_UAMethodArgInfo

Zeigt auf die Pufferadresse, wo Eingabeparameterinformationen in Form eines Arrays ST_UAMethodArgInfo hinterlegt sind.

cbInputArgInfo

UDINT

Größe des Puffers, wo die Eingabeparameterinformation hinterlegt ist.

pInputArgData

PVOID

Zeigt auf die Pufferadresse, wo Eingabeparameter (konstanter Länge) hinterlegt sind.

cbInputArgData

UDINT

Größe des Eingabepuffers, wo Eingabeparameter (mit konstanter Länge) hinterlegt sind.

pInputWriteData

PVOID

Zeiger auf Pufferadresse, wo Eingabeparameter (dynamischer Länge) hinterlegt sind.

cbInputWriteData

UDINT

Größe des Eingabepuffers, wo Eingabeparameter (mit dynamischer Länge) hinterlegt sind.

nNumberOfOutputArguments

UDINT

Anzahl Ausgabeparameter.

pOutputArgInfo

POINTER TO ST_UAMethodArgInfo

Zeigt auf die Pufferadresse, wo Ausgabeparameterinformationen als Array ST_UAMethodArgInfo hinterlegt sind.

Für die Bestimmung des Zielspeichers der einzelnen Ausgabeparameter ist nLenData erforderlich. Die anderen Elemente können so gesetzt werden, dass eine Typprüfung der zurückgegebenen Parameter erfolgt oder undefiniert bleiben.

cbOutputArgInfo

UDINT

Größe des Puffers, wo die Ausgabeparameterinformation hinterlegt ist.

pOutputArgInfoAndData

PVOID

Zeigt auf die Pufferadresse, wo die Ausgabeparameter als BYTE-Array gespeichert werden sollen. Das BYTE-Array enthält die Anzahl der Ausgabeparameter als DINT, 4 reservierte Bytes und Parameterinformationen als ARRAY OF ST_UAMethodArgInfo (mit der Länge der Ausgabeparameter) gefolgt von reinen Daten. Beachten Sie, dass die Daten als 1-byte-Alignment gepackt sind.

cbOutputArgInfoAndData

UDINT

Größe des Puffers, in dem die Ausgabeparameter als BYTE-Array gespeichert werden sollen.

Timeout

TIME

Zeit bis zum Abbruch der Funktion. DEFAULT_ADS_TIMEOUT ist eine globale Konstante, gesetzt auf 5 Sekunden.

UA_MethodCall 3: Ausgänge

VAR_OUTPUT
    cbRead_R     : UDINT;
    Done         : BOOL;
    Busy         : BOOL;
    Error        : BOOL;
    ErrorID      : UDINT;
END_VAR

Name

Typ

Beschreibung

cbRead_R

UDINT

Zählt alle empfangenen Bytes.

Done

BOOL

Schaltet auf TRUE, wenn der Funktionsbaustein erfolgreich ausgeführt wurde.

Busy

BOOL

TRUE, bis der Baustein einen Befehl ausführt hat, maximal für die Dauer des „Timeout“ am Eingang. Solange Busy = TRUE ist, akzeptieren die Eingänge keinen neuen Befehl. Es wird nicht die Zeit der Verbindung sondern die Empfangszeit überwacht.

Error

BOOL

Schaltet auf TRUE, wenn bei der Ausführung eines Befehls ein Fehler auftritt. Der befehlsspezifische Fehlercode ist in nErrID enthalten.

ErrorID

UDINT

Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls.

Voraussetzungen

Entwicklungsumgebung

Zielplattform

Einzubindende SPS-Bibliotheken

TwinCAT 3.1

Win32, Win64, CE-X86, CE-Arm®

Tc3_PLCopen_OpcUa