UA_MethodCall

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.
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. |
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 |