T_HSOCKET
Variablen von diesem Typ repräsentieren ein Verbindungshandle oder ein Handle eines geöffneten Sockets. Über dieses Handle können Daten an einen Socket gesendet oder empfangen werden. Mit dem Handle kann ein geöffneter Socket wieder geschlossen werden.
TYPE T_HSOCKET :
STRUCT
handle : UDINT;
localAddr : ST_SockAddr; (* Local address *)
remoteAddr : ST_SockAddr; (* Remote endpoint address *)
END_STRUCT
END_TYPE
handle: Internes Socket-Handle des TwinCAT TCP/IP Connection Servers;
localAddr: Lokale Socketadresse;
remoteAddr: Remote Socketadresse;
Über den TwinCAT TCP/IP Connection Server können folgende Sockets geöffnet und geschlossen werden: Listener-Socket, Remote-Client-Socket oder Local-Client-Socket. Je nachdem, welcher von diesen Sockets von dem TwinCAT TCP/IP Connection Server geöffnet wurde, werden in die localAddr- und remoteAddr-Variablen die passenden Addressinformationen eingetragen.
Das Verbindungshandle auf der Serverseite
- Der Funktionsbaustein FB_SocketListen öffnet einen Listener-Socket und liefert das Verbindungshandle des Listener-Sockets zurück;
- Das Verbindungshandle des Listener-Sockets wird an den Funktionsbaustein FB_SocketAccept übergeben. FB_SocketAccept liefert dann die Verbindungshandles der Remote-Clients zurück;
- Für jeden verbundenen Remote-Client liefert der Funktionsbaustein FB_SocketAccept ein neues Verbindungshandle;
- Das Verbindungshandle wird dann an die Funktionsbausteine FB_SocketSend und/oder FB_SocketReceive übergeben, um Daten mit den Remote-Clients austauschen zu können;
- Ein Verbindungshandle eines nicht erwünschten oder nicht mehr benötigten Remote-Clients wird an den Funktionsbaustein FB_SocketClose übergeben und so der Remote-Client-Socket geschlossen;
- Ein nicht mehr benötigtes Verbindungshandle des Listener-Sockets wird auch an den Funktionsbaustein FB_SocketClose übergeben und so der Listener-Socket geschlossen;
Das Verbindungshandle auf der Clientseite
- Der Funktionsbaustein FB_SocketConnect liefert das Verbindungshandle eines Local-Client-Sockets zurück;
- Dieses Verbindungshandle wird dann an die Funktionsbausteine FB_SocketSend und FB_SocketReceive übergeben, um Daten mit einem Remote-Server austauschen zu können;
- Das gleiche Verbindungshandle wird dann an den Funktionsbaustein FB_SocketClose übergeben, um eine nicht mehr benötigte Verbindung zu schließen.
Mit dem Funktionsbaustein FB_SocketCloseAll werden alle Sockets geschlossen, die von einem SPS-Laufzeitsystem geöffnet wurden. D.h. wenn Sie FB_SocketCloseAll in einer der Tasks des ersten Laufzeitsystems (Port 801) aufrufen, werden alle Sockets geschlossen, die in dem ersten Laufzeitsystem geöffnet wurden.
Voraussetzungen
Entwicklungsumgebung | Zielplattform | Einzubindende SPS Bibliotheken |
---|---|---|
Alle TwinCAT v2.8.0 Versionen und höher | PC oder CX (x86) | TcpIp.Lib ( Standard.Lib; TcBase.Lib; TcSystem.Lib werden automatisch eingebunden ) |
TwinCAT v2.10.0 Build >= 1301 | CX (ARM) |