Digitalprojekt

aus DerMoba, der Wissensdatenbank für Modellbahner
Version vom 5. Januar 2009, 19:26 Uhr von Guido Scholz (Diskussion | Beiträge) (Mini SRCP Server ergänzt)

Wechseln zu: Navigation, Suche

Einleitung

Am DER_MOBA Digitalprojekt arbeiten derzeit viele Entwickler, die sich über die Newsgroup de.rec.modelle.bahn koordinieren. Ziel ist die Schaffung eines modularen und skalierbaren - d.h. an die jeweiligen Anforderungen anpassbaren - Digitalsystems zur Modellbahnsteuerung. Einzelne Komponenten dieses nach dem Client-Server-Prinzip aufgebauten Systems können ausgetauscht bzw. je nach Anforderung bausteinartig zusammengestellt werden. Der Informationsaustausch der einzelnen Programme untereinander erfolgt über ein speziell für diesen Zweck erfundenes Protokoll (SRCP = Simple Railroad Command Protocol). Mit den Details dieser Sprachdefinition muß sich ein Anwender allerdings genausowenig auseinander setzen, wie ein E-Mail-Verfasser mit SMTP (Simple Mail Transfer Protocol). Wichtig ist lediglich, dass die eingesetzten Programme die gleiche Sprache sprechen.

Ein Vorteil des hier eingesetzten Client-Server-Prinzips ist, dass die SRCP-Programme grundsätzlich netzwerkfähig sind. Der Anwender ist damit nicht an einen einzelnen Steuerungsrechner gebunden, wie das bei herkömmlichen Modellbahnsteuerungsprogrammen in der Regel der Fall ist.

Nachrichtenfluß zwischen der Modellbahn, einem SRCP-Server und verschiedenen SRCP-Clients

Ein funktionsfähiges SRCP-Digitalsystem besteht von der Software-Seite her aus mindestens zwei Programmen:

  • Einem SRCP-Server und
  • einem SRCP-Client

Der Server stellt die eigentliche Schnittstelle zur Hardware der Modellbahnanlage dar und kommuniziert entweder mit einer per Interface angeschlossenen Digitalzentrale oder - im Falle eines DigitalDirekt-Systems - direkt mit den Boostern. Er nimmt Steuerbefehle von SRCP-Clients entgegen und leitet diese an die Modellbahn weiter. Zusätzlich hält er die Clients über Statusänderungen der Modellbahn informiert.

Der Client kommuniziert mit Hilfe von SRCP-Kommandos nur mit dem Server und stellt in der Regel ein Steuerungs- oder Bedienprogramm dar. Das Konzept schließt ausdrücklich die gleichzeitige Verwendung mehrerer SRCP-Clients ein, die z.B. auf verschiedene Funktionalitäten (Lokomotivsteuerung, Stellwerk, Ablaufsteuerung etc.) spezialisiert sein können (siehe nebenstehende Abbildung).

Obwohl sehr viele, der derzeit verfügbaren SRCP-Programme, für das Betriebssystem Linux entwickelt wurden, ist das DER_MOBA Digitalprojekt grundsätzlich unabhängig von einem bestimmten Betriebssystem und der dafür notwendigen Hardware. Einige Programme laufen bereits jetzt auch unter anderen Betriebssystemen, andere können mit wenig Aufwand portiert werden.

Das DER_MOBA Digitalprojekt wird dezentral durchgeführt. Informationen zu den einzelnen Programmen werden üblicherweise vom jeweiligen Autor über dessen WWW-Seite angeboten. Diese Seite ist deshalb im wesentlichen eine Link-Liste, die einen Überblick über die verfügbare Soft- und Hardware bietet. Weitere Detailinformationen zum Protokoll z.B. für Programmentwickler befinden sich im Artikel SRCP-Grundlagen.


SRCP-Server

