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
- Add Reference
- Browse Reference
- Select Reference
- Click OK
2.3 Schritt 3: Steuerelement benutzen
- ziehen sie das Steuerelement ClientSocket in das leere Formular.
- 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
- Fügen sie dem Formular einen Schaltknopf hinzu und benennen
sie ihn „Verbinden“.
- Fügen sie dem Formular einen Schaltknopf hinzu und benennen
sie ihn „Senden“.
- Fügen sie dem Formular einen Schaltknopf hinzu und benennen
sie ihn „Verbindung schliessen“.
- Fügen sie dem Formular eine Listbox hinzu und benennen
sie diese „lboxReceive“.
2.5 Schritt 5: Implementierung der Schaltlogik
- Führen sie auf dem Formular einen Doppelclick auf den Schaltknopf
„Verbinden“ aus und fügen sie die Codezeilen:
clientSocket1.Connect(); hinzu.
- Führen sie auf dem Formular einen Doppelclick auf den Schaltknopf
„senden“ aus und fügen sie die Codezeilen: clientSocket1.SendText(„Hallo
Welt“); hinzu.
- 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
- 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.
- 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.
- 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 |
|