Delphi im Einsatz bei der weltweit größten Modellbahnanlage

Fallstudien  –  70 Kommentare

Eine Megacity der besonderen Art befindet sich mit dem Miniatur Wunderland in der Hamburger Speicherstadt. heise Developer lässt dessen Chefentwickler Gerrit Braun über die zum Einsatz kommende Software berichten, die überraschenderweise mit Delphi erstellt wurde.

Laut dem Guinness-Buch der Rekorde handelt es sich beim Miniatur Wunderland um die größte Modellbahnanlage der Welt. Hier donnern nicht nur Hunderte von Zügen über Brücken und durch Tunnel, sondern es fährt auch eine unübersehbare Schar von Modellautos durch Städte und Dörfer. An roten Ampeln halten sie an, sie fahren weiter, wenn das Licht auf Grün springt, sie biegen um Ecken und beachten die Vorfahrt anderer Fahrzeuge. In den Häfen und Kanälen schwimmen Schiffe, und richtig große Pötte legen an den Kais an. Auf dem Flughafen heben im Minutenrhythmus Flugzeuge ab, und wenn das Space Shuttle im regelmäßigen Turnus zu einer Notlandung ansetzt, rückt die gesamte Flughafenfeuerwehr zum Großeinsatz aus.

Wie in einer realen Megacity ist es die Software, die im kleinen Hamburger Pendant den Betrieb am Laufen hält. Die Autos finden mithilfe von Mikroprozessoren und Algorithmen ihren Weg, die Fahrpläne der Züge werde über ein Programm gesteuert. Verkehrsampeln, Weichen, Signale – sie alle gehorchen den Anweisungen der Software. Darüber hinaus versuchen weitere Programme, in den 6400 Quadratmeter großen Hallen die Besucherströme und das Klima zu regeln. Und auch die kaufmännischen Belange der Anlage mit ihren mehr als 300 Mitarbeitern und 1,2 Millionen Besuchern jährlich werden per Software erfasst und bearbeitet.

Alle Programme zusammen umfassen etwa 620.000 Lines of Code (LoC), die der Autor des Artikels und Mitgründer des Miniatur Wunderland in weiten Teilen allein entwickelt hat. Mit Ausnahme der internen Steuersoftware in den Autos und Flugzeugen wurde die gesamte Software mit der Entwicklungsumgebung Delphi konzipiert, geschrieben, kompiliert und getestet.

Der Grund dafür ist recht trivial: Während seines Studiums zum Wirtschaftsinformatiker in den 90er-Jahren lernte der Autor, mit C/C++ und Pascal zu programmieren, wobei letzteres zu seinem Favoriten wurde. Er kam so ganz zwanglos zum damals wie heute in der Pascal-Welt dominierenden Entwicklungssystem Delphi.

Nahezu alles ist selbst erstellt; zugekauft wurde lediglich die Railware-Software zur Steuerung der Züge. Aber auch diese wurde mit Delphi entwickelt. Mit einem Anteil von 120.000 LoC nimmt Railware den kleineren Teil der Gesamtsoftware ein, der deutlich größere Teil entfällt auf die Steuerung des Straßen-, Wasser- und Luftverkehrs in der Modellanlage sowie auf die der internen betrieblichen Prozesse.

Steuerung der Fahrzeuge

In der Modellwelt tummeln sich über 8000 Autos – vom PKW bis zum Feuerwehr-Einsatzfahrzeug und zum Schwertransporter; etwa 300 davon sind fahrtüchtig. Mehrere PCs in der Anlage steuern die Fahrzeuge. Die Software enthält mehr als 25.000 Einzeldaten, die nicht in einer Datenbank strukturiert abgelegt, sondern als Flat File vorgehalten werden, womit sich eine erheblich bessere Echtzeit-Performance erzielen lässt.

Mehr als hundert Rechner teilen sich die Aufgaben, die im Miniatur Wunderland anfallen. Für den Betrieb der Anlage sind Fahrzeugsteuerungs-, die Eisenbahn- und Lichtrechner besonders kritisch (Abb. 1).

Über die Streckenführung einschließlich Vorfahrtregeln, Geschwindigkeitsbegrenzungen und Zulässigkeit des jeweiligen Streckenabschnitts nach verschiedenen Fahrzeugkategorien. Zwanzig Mal pro Sekunde berechnet die Software, welche Aktion jedes Fahrzeug als Nächstes tun soll, und übermittelt diese Daten über eine Infrarotverbindung an das Auto. Weil die Verbindung regelmäßig abreißt, wenn das Fahrzeug durch ein Hindernis abgeschattet wird, wird im Miniatur Wunderland über alternative Kommunikationstechniken nachgedacht, etwa per Funk oder Induktion. Die Streckenführung der kleinen Autos erfolgt durch einen magnetisierten Draht unter der Fahrbahn; an Abzweigungen liegt unsichtbar eine Weiche unter der Fahrbahn, die der Computer schaltet.

Die Fahrzeugsteuerung kontrolliert alle Autos, Flugzeuge und Schiffe mit Infrarot-Signalsendern. Die Rückmeldung erfolgt über Kontakte in der Straße (Abb. 2).

In den Fahrzeugen befindet sich ein Mikroprozessor, der die Infrarotbefehle in Funktionen umsetzt. Unter anderem steuert er Fahrlicht, Bremslicht, Fahrtrichtungsanzeiger, Geschwindigkeit, Ladezustand des Akkus und einiges andere mehr. Die Software für die Steuerung der Fahrzeuge umfasst etwa 162.000 LoC.

Die Stadt schläft nie

Häuser, Straßen, Fahrzeuge, Start- und Landebahnen werden per LEDs beleuchtet. Insgesamt kommen dabei ungefähr 300.000 Miniatur-Leuchtkörper zusammen, die mit Software gesteuert sind. Allerdings nicht jede LED einzeln – viele Leuchten werden nach logischen Zusammenhängen gruppiert und zusammengefasst. Beispielsweise werden in den Verkehrsampeln die jeweils zusammengehörigen und einander gegenüber liegenden Rot-, Gelb- und Grünlichter gemeinsam angesteuert. Dennoch kommt die Software auf 20.000 separat anzusprechende LED-Gruppen. Außer den LEDs in der Modellanlage steuert das Programm die Beleuchtung in der Halle. Dabei wird der Tag-Nacht-Rhythmus im 15-Minuten-Takt durchfahren.