Projekte für den praktischen Einsatz

  • DDW Server - DigitalDirekt-SRCP-Server (0.7.x und 0.8.x) für Windows.
    Dieser Server macht den Computer zur Softwarezentrale und ermöglicht einen Digitalbetrieb ohne separate Zentraleinheit und Computerinterface.
    Kontakt: Michael Gräfe
    Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des Autors.
  • erddcd - DigitalDirekt-SRCP-Server (0.7.x) für Linux (DDL)
    Dieser Server macht den Computer zur Softwarezentrale und ermöglicht einen Digitalbetrieb ohne separate Zentraleinheit und Computerinterface (für Linux Kernel 2.4 und 2.6).
    Kontakt: Torsten Vogt
    Weitere Informationen zu diesem Programm gibt es auf den Seiten des DDL-Projektes.
  • TrackONE SRCP-Server - SRCP-Server (0.7.x) für Windows und die Intellibox.
    Server zur Ansteuerung einer per serieller Schnittstelle angeschlossenen Intellibox.
    Kontakt: Michael Reukauff
    Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des Autors.
  • DCC-Signaler - SRCP-Server (0.7.x) für Windows und Linux.
    Dieser Server arbeitet in Verbindung mit einem externen, über die serielle Schnittstelle angeschlossenen DCC-Signalgenerator.
    Kontakt: Markus Gietzen
    Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des Projektes.
  • srcpd - SRCP-Server (0.8.x) für Linux/FreeBSD/Windows (Cygwin)/Mac OS X
    »srcpd« kann zur Steuerung von Anlagen sowohl über verschiedene Digitalzentralen, wie z.B. Intellibox, Märklin Interface 6051, Lenz LI100, Selectrix, Zimo MX1, OpenDCC, als auch über direkt an der seriellen Schnittstelle (RS232) angeschlossene Booster (DDL-Betrieb) genutzt werden. Möglichkeiten zum Anschluß von Rückmeldungen, wie Littfinski HSI-S88 oder S88-Module am Parallelport, sowie weitere Module für seltener vorkommende Schnittstellen (CAN-Bus, I2C) sind ebenfalls vorhanden. Es können auch mehrere Geräte gleichzeitig (z.B. zwei Intelliboxen) eingesetzt werden.
    Kontakt: srcpd-devel@lists.sourceforge.net
    Weitere Infos zu diesem Programm gibt es auf den Projekt-Seiten bei SourceForge.
  • ejsrcpd - Extended Java SRCP-Daemon (0.8.x)
    In Java implementierter SRCP-Server mit Plugin-Konzept zur Unterstützung unterschiedlicher Hardware-Schnittstellen.
    Kontakt: Kurt Harders
    Weitere Informationen zu diesem Programm gibt es auf den WWW-Seiten des Projektes.

Technologiestudien

Diese SRCP-Server sind entstanden, um Funktionen nicht nur am grünen Tisch testen zu können. Sie können auch als Anregung für Weiterentwicklungen dienen.

  • jsrcpd - Referenzimplementierung von SRCP 0.8.x. Dieses Programm ist eine erste Implementierung von SRCP 0.8.x ohne weitere Funktionalität. Derzeit ist es nicht für den Einsatz in der Modellbahnpraxis geeignet. Es dient in erster Linie den Entwicklern, die noch vorhandenen Fehler und Schwächen von SRCP 0.8.x zu erkennen und zu beheben. Es ist auch als Hilfe für die Entwicklung von SRCP 0.8.x Clients gedacht. Wer einen einsatzfähigen SRCP-Server sucht, sollte sich die weiter oben angeführten Produkte ansehen.
    Kontakt: Olaf Schlachter
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den Seiten des Autors.

Kommerzielle Produkte

  • Mini SRCP Server - Auf SRCP 0.8.2 basierende Firmware für Atmel Mikrocontroller; ist nur in Form eines fertig programmierten ATMega32 erhältlich.
    Kontakt: Reimar Barnstorf
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den Seiten des Autors.

