FB_IotWebSocketClient

FB_IotWebSocketClient 1:

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

FB_IotWebSocketClient 2: 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.

FB_IotWebSocketClient 3: 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.

FB_IotWebSocketClient 4: Methoden

Name

Beschreibung

CheckProtocol

Diese Methode kann optional überschrieben werden, um das vom Server zurückgegebene Protokoll bei der Herstellung der Verbindung zu überprüfen.

Connect

Methode zum Herstellen der Verbindung zum WebSocket-Server.

Disconnect

Methode zum Trennen der Verbindung zum WebSocket-Server.

Execute

Muss zyklisch als Hintergrundkommunikation zum WebSocket-Server aufgerufen werden. Wenn Nachrichten empfangen wurden, wird die Callback-Methode für jede Nachricht einmal ausgelöst.

OnWebSocketClose

Callback-Methode, die beim Schließen der WebSocket-Verbindung ausgelöst wird.

OnWebSocketMessage

Callback-Methode, die beim Erhalt einer Nachricht ausgelöst wird.

SendMessage

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)