Menu

GrobArchitektur

Dave Brondsema Steffen A. Mork

Architektur

Modellbau

Verwendung des Zweileiter-Gleichstrom-Systems. Hier ist das meiste Baumaterial verfügbar. Außerdem ist es alle Spurweiten verfügbar. Außerdem gibt es noch folgende Systeme, die aber nicht unterstützt werden sollen:

  • Märklin Mittelleiter-Wechselstrom (z.B. das gute, alte Blechgleis)
  • TrixExpress

Grundtechnik meiner Referenzanlage

  • Spurweite H0
  • Fleischmann-Gleismaterial
  • Verwendung von Dekodern für die Ansteuerung der Lokomotiven soll möglich sein. Daraus ergibt sich "nur" ein Stromkreis.

Gleisplan

  • Zwei Etagen
  • Ein Hauptbahnhof mit angeschlossenen Industrieanschlüssen
  • Ein Schattenbahnhof
  • Zwei Bergbahnhöfe

Steuerung

Bauelemente

Für folgende Bauelemente sollen Controller (ATmega32) verwendet werden:

  • Weichen
  • Signale
  • Gleisabschnitte (z.B. Stoppstrecke vor Signal, bzw. Blockabschnitt)

Die Controller unterhalten sich untereinander über einen 2-adrigen CAN-Bus. Ein spezieller Controller - das sog. CAN-Gateway - erhält einen Anschluss für eine serielle Schnittstelle zur Kommunikation mit dem Steuerungsrechner. Das Kommunikationsprotokoll enthält Steuer-, Konfigurations- und Zustandskommandos. Es werden nur Kommandos vom Rechner losgeschickt. Die Controller können antworten, um Zustände zu übermitteln. Jeder Controller erhält die gleiche Firmware. Die Controller haben einen Bootloader, um neue Firmware in die Controller via CAN-Bus flashen zu können.

Steuerrechner

Der Steuerrechner kommuniziert mit den Controllern über eine RS232-Schnittstelle (Proxy) und dann - verborgen - über CAN-Bus. Im Steuerungsrechner werden High-Level-Kommandos (z.B. Schalte mir eine Fahrstraße von A über B nach C) in Low-Level-Kommandos (Schalte Weiche 2 rechts, Weiche 3 links, Gleis 2 frei und Signal 2 auf Hp1) umgewandelt und abgesendet. Außerdem ist diese Steuerung - soweit es die Weichen es zulassen - dafür verantwortlich, den aktuellen Zustand abzufragen. Dazu gehören Gleisbesetzt-Anzeige und das manuelle Umstellen von Weichen. Es ist längerfristig geplant, ein Embedded Linux einzusetzen. Hier wären C/C++ von Vorteil bzw. Java, genauer !J2ME. Java jedenfalls, sofern es auf der Plattfom (Prozessor) überhaupt erhältlich ist.

Stellwerk

Das Stellwerk wird über eine GUI dargestellt. Hierfür wird SWT/RCP benutzt.

Software

Der Gleisplan ist als Modell über MDSD modelliert. Daraus lassen sich mehrere Komponenten generieren:

  1. Verteilung der Bauelemente an die unterschiedlichen Controller
  2. Interner Zustandsvektor aller Bauteile, die entweder manuell verstellt werden oder per Steuerung geschaltet werden.
  3. Generierung der Stellwerks-GUI.

Der Rest muss konventionell ausprogrammiert werden. Insbesondere die Steuerungs-Software, die für jede Form von Modellbahnen wiederverwendet werden kann.

Das Metamodell zur Eisenbahn sieht folgendermaßen aus: Metamodell

Ausblicke

In einer weiteren Ausbaustufe sollte es möglich sein, auch die Lokomotiven steuern zu können. Entsprechende APIs zur Ansteuerung von fertigen Dcodern existieren bereits. Hier besteht noch reichlich Diskussionsbedarf.


Related

Wiki: AnlageZwei
Wiki: ControllerModul
Wiki: FleischmannBahn
Wiki: Home
Wiki: KommunikationsProtokoll
Wiki: SteffenMork

MongoDB Logo MongoDB