SRCP-Clients

  • J-Man - Java-Programm zur manuellen Steuerung von Lokomotiven und Magnetartikeln unter einer grafischen Benutzeroberfläche. Die Weiterentwicklung dieses Programms findet unter einer eigenen Projektseite statt.
  • loco-panel - Monitor zur Überwachung aller aktiven Loks.
  • uhl-programmer - Programmieren von Uhlenbrock-Decodern
  • nmra-programmer - Programmieren von NMRA-DCC-Decodern
  • phpTrainCtrl für SRCP 0.8 (alpha) - u.a. phpTamsProgrammer
    Kontakt: Torsten Vogt
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den Seiten des DDL-Projektes.
  • phpDDLTerminal - PHP basiertes Web-Interface zur Steuerung und Decoder-Programmierung
    Kontakt: Thomas Borrmann
    Weitere Informationen zu diesem Programm gibt es auf den Seiten des Projektes.
  • dtcltiny - manuelle Steuerung von Lokomotiven mit besonders kompakter und übersichtlicher Bedienoberfläche.
    Kontakt: Markus Pfeiffer
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den veralteten Seiten den WWW-Seiten des Autors, sowie der aktuellen Projektseite des Programms.
  • spdrs60 - grafisches Gleisbildstellpult nach Bundesbahnvorlage mit vorbildgerechter Fahrstraßensicherungslogik.
    Kontakt: Guido Scholz
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den veralteten WWW-Seiten von Stefan Preis sowie der aktuellen Projektseite des Programms.
  • M6051emu - Emulation des Märklin Interfaces 6051 für erddcd.
    Wird benötigt, wenn Nicht-SRCP-Clients (z.B. Railroad&Co) mit erddcd betrieben werden sollen.
    Kontakt: Dieter Schaefer
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den Seiten des DDL-Projektes.
  • rcsh und rcman - Programmiersprache (Railroad Command Shell) und textuelle Bedienoberfläche (rcman)
    Kontakt: Dr. Peer Griebel
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • Programmbibliothken für TCL/Tk und Python - Sammlung nützlicher Routinen und Prozesse für den Selbstprogrammierer: Client-Seiten des srcpd
  • SRCP Recorder - Zeichnet SRCP-Befehle einer laufenden Session auf und spielt sie später wieder ab.
    Kontakt: Matthias Trute
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • SRCP Tester - SRCP-Befehle mit einem Web-Server und PHP generieren.
    Kontakt: Martin Wolf
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den [http://www.stud.mw.tu-muenchen.de/~mw7/familie/martin/hobby/modellbahn/srcptest.html WWW-Seiten (link defekt)] des Autors.
  • Gplan - Gleispläne erstellen und Magnetartikel steuern (für Windows und Linux).
    Kontakt: Michael Gräfe
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • TrackONE SRCP-Keyboard, Gleisplan-Editor und Steuersoftware (für Windows)
    Kontakt: Michael Reukauff
    Weitere Infos zu diesen Programmen und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • JTrain - In Java geschriebener grafischer SRCP-Client zur Steuerung von Lokomotiven und Schaltdecodern mit grafischem Stellpult (für Windows und Linux). Die ursprünglich von Werner Kunkel betreute Original-Internetseite (www.jtrain.de) dieses Programms existiert nicht mehr. Es bestehen noch eine von Guido Scholz weiterentwickelte Version dieses Programms sowie eine darauf aufbauende, von Ingo Bruell betreute Projektseite.
  • Java DCC Network Client (ab Version 2.1) - SRCP-Client zur Steuerung einer Gartenbahn mit einem Sharp Zaurus PDA mit einem WLAN
    Kontakt: Helge Karoska
    Java-SRCP-Client für den PDA Zaurus unter Linux. Das Programms wurde entwickelt zur Steuerung von Loks, Weichen und Zubehör einer Gartenbahn mit einem WLAN. Es kann aber auch universell eingesetzt werden.
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • LD-X-Programmer - Programm zur Programmierung von Decodern der Firma Tams Elektronik (für Windows)
    Kontakt: Michael Geramb
    SRCP-Client (SRCP 0.7.3) für Windows zur Programmierung von Tams-Decodern.
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • TRAINer - SRCP-Client mit Fahrstrassensteuerung, Lokomotiv-Bibliothek, Automatik-Betrieb (für Windows)
    Kontakt: Peter Keintzel
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • SRCP-Pakete für verschiedene Linux-Distributionen - Guido Scholz hat einige der hier gelisteten Linux-Programme weiterentwickelt und diese in einfach zu installierende Pakete (SuSE, Fedora, Debian) verpackt.
    Kontakt: Guido Scholz
    Weitere Infos zu diesem Angebot und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors (hier Linux User Group Burghausen).
  • Traindrive - SRCP-Client zum Steuern von Lokomotiven (Linux- und Windows-Version)
    Kontakt: Fritz Ganter
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • RocRail - Programm zum Steuern von Lokomotiven und Gleisbildstellpult (Linux- und Windows-Version vorhanden)
    Kontakt: Rob Versluis
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • MOBA-Package - Hilfsprogramme für die Entwicklung von SRCP-Clients und -Servern (Windows-Version)
    Kontakt: Roman Lauer
    Weitere Infos zu diesem Programm und die Möglichkeit die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • EnjoyTheTime - SRCP-Client zum Steuern von Lokomotiven (Windows-Version)
    Kontakt: Michael Geramb
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • Railroad Express - SRCP-Client zum Steuern von Modellbahnanlagen (Windows-Version)
    Kontakt: Fred Stevens
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • dras/Kdigirail - SRCP-Client zum Steuern von Modellbahnanlagen (Linux-Version)
    Kontakt: Frank Schmischke
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf den WWW-Seiten des Autors.
  • AdHoc-Railway - Java-SRCP-Client zum Steuern von Modellbahnanlagen
    Kontakt: Benjamin Mueller
    Weitere Infos zu diesem Programm und die Möglichkeit, die Software zu beziehen, gibt es auf der Projektseite des Programms.
  • jsrcpc - Java-SRCP-Bibliothek zur Entwicklung von SRCP-Clients
    Kontakt: Benjamin Mueller
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf der Projektseite der Bibliothek.
  • nsrcp - .NET basierte SRCP-Bibliothek zur Entwicklung von SRCP-Clients
    Kontakt: Michael Geramb
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf der Projektseite der Bibliothek.
  • JMRI - Java basierte Programmsammlung zur Steuerung von Modellbahnen
    Kontakt: Entwickler Mailingliste
    Weitere Infos zu dieser Software und die Möglichkeit, diese zu beziehen, gibt es auf der Projektseite der Programmsammlung.

Hardware

Mögliche Hardware-Schnittstellen zwischen SRCP-Server und Modellbahn

Ein SRCP-Server kann unterschiedliche Hardwareschnittstellen eines Computers ansprechen und über diese mit der Modellbahn kommunizieren. Die größte Verbreitung für diesen Zweck hat die serielle Schnittstelle (RS232/EIA-232), die in neueren Rechnern zunehmend durch die USB-Schnittstelle ersetzt wird. Weitere Verwendung findet die parallele Schnittstelle (IEEE 1284) oder auch weniger geläufige, wie der I2C-Bus oder diverse IO-Karten. Welche Art Hardware-Anbindung von den einzelnen SRCP-Servern unterstützt wird, ist der jeweiligen Programmdokumentation zu entnehmen.


DDL-Betrieb

Im Rahmens des DDL-Projektes wurde eine Technik entwickelt, mit der ein PC einfach und kostengünstig an die Hardware der Modellbahnanlage angeschlossen werden kann. Der Computer kann nach diesem System als Digitalzentrale genutzt werden. Prinzipiell benötigt man hierfür zwei Informationskanäle, die jedoch auch einzeln betrieben werden können:

  • Ein Kanal zum Senden von Steuerbefehlen an die Anlage
  • Ein Kanal zum Empfang von Rückmeldungen von der Anlage

Das Senden von Befehlen läuft über die serielle Schnittstelle (RS232/EIA-232), die im einfachsten Fall über zwei Kabel elektrisch mit einem Booster verbunden ist. Programmtechnisch wird die serielle Schnittstelle hierbei als Signalgenerator für das gewählte Digitalprotokoll genutzt. Beim praktischen Einsatz ist zu beachten, dass Notebooks in der Regel ein anderes Spannungsniveau an der RS232 liefern (ca. 5-8 V), als Desktop-Rechner (ca. 12 V). Manche Hardware-Kombinationen funktionieren daher an dem einen oder anderen Notebook nicht.

Zum Empfang von Rückmeldungen der Anlage benötigt man ein S88-Bus-System, das über Kabelverbindungen und eine 5 V-Spannungsversorgung an die parallele Schnittstelle (IEEE 1284) angeschlossen wird.

Ein übersichtliche Zusammenstellung der für diese Anbindungen notwendigen elektischen Verbindungen gibt es von Holger Seider: http://home.snafu.de/mgrafe/Anleitung_Server.htm