W&T verbindet
Interfaces für TCP/IP, Ethernet, RS-232, RS-485, USB, 20mA, Glas- und Kunststoff-LWL, http, SNMP, OPC, Modbus TCP, I/O digital, I/O analog, ISA, PCI

Tutorial zum seriellen Com-Server:

TTY-Redirector/Pseudo-TTYs unter Linux

Pseudo-TTY

Linux-Applikationen, deren Kommunikation mit seriellen Geräten ausschließlich auf lokale TTYs beschränkt ist, werden mithilfe eines Com-Servers und dem GPL2-lizenzierten Open-Source-Tool socat netzwerkfähig (z.B. zur Überbrückung großer Distanzen, mangelnder oder fehlender lokaler TTYs etc.). Während der Com-Server für die hardwareseitige Anbindung des seriellen Gerätes an das Netzwerk sorgt, stellt socat auf dem Linux-System virtuelle TTYs bzw. Pseudo-TTYs zur Verfügung und verbindet diese per TCP bidirektional über das Netzwerk mit dem Com-Server.


1. Download und Installation

  • In vielen Linux-Distributionen kann socat direkt über die jeweilige Software-Verwaltung installiert werden. Geben Sie in die Suche einfach socat ein.

  • Die Homepage des socat-Projektes mit einem Downloadlinks, Informationen zu unterstützten Linux-Distributionen und umfangreicher Dokumentation finden Sie unter http://www.dest-unreach.org/socat/. Geeignete Com-Server finden Sie hier.


2. Anlegen von Pseudo-TTYs

  • Das folgende Kommando legt die Pseudo-TTY csTTY1 an und lenkt diese auf den im Netzwerk befindlichen Com-Server 10.40.21.18 um:

    socat PTY,link=/dev/csTTY1,echo=0,wait-slave  TCP:10.40.21.18:8000,retry=5

  • Das Schlüsselwort PTY erzeugt zunächst die Pseudo-TTY mit dem Namen csTTY1 im Verzeichnis /dev. Die zugehörige Option echo=0 deaktiviert das lokale Echo der TTY.

  • Durch wait-slave wird die TCP-Verbindung zum 2. Datenkanal erst aufgebaut, wenn die angelegte Pseudo-TTY durch eine Anwendung geöffnet wird, so dass bei geschlossener TTY auch andere Teilnehmer im Netzwerk auf den Com-Server und das angeschlossene serielle Gerät zugreifen können.

  • Das Schlüsselwort TCP bestimmt den 2. Datenkanal, welcher mit der zuvor angelegten Pseudo-TTY verbunden wird. Als Adressparameter werden die IP-Adresse sowie die TCP-Portnummer des Com-Servers angegeben. retry=5 bestimmt die Anzahl der Verbindungsversuche für den Fall, dass der Com-Server z.B. gerade von einem anderen Teilnehmer belegt ist.


3. Hinweise und Besonderheiten

  • Die benötigten seriellen Übertragungsparameter (Baudrate, Parität etc.) müssen vorab manuell im Setup des Com-Servers konfiguriert werden. Eine automatische, an die Parameter der öffnenden Anwendung gekoppelte, Konfiguration ist nicht möglich.

  • Per socat angelegte Pseudo-TTY eignen sich für alle Anwendungen, welche rein auf Ebene der seriellen Datenleitungen Rx und Tx mit dem Endgerät kommunizieren. Eine Übermittlung der RS232-Steuerleitungen (RTS, CTS etc.) ist nicht möglich.

  • Die im oben genannten Beispiel verwendete Option wait-slave sorgt für einen bedarfsgesteuerten Aufbau der Netzwerkverbindung. Gleichzeitig wird durch Schließen der TTY neben der Netzwerkverbindung zum Com-Server auch der socat-Prozess beendet, sodass ggf. ein Skript-gesteuerter Restart erfolgen muss. Bei einer an den Systemstart gekoppelten Ausführung des socat-Kommandos unterscheidet sich hierbei die Vorgehensweise abhängig vom Init-System der verwendeten Linux-Distribution.

  • Ein zeichenorientierter Test der virtuellen TTY kann ebenfalls mit Hilfe von socat durchgeführt werden. Das folgende Kommando stellt eine transparente Verbindung zwischen STDIN/STDOUT des Linux-Systems und dem Com-Server über die Pseudo-TTY csTTY1 her:

    socat STDIO,raw,echo=0,escape=0x03 /dev/csTTY1,raw,echo=0


Sie haben noch keinen Com-Server, möchten das vorgestellte Beispiel aber einfach mal ausprobieren?

Kein Problem: Wir stellen Ihnen ein Gerät gerne kostenlos für 30 Tage zur Verfügung. Bestellen Sie einen Com-Server als Muster und wir liefern das Gerät zum Test auf offene Rechnung. Wenn Sie das Gerät innerhalb von 30 Tagen zurückschicken, schreiben wir die Rechnung komplett gut.

Zu den Com-Servern

Sie sind noch ratlos, welcher Com-Server der richtige für Sie ist?

Unser qualifiziertes Techniker-Team hilft Ihnen gerne weiter.
Sie erreichen uns telefonisch unter 0202/2680-110 oder per E-Mail an info@wut.de.