Tutorials

 
Kontakt| Impressum
   
rgnTitle

Beispiel

Implementation eines einfachen Tcp-Clients

1 Allgemeines

2 Mit wenigen Handgriffen zu einer TCP-IP-fähigen Anwendung

3 Anwendung testen

4 Was benötigen sie um eigene Anwendungen zu realisieren?

4 Download

1 Allgemeines

In der Automation kommt es häufig vor, dass Prozessdaten von einem Mess- oder Steuerungssystem an ein anderes Steuerungssystem übertragen werden sollen oder über eine Internet-Verindung zentral erfasst werden sollen. In all diesen Fällen ist es notwendig, dass die Systeme miteinander kommunizieren können. Eine Möglichkeit bietet sich unter Verwendung einer Ethernet-Verbindung. In diesem Beispiel wird gezeigt, wie mit Hilfe des Steuerlementes ClientSocket ein Tcp-fähiges Clientprogramm erstellt werden kann.

2 Mit wenigen Handgriffen zu einer TCP-IP-fähigen Anwendung

Nachfolgend werden die Schritte beschrieben, wie man mit Hilfe des Steuerelementes "ClientSocket" in kurzer Zeit eine Verbindung zu einem anderen Rechnersystem, z.B. einem Tcp-fähigen Mikrocontroller, der als Tcp-Server arbeitet, aufbaut und Daten austauscht.

2.1 Schritt 1: Neues C#-Projekt anlegen

  • legen sie eine neues C#-Projekt (Windows-Anwendung) an

2.2 Schritt 2: TCP-IP Steuerelement einbinden

  1. Add Reference
  2. Browse Reference
  3. Select Reference
  4. Click OK

2.3 Schritt 3: Steuerelement benutzen

  1. ziehen sie das Steuerelement ClientSocket in das leere Formular.
  2. legen sie im Eigenschaften-Dialog unter Hostname die IP-Adresse (z.B. „10.1.1.1“) des PC-Systems fest, mit dem sie kommunizieren wollen. Legen sie weiter fest über welchen Port (z.B. 1234) die Kommunikation stattfinden soll.

2.4 Schritt 4: Formular designen

  1. Fügen sie dem Formular einen Schaltknopf hinzu und benennen sie ihn „Verbinden“.
  2. Fügen sie dem Formular einen Schaltknopf hinzu und benennen sie ihn „Senden“.
  3. Fügen sie dem Formular einen Schaltknopf hinzu und benennen sie ihn „Verbindung schliessen“.
  4. Fügen sie dem Formular eine Listbox hinzu und benennen sie diese „lboxReceive“.

2.5 Schritt 5: Implementierung der Schaltlogik

  1. Führen sie auf dem Formular einen Doppelclick auf den Schaltknopf „Verbinden“ aus und fügen sie die Codezeilen: clientSocket1.Connect(); hinzu.
  2. Führen sie auf dem Formular einen Doppelclick auf den Schaltknopf „senden“ aus und fügen sie die Codezeilen: clientSocket1.SendText(„Hallo Welt“); hinzu.
  3. Führen sie auf dem Formular einen Doppelclick auf den Schaltknopf „verbinden“ aus und fügen sie die Codezeilen: clientSocket1.Disconnect(); hinzu.

2.6 Schritt 6: Implementierung der Ereignisse

  1. Wechseln sie im Eigenschaften-Dialog für des TCP-IP Steuerelement auf das Register Ereignisse. Führen sie einen Doppelclick auf das Ereignis „OnConnected““ aus und fügen in die Ereignisroutine die Codezeilen: listBox1.Items.Add(„Host has successful connected“); clientSocket1.Connect(); hinzu.
  2. Wechseln sie im Eigenschaften-Dialog für das TCP-IP Steuerelement auf das Register Ereignisse. Führen sie einen Doppelclick auf das Ereignis „OnReceiveTextData““ aus und fügen in die neue Ereignisroutine die Code¬zeilen: listBox1.Items.Add(„data received “ + data); hinzu.
  3. Wechseln sie im Eigenschaften-Dialog für das TCP-IP Steuerelement auf das Register Ereignisse. Führen sie einen Doppelclick auf das Ereignis „OnError““ aus und fügen in die neue Ereignisroutine die Codezeilen: listBox1.Items.Add(„Error “ + ErrorStr); hinzu.

3 Anwendung testen

Wenn sie alle diese Schritte ausgeführt haben, dann können sie die Anwendung nun starten. Das Programm präsentiert sich dabei wie in Abbildung 2. Wie einfach ein einfacher Tcp-Client aussieht, kann anhand dieses Beispielcodes betrachtet werden. Den Beispielcode für den Socketclient können sie hier herunterladen.

Im dargestellten Beispiel kommuniziert der Client mit einem im Netzwerk befindlichen Mikrocontroller. Wenn sie keinen Mikrocontroller haben, dann können sie das Programm trotzdem testen. Lesen sie dazu weiter unten. Der Mikrocontroller hat dabei die IP-Adresse 10.1.1.3. Die Kommunikation erfolgt über das Port 1111. Nach dem Drücken der "Connect"-Taste erreicht das Client-Programm das Ereignis "onConnected", welches signalisiert, dass die Verbindung erfolgreich aufgebaut wurde. Durch Drücken der Taste "Send "$002" wird die Zeichenkette "$002" an den Mikrocontroller gesendet. Dieser interpretiert den Befehl als "GetTime"-Befehl und liefert die aktuelle Uhrzeit des Mikrocontrollers zurück. Abschliessend wird die Verbindung geschlossen.

Abbildung 2: Einfacher Tcp-Client, der mit einem Mikrocontroller kommuniziert

Das Clientprogramm kann auch ohne Mikrocontroller getestet werden. Laden sie dazu einfach den TestServer, der einen Tcp-IP-fähigen Mikrocontroller simuliert, herunter. Im Feld IP-Address tragen sie dann bitte die Adressse 127.0.0.1 (IP-Adresse ihres PCs) ein. Starten sie zuerst den Testserver und dann den Testclient.

4 Was benötigen sie um eigene Anwendungen zu realisieren?

  • Visual Studio
  • das Tcp-Steuerelement ClientSocket. DIeses können sie zu Testzwecken kostenlos herunterladen. Die unregistrierte Version zeigt beim Trennen der Verbindung allerdings jedes mal einen Nag-Screen.
  • Eine Mikrocontroller welcher als Server arbeitet oder ein PC-Programm welches einen Server simuliert. Dieses können sie weiter untern herunterladen.

5 Download

Nr Type downloadbares File Beschreibung
0 .zip TestClient Einfacher Tcp-fähiger Client als C#-Source und Exe-File
1 .zip TestServer Simuliert einen Mikrocontroller als Server (ist notwendig, um den Testclient zu testen) als Exe-File
2 .pdf TestClient als pdf Einfacher Tcp-fähiger Client als C#-Source im pdf-Format

Impressum | Haftungsausschluss

Version 1.0, ©Gerhard Burger 2004-2013, alle Rechte vorbehalten, letzte Änderung 09.11.2013