FB_IotWebSocketClient
![FB_IotWebSocketClient 1:](Images/jpg/15705854731__Web.jpg)
Dieser Funktionsblock ermöglicht die Kommunikation mit einem WebSocket-Server. Ein Client kann eine Verbindung zu genau einem WebSocket-Server verwalten. Die Execute()-Methode muss als Hintergrundkommunikation zum Server zyklisch aufgerufen werden.
Alle Eingabeparameter werden nur dann verarbeitet, wenn eine Verbindung hergestellt wird. Alle Parameter vom Typ STRING erwarten das UTF-8-Format. Dieses entspricht dem STRING-Format für die 7-Bit-ASCII-Zeichen.
Syntax
FUNCTION BLOCK FB_IotWebSocketClient
VAR_INPUT
sHostName : STRING;
nHostPort : UINT;
sUri : STRING;
sProtocol : STRING;
sOrigin : STRING;
stTLS : ST_IotSocketTls;
bPerMessageDeflate : BOOL;
bKeepAlive : BOOL;
nKeepAliveInterval : UINT;
nKeepAliveCloseTimeout : UINT;
nConnectResponseTimeout: UINT;
nMaxRecvFrameSize : UDINT;
nMaxRecvMsgSize : UDINT;
nMaxSendFrameSize : UDINT;
END_VAR
VAR_OUTPUT
bError : BOOL;
hrErrorCode : HRESULT;
eConnectionState : ETcIotWebSocketStatus;
bConnected : BOOL;
nCloseReason : UINT;
END_VAR
Eingänge
Name | Typ | Beschreibung |
---|---|---|
sHostName | STRING | sHostName kann als Name oder als IP-Adresse angegeben werden. Bei fehlender Angabe wird Local Host verwendet. |
nHostPort | UINT | Hier wird der Host Port angegeben. Dieser ist standardmäßig 80. |
sUri | STRING | Optionaler Parameter, um beim WebSocket-Opening-Handshake eine URI anzugeben. |
sProtocol | STRING | Optionaler Parameter, um beim WebSocket-Opening-Handshake ein Unterprotokoll anzugeben. |
sOrigin | STRING | Optionaler Parameter, um beim WebSocket-Opening-Handshake eine Origin anzugeben. |
stTLS | ST_IotSocketTls | Wenn der Server eine TLS-gesicherte Verbindung anbietet, kann hier die nötige Konfiguration vorgenommen werden. |
bPerMessageDeflate | BOOL | Aktiviert die Permessage-Deflate-Komprimierungserweiterung. |
bKeepAlive | BOOL | Aktiviert vom Client gesendete Keep-Alive-Ping-Nachrichten. Standardeinstellung ist TRUE. |
nKeepAliveInterval | UINT | Legt fest, wie viele Sekunden, nachdem keine Nachrichten vom Server empfangen wurden, der Client eine Ping-Nachricht senden soll. |
nKeepAliveCloseTimeout | UINT | Legt fest, wie viele Sekunden der Client auf die Ping-Antwort warten soll. |
nConnectResponseTimeout | UINT | Legt fest, wie viele Sekunden der Client auf die Handshake-Antwort des Servers warten soll. |
nMaxRecvFrameSize | UDINT | Maximal empfangbare Frame-Größe. Standardgröße ist 16#10000. |
nMaxRecvMsgSize | UDINT | Maximal empfangbare Message-Größe. Standardgröße ist 16#100000. |
nMaxSendFrameSize | UDINT | Maximal sendbare Frame-Größe. Standardgröße ist 16#4000. |
Ausgänge
Name | Typ | Beschreibung |
---|---|---|
bError | BOOL | Wird TRUE, sobald eine Fehlersituation auftritt. |
hrErrorCode | HRESULT | Gibt einen ADS Return Code zurück. Eine Erläuterung zu den möglichen ADS Return Codes befindet sich im Anhang. |
eConnectionState | ETcIotWebSocketStatus | Gibt den Zustand der Verbindung vom Client zum Server als Enumeration ETcIotWebSocketState an. |
bConnected | BOOL | TRUE, wenn die Verbindung zum Host hergestellt ist und der WebSocket-Handshake erfolgreich war. |
nCloseReason | UINT | WebSocket-Statuscode gemäß der Definition in RFC 6455. |
Methoden
Name | Beschreibung |
---|---|
Diese Methode kann optional überschrieben werden, um das vom Server zurückgegebene Protokoll bei der Herstellung der Verbindung zu überprüfen. | |
Methode zum Herstellen der Verbindung zum WebSocket-Server. | |
Methode zum Trennen der Verbindung zum WebSocket-Server. | |
Muss zyklisch als Hintergrundkommunikation zum WebSocket-Server aufgerufen werden. Wenn Nachrichten empfangen wurden, wird die Callback-Methode für jede Nachricht einmal ausgelöst. | |
Callback-Methode, die beim Schließen der WebSocket-Verbindung ausgelöst wird. | |
Callback-Methode, die beim Erhalt einer Nachricht ausgelöst wird. | |
Methode zum Senden einer Nachricht. |
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS-Bibliotheken |
---|---|---|
TwinCAT v3.1.4026.x | IPC oder CX (x86, x64, ARM) | Tc3_IotBase (3.5.1 oder höher) |