Einfache Computersteuerung für Modellbahnen Was soll eigentlich mit einem Computer gesteuert werden? Diese Frage muss man sich als erstes stellen: - Man braucht für Ausstellungen einen kompletten automatischen Betrieb. Sowohl die Weiche im Rahmen der Fahrstraßen, die Signale einschließlich des Abschaltens von Gleisbereichen als auch das Steuern der Fahrzeuge (Geschwindigkeit und Richtung) erfolgt automatisch. Ein Rangierbetrieb wird es hier kaum geben, wenn dann nur mit erheblichen Aufwand zur exakten Steuerung der Koppelstellen. Bei dieser Variante werden neben den Steuerleitungen auch Messstellen, wie Positionen der einzelnen Züge, gebraucht. Die Steuerung wird zur Regelung. - Eine andere Variante ist, die Züge weitgehend per Hand zu fahren und nur das Steuern der Signale, Weichen usw. dem Computer zu überlassen. Das macht Sinn, wenn Fahrstraßen bzw. ganze Streckenabschnitte zugeordnet werden sollen. Der Computer entscheidet ob das möglich ist und gibt dann die Strecke frei. Der Computer braucht hierzu auch Messleitungen. - Rangierbetrieb. Hier werden einzelne Weichen bedient, die muss man nicht über einen Computer steuern, denn eine Taste muss man so und so bedienen (per Hand oder per Mausklick). Allerdings könnte parallel Variante 1 oder 2 dennoch laufen. Will man beispielsweise einen Ablaufberg betreiben, dann bietet sich für die Steuerung wieder der Computer an. Interessant ist auch, wie dieser Bereich wieder in den automatischen Betrieb übernommen wird (der neu zusammengesetzte Zug soll nun auch automatisch fahren?). Unabhängig davon, welche Betriebsvariante zum Einsatz kommen soll, ist die Verbindung zum Rechner zu klären. Man wird sicher als Zielsystem einen PC verwenden wollen, denn der ist meist vorhanden (es muss ja auch nicht der neuster Rechner sein). Ein spezieller Rechner zur Steuerung von technischen Prozessen kommt wohl für den einfachen Anwender nicht in Frage. So ein PC stellt mehrere Ausgänge zur Verfügung. Jeder hat eine bestimmte Anzahl von Leitungen und somit eine bestimmte Anzahl der Steuerstellen. Da gibt es die LPT parallele Schnittstelle. Diese wurde (und wird) zur Ansteuerung von Druckern benutzt. 8 Bit stehen parallel zur Verfügung. Damit können 8 Schaltstellen angesteuert werden. Nutzt man aber diese Bits entsprechend den im Beitrag Grundlagen von Modulen dargestellten Verfahren als Multiplexer-Bus, können damit 255 Schaltstellen angesteuert werden. Man könnte also ohne Probleme diese Leitungen auf den Bus legen und mittels speziellen Programms auch steuern. Die Sache hat zwei Haken: 1. Die Schnittstelle befindet sich bei neueren Rechnern auf dem Mutherboard. Gibt es einen Kurzschluss im System (kann auf den Modulen schon passieren), dann kann man im ungünstigsten Fall das Mutherboard austauschen, quasi neuer Rechner. 2. Die neueren Windows-Betriebssysteme unterstützen diese Stelle nicht, mit den normalen Mitteln der Programmierung erreicht man sie nicht. Man kann nun spezielle DLL s sich besorgen um diese Verbote zu umgehen, hat dann bei jeder neuen Version wieder das Problem.
Ähnliche Probleme gibt es mit der seriellen COM-Schnittstelle. Hinzu kommt noch, dass nun nur noch ein Signal zur Verfügung steht. Aber auch damit kann man arbeiten, man braucht etwas Zusatzelektronik und schon geht es: Man benutzt ein Schieberegister, wobei die Ausgangswerte erst nach Übernahme ins Ausgaberegister sichtbar sind. Am Datenausgang D wird eine 1 bereitgestellt, mit Signal S wird es auf den 1.Platz des Schieberegisters S0 übernommen. Jetzt wird eine 0 an D ausgegeben. Mit S wird die 0 nach S0 geschoben, zuvor aber S0 nach S1. Folgt danach wieder eine 1, steht binär eine 5 im Schieberegister. Wenn alle Bits an der richtigen Stelle stehen, werden diese mit dem Signal Ü in das Ausgaberegister übernommen, wir haben wieder unseren bekannten 8-Bit Multiplex-Bus. Nun muss das Signal auch wieder weggeschaltet werden entweder gibt es in dem Schaltkreis ein Rücksetzsignal oder man muss 8 Nullen einschieben. Das Ganze erscheint sehr langwierig, aber wir haben ja einen schnellen Rechner für Steuerung im Hintergrund der diese Aufgaben übernimmt. Probleme könnte es geben wenn der Rechner schneller Werte ausgibt als die Elektronik verarbeiten kann. Da muss ohnehin noch was getan werden, denn wir haben ja nur eine Ausgangsleitung, benutzen aber drei. Eine weitere Elektronik muss anhand bestimmter Bitfolgen herausfinden, wo das folgende Signal landen soll (bei S/D/Ü). Da das 3 Möglichkeiten sind, müssen zwei Bit zur Kennung ausgesendet werden und irgendwie muss auch ein Anfang und Ende gekennzeichnet sein. Insgesamt reduziert sich damit die Geschwindigkeit. Das Verfahren ist mit etwas elektronischem Aufwand verbunden, zeigt aber, dass es mit einem Draht möglich ist, beliebig viele Stellen zu steuern (das Verfahren lässt sich beliebig erweitern, wird aber immer langsamer). Da es zunehmend Nachfragen zur Steuerung von technischen Prozessen mittels PC (unter Windows; Problem COM) gibt, hat die Industrie reagiert und eine einfache Lösung bereitgestellt. Man nutzt die USB-Schnittstelle. Man braucht auf der Prozessseite zur Anpassung wie bei der COM-Schnittstelle Elektronik, es ist ja auch eine serielle Schnittstelle. Wie schon angedeutet, müssen beide Stellen entsprechend einem vorgeschriebenen Protokolls miteinander kommunizieren. Am einfachsten ist das mit einem Mikrocontroller zu realisieren. Wenn schon Prozessor, dann kann man aber auch gleich mehr Leistung in so ein Ding legen. Als ein Beispiel, sicher von vielen (es soll auch keine Werbung für diese Firma sein) sollen 2 Produkte der Firma Code Mercenaries; Hard- und Software GmbH genannt werden. Die Schaltungen sind komplett auf einer kleinen Leiterplatte untergebracht. Neben einigen weiteren schon vorhandenen Bauelementen (Schalter, LED usw.) gibt es ein Lochrasterfeld, wo weitere eigene Schaltungen aufgebaut werden können. Die Platten haben eine USB- Buchse. Verbindet man diese Buchse mit dem PC wird man in bekannter Weise am Rechner angemeldet. Es gibt Programmierunterlagen, so dass man seine Programme in einer bekannten Programmiersprache schreibt, z.b. in C++. Der Controller übernimmt nur das Durchstellen der Signale vom PC zum Prozess, das Programm wird nicht auf den Controller runtergeladen. Zur Verfügung stehen unter anderen der IO-Warrior 24 und 40
Der IO-Warrior 24 bietet 16 Bits, die sowohl als Ein- oder Ausgang funktioniert werden können. Weitere Signale der Schnittstell stehen bereit.
Der IO-Warrior 40 stellt 4 mal 8 Bit für die Ein- oder Ausgabe bereit:
Die Hauptaufgabe des Controllers besteht in der Kommunikation mit dem PC entsprechend dem USB-Protokolls und im Umsetzen des seriellen Signals in die 2 bzw. 4 Parallelports zu jeweils 8 Bit. Die Kosten sind auch erschwinglich: Beide Starter Kids kosten 49,- (ohne MWSt). Man erhält die Leiterplatte und alle Bauelemente und muss selbst alles zusammenlöten.