TcSocketHelper.lib-Beispiele

Die vorgestellten Beispiele nutzen die Funktionalitäten der TcSocketHelper.Lib.

Systemvoraussetzungen:

Die Kommunikationseinstellungen die in den Beispielen verwendet werden:

Wenn Sie die Client- und Server-Applikation auf zwei verschiedenen PC's testen wollen, dann muss die Port-Adresse und die IP-Adresse entsprechend angepasst werden (die Verbindung mit dem PING-Befehl in der Eingabeaufforderung testen).

Mit den Default-Werten können Sie den Client und Server auf einem PC testen, indem Sie die Client-Applikation in das erste SPS-Laufzeitsystem (801) und die Server-Applikation in das zweite SPS-Laufzeitsystem (811) laden.

Das Verhalten der SPS-Beispielprojekte wird durch folgende Konstanten festgelegt.

Konstante

Wert

Beschreibung

PLCPRJ_MAX_CONNECTIONS

5

Max. Anzahl der Server->Client-Verbindungen. Ein Server kann Verbindungen zu mehr als einem Client aufbauen. Ein Client kann immer nur zu einem Server Verbindung aufbauen.

PLCPRJ_SERVER_RESPONSE_TIMEOUT

T#10s

Max. Verzögerungszeit (Timeout-Zeit) nach der ein Server eine Antwort an den Client senden soll.

PLCPRJ_CLIENT_SEND_CYCLE_TIME

T#1s

Zykluszeit in der ein Client Sendedaten (TX) an den Server sendet.

PLCPRJ_RECEIVER_POLLING_CYCLE_TIME

T#200ms

Zykluszeit in der ein Client oder Server nach Empfangsdaten (RX) pollend fragt.

PLCPRJ_BUFFER_SIZE

10000

Max. interne Puffergröße für RX/TX-Daten.

 

Die SPS-Beispiele definieren und benutzen folgende interne Fehlercodes:

Fehlercode

Wert

Beschreibung

PLCPRJ_ERROR_RECEIVE_BUFFER_OVERFLOW

16#8101

Der interne Empfangspuffer meldet einen Überlauf.

PLCPRJ_ERROR_SEND_BUFFER_OVERFLOW

16#8102

Der interne Sendepuffer meldet einen Überlauf.

PLCPRJ_ERROR_RESPONSE_TIMEOUT

16#8103

Der Server hat die Antwort in der angegebenen Timeoutzeit nicht gesendet.

PLCPRJ_ERROR_INVALID_FRAME_FORMAT

16#8104

Das Telegramm hat eine fehlerhafte Formatierung (Grösse, fehlerhaften Datenbytes usw. ).

SPS Project

Beschreibung

TcSocketHelper_SingleClientString.zip (Client)

TcSocketHelper_SingleServerString.zip (Server)

Implementierung eines "Echo"-Clients/-Servers. Der Client sendet zyklisch einen Test-String (sToServer) zum Remote-Server. Der Server sendet den gleichen String unverändert an den Client zurück (sFromServer).

TcSocketHelper_MultiClientString.zip (Client)

TcSocketHelper_MultiServerString.zip (Server)

Wie oben, mit dem Unterschied, dass der Server bis zu 5 Verbindungen aufbauen kann. Die Client-Applikation besitzt 5-Client-Instanzen. Jede Instanz baut eine Verbindung zum Server auf.

TcSocketHelper_SingleClientBinary.zip (Client)

TcSocketHelper_SingleServerBinary.zip (Server)

Eine Client-Server-Applikation für den Austausch von Binärdaten.

Es wird ein einfaches Beispielprotokoll verwendet. Im Protokoll-Header wird die Länge der Binärdaten und ein Framezähler für die gesendeten und empfangenen Telegramme übertragen.

Die Struktur der Binärdaten wird durch die SPS-Struktur: ST_ApplicationBinaryData festgelegt. Die Binärdaten werden an den Header angehängt und übertragen. Die Instanzen der Binärstruktur haben auf der Client-Seite den Namen: toServer, fromServer bzw. auf der Server-Seite: toClient, fromClient.

Sie können die Strukturdeklaration auf der Client und Server-Seite an Ihre Anforderungen anpassen. Die Strukturdeklaration muss aber auf beiden Seiten gleich sein!

Die max. Größe der Struktur darf aber die max. Puffergröße der Sende-/Empfangs-Fifos nicht überschreiten! Die max. Puffergröße ist durch eine Konstante festgelegt.

Die Server-Funktionalität ist im Funktionsbaustein FB_ServerApplication und die Client-Funktionalität ist im Funktionsbaustein FB_ClientApplication implementiert.

In der Standard-Implementierung sendet der Client die Daten der Binärstruktur zyklisch zum Server und wartet auf eine Antwort vom Server. Der Server modifiziert einige Daten und sendet diese zurück an den Client.

Wenn Sie eine andere Funktionalität benötigen, müssen Sie die Funktionsbausteine FB_ServerApplication und FB_ClientApplication entsprechend modifizieren.

TcSocketHelper_MultiClientBinary.zip (Client)

TcSocketHelper_MultiServerBinary.zip (Server)

Wie oben, mit dem Unterschied, dass der Server bis zu 5 Verbindungen aufbauen kann. Die Client-Applikation besitzt 5-Client-Instanzen. Jede Instanz baut eine Verbindung zum Server auf.

 

Die Client- bzw. Server-Applikationen (FB_ServerApplication, FB_ClientApplication) wurden als Funktionsbausteine implementiert. Die Applikation und die Verbindung können dadurch mehrfach instanziiert werden.

Für die Fehlersuche können Sie die Eingangsvariablen bDbg auf TRUE setzen und so die Debug-Ausgabe der gesendeten Daten im TwinCAT System Manager Log View aktivieren:

TcSocketHelper.lib-Beispiele 1: