Software-Controller mit altem PC
Idee
Nach weitgehendem Verständnis des alten Motorola-Formats und der Arbeitsweise und Beschaltung des Sender-Bausteins - des Motorola-Chip MC145026, auf dem die ursprüngliche Märklin-Control-Unit und die Mehrzahl der Dritt- und Selbstbauprodukte beruhen - erschienen mir die Konstruktion eines einfachen Controllers als recht simpel und kostengünstig und die von der Fa. Märklin für ihre Produkte geforderten Preise als nicht gerechtfertigt und prohibitiv. Bei den Versuchen, eine möglichst einfache Schaltung mit möglichst wenigen Bauteilen zu entwickeln, die aber auch eine Weichensteuerung enthalten und funktional die Märklin-Control-Unit ersetzen sollte, kam irgendwann der Gedanke, daß dies doch eine hervorragende Aufgabe für die zahlreichen alten PCs darstellt, von denen wohl jeder zumindest ein Exemplar im Keller herumstehen hat und entweder nur wegen der Kosten der Entsorgung oder aus nostalgischer Rührung noch aufhebt (bedauerlicherweise lassen sich diese Veteranen auch nicht an den Nachwuchs abtreten, da gerade dieser aufgrund des Performancehungers der aktuellen Computerspiele mit nicht weniger als der jeweils neuesten Technik zufrieden ist). Da außerdem nahezu jeder PC eine Gamekarte enthält und somit ohne weiteres vier Regler und vier Schalter (für die Dekoderfunktion) angeschlossen werden können, ist zugleich das Problem der Bereitstellung echter Regler mit geringstem Kostenaufwand gelöst. Kurz: Die PC-Lösung schrie gerade nach einer Realisierung.
System
Der Ansatz war zunächst, durch den PC einen MC145026 zur Signalgenerierung zu steuern. Dann manifestierte sich aber der sportliche Ehrgeiz, spaßeshalber eine reine Software-Lösung zu entwickeln, die als zusätzliche Hardware (neben Buchsen, Steckern, Kabel und Gehäuse) lediglich vier Potentiometer, vier Schalter und einen Booster benötigt. Denn um was anderes handelt es sich bei z.B. der EDITS-Steuereinheit - als um einen Rechner mit Spezialprogrammierung. Genau dies unterscheidet meine Software LOK von
fast allen bekannten Modelleisenbahn-Steuerprogrammen. Jene Software setzt voraus, daß das einschlägige Equipment von z.B. Märklin vorhanden ist - also wenigstens die Control-Unit (6021) sowie das Interface (6050/6051) zur Verfügung stehen (den Booster braucht jede Lösung). Abgesehen von den zusätzlichen Kosten ist man auch an die Beschränkungen der Control-Unit gebunden, etwa bezüglich der Zahl der Weichen oder des Datenformats. Andererseits liegt der Schwerpunkt jener Software nicht auf der reinen (manuellen) Steuerung; mir ist auch keine Software bekannt, die auch den Anschluß von Reglern erlauben würde. Ihr Ziel ist vielmehr eine automatische oder zumindest bildschirmorientierte Steuerung der Anlage - was für mich wiederum ohne jede Bedeutung ist.
Es scheint leider nicht möglich zu sein, mit Windows eines jener Programme zusammen mit LOK zu betreiben. Es müßte nämlich gewährleistet sein, daß die Impulserzeugung nicht durch die Zuteilung der Rechenzeit (Tasks) beeinträchtigt wird - also LOK die Kontrolle über die Zuteilung der Rechenzeit erhält.
Da ja der Ausgangspunkt und conditio sine qua non war, daß LOK auf jedem (alten) PC mit 80386SX-, 80286- oder sogar 8088-/V20- bzw. 8086-/V30-Prozessoren lauffähig sein soll (ich erachte es schon etwas für übertrieben, für eine im Grunde derart simple Steuerungsaufgabe einen High-Tech-PC in den Keller zu stellen - zumal die Akzeptanz der Software mit dem Grad der Verwendbarkeit vorhandener Reste steigt), jeder (alte) PC aber eine parallele Schnittstelle, nicht aber immer auch eine RS232C/V24-Schnittstelle aufweist, mußten die Daten (ursprünglich) über die parallele Schnittstelle ausgegeben werden. Infolgedessen konnte ich bei der Generierung der Steuersignale nicht - wie bei Dr. Konrad Froitzheim beschrieben - auf die vorgegebene Programmierung der seriellen Schnittstelle zurückgreifen sondern mußte eigene Programmroutinen entwickeln, die deutlich mehr Rechenzeit benötigen. Dies erfordert, daß die Software auf jedem Rechner kalibriert werden muß. Außerdem muß diese Kalibrierung bei jeder Veränderung der Systeminstallation, die die Rechengeschwindigkeit beeinflußt, wiederholt werden. Dieser Vorgang ist mittlerweile automatisiert; dennoch kann insbesondere bei besonders langsamen Rechnern eine individuelle Feineinstellung einzelner Zeiten erforderlich sein. Vorteilhaft ist aber, daß auf diese Weise auch das SelecTRIX-Signal erzeugt werden könnte.
Eine weitere Folge dieser zwingenden Vorgabe der Lauffähigkeit von LOK auch auf alten PC war aufgrund der zu realisierenden sehr kurzen Impulszeiten von minimal 13 Mikrosekunden (man beachte, daß der Takt des PC-Timers 0 für die Systemuhr schon bei ca. 860 Nanosekunden liegt), daß ich die Signalgenerierung in Assembler programmieren mußte, was natürlich für das Hauptprogramm nicht in Betracht kam. Dies bedeutet ferner, daß für die Bildschirmdarstellung nur der Textmodus geeignet war, so daß die Benutzeroberfläche nach heutigen verwöhnten Maßstäben ausgesprochen spartanisch und steinzeitlich erscheinen muß und all die Spielereien grafischer Benutzeroberflächen fehlen. Es versteht sich von selbst, daß als Betriebssystem nur simples DOS in Betracht kommt; dies hindert allerdings niemanden, die Software auch in der DOS-Box von Windows oder OS/2 zu betreiben, falls er hierfür geeignete Rechner bereits zum alten Eisen zählen und das Multitasking keine Schwierigkeiten machen sollte. Dies kann funktionieren, muß aber nicht; erstaunlicherweise klappt es gerade mit manchen neueren Rechnern nicht so gut.
Status
Anfänglich bot die Software LOK nur die Möglichkeit, vier Loks gleichzeitig zu steuern und bis zu 324 Weichen oder andere Schaltverbraucher durch Eingabe einer Weichennummer, die einer bestimmten Dekoderadresse zugeordnet ist, zu schalten. Im Laufe der Zeit kamen verschiedene Details, die nicht wertvolle Rechenzeit benötigen, sowie Anfahr- und Bremsverzögerungen und richtungsabhängige Höchstgeschwindigkeiten hinzu. Aufgrund der nur sehr unbefriedigenden Auflösung von 15 Fahrtstufen versuchte ich, Zwischenstufen durch ständiges Hin- und Herschalten zwischen zwei Fahrtstufen zu generieren; leider ist der Effekt nicht so überwältigend, wie ich es gehofft hatte. LOK kann allerdings durch Ausnutzen eines speziellen Features - oder, je nach Sichtweise, Bugs - der neueren Märklin-Dekoder (ab Chip 701.17) bei diesen echte zusätzliche 13 Fahrtstufen nutzen. Ferner kann dies auch durch eine spezielle Ansteuerung des Funktionsbit erreicht werden, was aber nur bei dafür vorgesehenen Dekodern funktioniert; solche gibt es schon für den Selbstbau (Wikinger-Dekoder).
Als ich von dem neuen bzw. erweiterten Datenformat erfuhr, implementierte ich dieses in LOK. Zunächst sah ich vor, daß für jede Lok das gewünschte Datenformat ausgewählt werden kann. Nachdem sich aber herausgestellt hat, daß sowohl die alten als auch die neuen Dekoder ein Mischformat vertragen, in dem zwar das neue Format verwendet wird, zusätzlich aber auch der an sich weggefallene Umschaltimpuls übertragen wird, kann in der Konfiguration eingestellt werden, ob entsprechend der Vorgaben bei den Lokdaten zwischen alten und neuem Format unterschieden oder immer das Mischformat erzeugt wird. Die vier Extra-Funktionen werden mit F1 bis F4 geschaltet; die normale Funktion wird über den Hardware-Schalter beim Regler betätigt.
Im alten Format kann manuell ein Fahrtrichtungsumschaltimpuls erzeugt werden. Die Regler können desaktiviert und während des Betriebs auf eine andere Lok eingestellt werden; Geschwindigkeitsanzeigen ermöglichen es, diese ohne "Rucken" zu übernehmen.
Eine einfache Abteilung für die Programmierung programmierbarerer Dekoder ist vorhanden, und zwar für den Selbstbau-Wikinger-Dekoder sowie allgemein für programmierbare Dekoder. Ebenso eine Ansteuerung der alten Funktionsdekoder.
Mittlerweile können alle möglichen 256 Lokadressen angesteuert werden; sowohl die Uhlenbrock-Dekoder als auch die Selbstbau-Wikinger-Dekoder sind mit den zusätzlichen Adressen adressierbar.
Die "große" Version enthält - neben der Möglichkeit, weitere vier, also insgesamt acht Regler anzuschließen - auch eine Maussteuerung der Weichen nebst einem faktisch beliebig großen Switchboard.
Um auch den an sich sehr praktischen älteren Notebook-PC dieses Gnadenbrot gewähren zu können, habe ich für diese die Option der Bedienung durch die Tastatur vorgesehen, die allerdings aufgrund der systembedingten Vorrangigkeit der Weichensteuerung über die Tastatur nicht sehr komfortabel sein kann - wie überhaupt die Bedienung durch die Tastatur gegenüber der Benutzung von echten Reglern nur eine rechte Krücke darstellt. Gleiches gilt - mit Ausnahme der Weichensteuerung über das Switchboard - für die Bedienung durch eine Maus, zumal diese zusätzliche Arbeitsfläche benötigt, die bei einer Modelleisenbahn nicht unbedingt vorhanden ist. Auch der bei zahlreichen Notebook-PC eingebaute oder ansteckbare Mausersatz wird nur zur Folge haben, daß sich die Zahl der Unfälle häufen, so daß ich dies nicht vorgesehen habe.
Bei Benutzung der parallelen Schnittstelle werden die Daten über den Ausgang D0 übertragen. D1 dient als an/aus-Schalter für den Booster, um die Schienen im Falle eines Kurzschlusses oder Not-Halts stromlos schalten zu können. An Steuereingang BUSY wird der High-aktive Kurzschlußausgang des Boosters angeschlossen; stattdessen oder über ein entsprechendes Dioden-Netzwerk können auch mehrere Not-Halt-Schalter angeschlossen werden. Die Reaktionszeit von LOK ist von 0,1 bis 3 Sekunden einstellbar, so daß kurzzeitige Kurzschlüsse, die gerade bei älterem Material an der Tagesordnung sind, nicht zum Stillstand führen. Alternativ kann auch die serielle Schnittstelle benutzt werden. Dann sind die Anschlüsse TxT, RTS und DCD für Daten, Power und Short zu verwenden.
Hier die wesentlichen Features von LOK kurz aufgelistet:
- Erzeugen der für die Steuerung von Loks und Magnetartikel im Märklin-Digital-System erforderlichen Impulse durch PC ohne weitere spezifische Hardware; es bedarf nur noch eines Boosters.
- Je nach Wahl des Ausgangs Anschlußmöglichkeit an den Märklin-Booster und andere Booster mit asymmetrischen Eingängen und an den Elektor-Booster sowie jeden Booster mit symmetrischen Eingang unmittelbar oder über ein einfaches Interface.
- 13 weitere Fahrtstufen durch Ausnutzen nicht dokumentierter Features der neueren Märklin-Dekoder, des
speziellen Mehrfahrtstufen-Modus´ von Selbstbau-Dekodern (Wikinger-Dekoder) oder der virtuellen Erhöhung der Zahl der Fahrtstufen.
- Bezeichnung, Bremsverzögerung, Anfahrverzögerung, richtungsabhängige Höchstgeschwindigkeiten und Da
tenformat für jede Lok individuell und dauerhaft einstellbar.
- Steuern von je nach Version ein,vier oder acht Loks aus einer Auswahl von 256, d.h. von Adresse 000 bis 255.
Dekoder-/lokabhängige Verwendung des alten Motorola-Formats, des neuen Motorola-Märklin-Formats oder einer Mischung aus beiden Formaten.
- Volle Unterstützung des neuen Märklin-Motorola-Formats (4 Extra-Funktionen, definitive Fahrtrichtungssteuerung, kürzere Pausenzeiten).
- Kurzschlußerkennung mit einstellbarer Wartezeit und Boosterabschaltung bei Kurzschluß oder Nothalt.
- Kontrolle der alten (Extra)Funktionsdekoder.
- Geschwindigkeit und Funktionsstatus aller benutzten Loks werden gespeichert und bei erneutem Einstellen der
Adresse angezeigt.
- Ansteuern von je nach Version 10, 40 oder 324 zweipoligen bzw. 20, 40 oder 648 einpoligen Magnetschaltartikeln oder einer entsprechenden Mischung (auch Dreiwegweiche) aus einer Auswahl von
648/324 Adressen (Adressen 000 bis 646).
- Ansteuern der Weichen durch Funktionstasten oder bei den 4-Regler-Versionen durch faktisch beliebig große Switchboard-Nachbildung mittels Extended-ASCII-Grafik und Maus.
- Ansteuerart der Magnetartikel durch Impulsdauer gemäß Tastendruck, einen definierten Impuls oder zwei Impulse dauerhaft einstellbar.
- Automatische Rekonstruktion der letzten Weichen- und Signalstellungen beim Programmstart.
- Lok-Steuerung über Regler (Paddle) oder Tastatur.
- Kalibrierung der Regler (Paddle).
- Automatische Kalibrierung der Impulserzeugung bei Programmstart.
- Steuerung der Weichenbeleuchtung durch einen Tastendruck (bei entsprechenden Weichendekodern).
- Programmiermodus für Dekoder nach dem Uhlenbrock-Schema, für die Wikinger-Dekoder oder allgemein programmierbare Dekoder.
Hardware
Wie eingangs erwähnt ist - abgesehen von dem Booster - kaum weitere Hardware erforderlich, sofern der PC - wie üblich - eine Gamekarte enthält. Man benötigt neben einem 15-poligem-SUB-D-Stecker und einem 10-adrigen Kabel sowie einem Gehäuse (natürlich kann man auch jede Reglereinheit in ein separates Gehäuse einbauen; dann muß jedes Kabel nur 4-adrig sein) nur vier Potentiometer 10k ... 100k, linear, und vier einfache Schalter. Bei diesen Potentiometern kann es sich auch um heutzutage leider nicht mehr ganz leicht erhältliche Dreh-Potentiometer mit Mittelrastung handeln, damit sie auf einfache Weise auf "0" gestellt werden können. Mit Drehpotentiometern ohne Mittelrastung oder Schiebereglern läßt der Bedienungskomfort sehr zu wünschen übrig, sofern man nicht den gesamten Dreh- bzw- Schiebereich für eine Fahrtrichtung nutzt und die Fahrtrichtung mit einem Schalter oder Taster umschaltet; entsprechende Schaltpläne sind in der Dokumentation abgebildet. Ich selbst konnte über dem Versandhandel Segor Elektronik in Berlin noch entsprechende Potentiometer mit Mittelrastung bekommen. Das non plus ultra wären natürlich Potentiometer, die wie die Märklin-Regler am linken Anschlag einen Taster (nicht Schalter!) aufweisen. Wenn jemand weiß, ob und wo solche Regler erhältlich sind, oder wie man auf einfache Weise normale Drehpotentiometer dahingehend umbauen kann, so möge er mich bitte informieren.
Dieses Eingabemedium stellt allerdings zugleich einen systembedingten Schwachpunkt dar: Die Temperaturdrift der Bauteile der Gamekarte ist relativ groß, so daß bis zum Erreichen der Arbeitstemperatur im Inneren des PC nach 10 oder 20 Minuten die Regler möglicherweise wiederholt initialisiert werden müssen, da sich ansonsten der Nullpunkt der Regler nicht dort befindet, wo er sein sollte - nämlich in der Mittelstellung. Dies hängt aber auch sehr von der jeweiligen Hardware ab, so daß es auch genügen kann, die Regler nur ein einziges Mal nach Erreichen der Arbeitstemperatur zu initialisieren. Bei Potis mit Taster/Schalter am Linkanschlag oder mit gesondertem Taster für die Fahrtrichtungsänderung tritt dieses Problem natürlich kaum auf. Auch Benutzer von alten Notebook-PC haben dieses Problem nicht - da sie mangels Gamekarte keine Regler anschließen können.
Bei der 1-Regler-Version von LOK kann auch über ein kleines Interface der Märklin-Fahrtrafo selbst an den/einen Gameport angeschlossen werden. Dann werden Geschwindigkeit, Fahrtrichtung und Sonderfunktion durch den Regler des Fahrtrafos kontrolliert.
Insbesondere für Laptops ohne Gameport findet sich in der Dokomentation eine kleine externe Schnittstelle für 8 Regler, die an den Parallelport angeschlossen wird.
Ausblick
Geplant sind u.a. eine komfortable Programmierabteilung für programmierbare Dekoder und Multitraktionskontrolle. Ferner befindet sich eine IR-Fernsteuerung für 8 Regler nebst Weichensteuerung in Arbeit. Für weitere Anregungen, Vorschläge und Wünsche bin ich selbstverständlich offen.
Verfügbarkeit
Die gegenwärtig verfügbaren Versionen von LOK - für einen Regler und 20 Weichen und für 4 Regler und 40+284 Weichen - haben ihre Tauglichkeit auf 16-MHz-80386SX-PC und 486DX2-66-PC und verschiedene Pentium unter Beweis gestellt. Allerdings ist die 4-Regler-Version nur mit schnelleren PC (ab 386DX bzw. 486DX) sinnvoll einsetzbar; langsamere Rechner als der erwähnte 386SX werden wohl auch mit der Version für einen Regler Probleme haben. Da diese langsamen Veteranen im Aussterben begriffen sind, werde ich diese auch nicht ändern. Wer sich einen Eindruck von LOK verschaffen möchte, der kann sich hier eine kostenlose Testversion von LOK downloaden.
Homepage |