Test der Client- und Server-Funktionsbausteine
1. Öffnen Sie das TCP/IP Client-Projekt auf dem lokalen PC. Die IP-Adresse des Servers muss an Ihr Remote-System angepasst werden (Initialisierungswerte der sRemoteHost-Variablen). Laden Sie das Projekt in das SPS-Laufzeitsystem auf dem lokalen PC. Starten Sie die SPS.
PROGRAM MAIN
VAR
fbClient1 : FB_LocalClient := ( sRemoteHost:= '172.16.11.83' (* IP address of remote server! *), nRemotePort:= 200 );
fbClient2 : FB_LocalClient := ( sRemoteHost:= '172.16.11.83', nRemotePort:= 200 );
fbClient3 : FB_LocalClient := ( sRemoteHost:= '172.16.11.83', nRemotePort:= 200 );
fbClient4 : FB_LocalClient := ( sRemoteHost:= '172.16.11.83', nRemotePort:= 200 );
fbClient5 : FB_LocalClient := ( sRemoteHost:= '172.16.11.83', nRemotePort:= 200 );
bEnableClient1 : BOOL := TRUE;
bEnableClient2 : BOOL := FALSE;
bEnableClient3 : BOOL := FALSE;
bEnableClient4 : BOOL := FALSE;
bEnableClient5 : BOOL := FALSE;
fbSocketCloseAll : FB_SocketCloseAll := ( sSrvNetID := '', tTimeout := DEFAULT_ADS_TIMEOUT );
bCloseAll : BOOL := TRUE;
nCount : UDINT;
END_VAR
IF bCloseAll THEN (*On PLC reset or program download close all old connections *)
bCloseAll := FALSE;
fbSocketCloseAll( bExecute:= TRUE );
ELSE
fbSocketCloseAll( bExecute:= FALSE );
END_IF
IF NOT fbSocketCloseAll.bBusy THEN
nCount := nCount + 1;
fbClient1( bEnable := bEnableClient1, sToServer := CONCAT( 'CLIENT1-', UDINT_TO_STRING( nCount ) ) );
fbClient2( bEnable := bEnableClient2, sToServer := CONCAT( 'CLIENT2-', UDINT_TO_STRING( nCount ) ) );
fbClient3( bEnable := bEnableClient3, sToServer := CONCAT( 'CLIENT3-', UDINT_TO_STRING( nCount ) ) );
fbClient4( bEnable := bEnableClient4 );
fbClient5( bEnable := bEnableClient5 );
END_IF
Beim Setzen einer der bEnableCientX-Variablen können bis zu 5 Clientinstanzen aktiviert werden. Jeder Client sendet ca. jede Sekunde einen String zum Server (default: 'TEST'). Der gleiche String wird vom Server zum Client zurückgesendet (Echo-Server). Für den Test wird bei den ersten drei Instanzen ein String mit einem Zählerwert automatisch generiert. Der erste Client wird beim Programmstart automatisch aktiviert.
2. Öffnen Sie das TCP/IP Server-Projekt auch auf dem lokalen PC. Als Zielsystem wählen Sie ein SPS-Laufzeitsystem auf einem Remote PC aus. Laden Sie das SPS-Programm in das Laufzeitsystem. Starten Sie die SPS.
PROGRAM MAIN
VAR
fbServer : FB_LocalServer := ( sLocalHost := '172.16.11.83' (*own IP address!*), nLocalPort := 200 );
bEnableServer : BOOL := TRUE;
fbSocketCloseAll : FB_SocketCloseAll := ( sSrvNetID := '', tTimeout := DEFAULT_ADS_TIMEOUT );
bCloseAll : BOOL := TRUE;
END_VAR
F bCloseAll THEN (*On PLC reset or program download close all old connections *)
bCloseAll := FALSE;
fbSocketCloseAll( bExecute:= TRUE );
ELSE
fbSocketCloseAll( bExecute:= FALSE );
END_IF
IF NOT fbSocketCloseAll.bBusy THEN
fbServer( bEnable := bEnableServer );
END_IF
3. Setzen Sie die bEnableCilent4-Variable im Client-Projekt auf TRUE. Der zweite Client versucht dann eine Verbindung zum Server aufzubauen. Beim Erfolg wird der 'TEST'-String zyklisch gesendet. Öffnen Sie jetzt die fbClient4-Instanz des FB_LocalClient-Funktionsbausteins.

Öffnen Sie den Dialog zum Schreiben der sToString-Variablen mit einem Doppelklick. Ändern Sie den Wert der Stringvariablen z.B. auf 'Hallo'. Schließen Sie den Dialog mit OK. Schreiben Sie den neuen Wert in die SPS (CTRL+F7). Kurz danach kann auch der vom Server zurückgelesene Wert online gesehen werden.

4. In dem Server-Projekt öffnen Sie jetzt die fbServer-Instanz des FB_LocalServer-Funktionsbausteins. Unser String: 'Hallo' kann in den Online-Daten des Servers gesehen werden.

5. In den Server- und Client-Beispielen werden Meldungen beim Auf-/Aubbauen der Verbindung und bei einem Fehler in das Logbuch des Betriebssystem geschrieben. Es erleichtert die mögliche Fehlersuche. Diese Meldungen können im Logger Output des TwinCAT System Managers angezeigt werden. Starten Sie den TwinCAT System Manager auf dem lokalen System und aktivieren Sie den Logger Output. Deaktivieren Sie jetzt die beiden Clients (bEnableClient1 und bEnableClient4 auf FALSE ).

Es können auch die Meldungen des Servers auf dem lokalen PC angezeigt werden. Dazu müssen Sie eine zweite Instanz des TwinCAT System Managers auf dem lokalen PC öffnen und als Zielsystem im TwinCAT System Manager den Remote-PC auswählen.