TCP-Treiber
Dieser Treiber kommuniziert über TCP oder UDP. Es kann eine TCP-Verbindung und eine UDP-Verbindung konfiguriert werden, und zwar sowohl einzeln, als auch beide zusammen. Jede dieser Verbindungen wird durch eine "Communication Reference", kurz kr , gekennzeichnet, die in der Config-Datei angegeben wird. Für TCP und für UDP muss jeweils ein Server und ein Client konfiguriert werden.
Die Verbindung funktioniert nur dann, wenn der Server vor dem Client gestartet wird. Daten können ausschließlich vom Client zum Server übertragen werden.
Treiber vorbereiten
Einrichten des Adresspanels:
- Kopieren Sie die Dateien userPara.ctl und userDrivers.ctl in das Verzeichnis scripts Ihres Projektes.
- Kopieren Sie das Panel address_tcp.pnl in das Verzeichnis panels/para Ihres Projektes.
Die Config-Einstellungen
Die Einträge erfolgen in den Sections [tcp] und/oder [tcp_<num>].
In der Section [tcp_1] erfolgen z.B. Einstellungen für den Server und in [tcp_2] wird der Client konfiguriert. Die Section [tcp], in der Einträge sowohl für den Server als auch für den Client stattfinden könnten, wird beim TCP-Treiber Beispiel aber nicht verwendet.
Konfiguration des Servers (es wird vereinbart, dass Treiber -num 1 der Server ist):
tcpServerSocket
[tcp_1]
tcpServerSocket = 4242
tcpServerSocket ist die Portnummer, auf die sich der TCP-Client zum TCP-Server verbinden muss.
udpServerSocket
[tcp_1]
udpServerSocket = 4241
udpServerSocket ist die Portnummer, auf die sich der UDP-Client zum UDP-Server verbinden muss.
Syntax:
host = kr "IP address:0" "protocol"
[tcp_1]
host = 1 "192.168.0.151:0" "TCP"
host = 2 "127.0.0.1:0" "UDP"
Mit dem Eintrag host wird festgelegt, welche IP-Adresse vom TCP-Server bzw. UDP-Server akzeptiert werden.
-
Argument 1: kr --- stellt ein Synonym für eine Verbindung dar und erleichtert die interne Bearbeitung.
-
Argument 2: IP-Adresse (oder der Hostname)
Beispiel
"192.168.0.151:0"
"127.0.0.1:0" lokale IP-Adresse des eigenen Rechners
"localhost:0" Hostname des eigenen Rechners
Die Angabe “:0” kann auch weggelassen werden.
-
Argument 3: Protokollbezeichnung "TCP" oder "UDP"
Konfiguration des Client (es wird vereinbart, dass Treiber -num 2 der Client ist):
Syntax:
host = kr "IP address:Server port" "protocol"
[tcp_2]
host = 1 "192.168.0.151:4242" "TCP"
host = 2 "127.0.0.1:4241" "UDP"
-
Argument 1: kr --- Diese Nummer muss mit dem entsprechenden Eintrag in [tcp_1] (Servereinstellungen) übereinstimmen. Wird für kr in einer Section mehr als einmal die gleiche Nummer vergeben, beendet sich der Treiber.
-
Argument 2: IP-Adresse (nicht der IP-Name)
Beispiel
"192.168.0.151:4242"
"127.0.0.1:4241" lokale IP-Adresse des eigenen Rechners
"localhost:1764" Hostname des eigenen Rechners
Die IP-Adresse bzw. der Hostname muss mit der Angabe in der Serverkonfiguration übereinstimmen.
Die Angabe “:Serverport” ist die Portnummer, mit der sich der Client verbindet. Sie muss vorhanden sein und mit tcpServerSocket bzw. udpServerSocket übereinstimmen.
-
Argument 3: Protokollbezeichnung "TCP" oder "UDP"
Diese muss mit der Angabe in der Serverkonfiguration übereinstimmen.
Konfiguration
Für die Konfiguration ist es erforderlich, dass mindestens 1 Treiber läuft (kann auch der Simulationstreiber sein).
Die Config-Datei wird mit folgenden Einträgen versehen. Damit werden zwei Kommunikationsverbindungen definiert. Alle Teilnehmer (Server und Client) befinden sich auf dem gleichen Rechner.
[tcp_1]
tcpServerSocket = 4242
udpServerSocket = 4241
host = 1 "127.0.0.1:0" "TCP"
host = 2 "127.0.0.1:0" "UDP"
[tcp_2]
host = 1 "localhost:4242" "TCP"
host = 2 "127.0.0.1:4241" "UDP"
Nach Anlegen des Adresskonfigs muss der Treibertyp ausgewählt werden, beim TCP-Treiber ist das Sample TCP-Treiber.
Nach Betätigung der Schaltfläche Parametrieren... sind die Felder wie folgt auszufüllen.
Referenz:
z.B. 1.67
1 = kr
67 = ix
- Treiber mit der Nummer -num 1 ist der Server, also der Datenempfänger.
- ix (kann als Speicheradresse in der Zielhardware interpretiert werden) ist eine beliebige Nummer, die jedoch im versendeten Datenpunkt und im empfangenden Datenpunkt übereinstimmen muss.
Richtung: Angabe der Übertragungsrichtung. Bei Richtung Eingang kann auch noch low level /alt/neu Vergleich konfiguriert werden.
Datenart: Es werden die vier Datentypen Bool, Integer, Float und String unterstützt.
Treibernummer: im Beispiel wird 1 für Eingänge (Server) und 2 für Ausgänge (Client) eingestellt.