www.delphientwickler.de

Du bist Delphientwickler und suchst nach Projekten?

 

Sie suchen eine Firma zur Unterstützung oder Betreuung Ihres Delphi Projektes?
Klicken Sie hier!

Delphi steuert eine ganze Welt

Diese E-Mail-Adresse ist vor Spambots geschützt! Zur Anzeige muss JavaScript eingeschaltet sein!, 04.08.2017

miniatur



In Hamburg, direkt an der Elbe lockt die Touristenattraktion Nummer 1 jährlich weit über 1 Millionen Besucher in die Räume des Miniatur Wunderlandes. Auf einer Fläche von ca. 7.000 Quadratmeter ist in etwa 760.000 Arbeitsstunden eine unvergleichliche Miniaturwelt entstanden.

Im Juli 2000 wurde die Idee, die größte Modelleisenbahn der Welt zu bauen, in der Alpenmetropole Zürich, in einem Modellbahnshop von Frederik Braun geboren.

Die Umsetzung des Projekts durch die Zwillingsbrüder Gerrit und Frederik Braun sowie Stephan Hertz begann dann im Dezember 2000.

Neben der Anforderung an die 100 prozentige Verfügbarkeit der Systeme besteht eine große Herausforderung darin, die verschiedenen Teile der Anlage und ihre Teilsysteme simultan zu steuern. Eine weitere Anforderung ist beispielsweise die Bewegung der Autos mit den Lichtsignalen der Ampeln zu synchronisieren. Gesteuert werden nicht nur die ca. 1040 Züge, sondern auch noch die über 385.000 Lichter, sowie die ca. 9.250 Autos, Flugzeuge und Schiffe.


Wie in einer realen Megacity ist es die Software, die im kleinen Hamburger Pendant den Betrieb am Laufen hält. Innerhalb des Wunderlandes gibt es eine breitgefächerte Software-Landschaft, welche seit Beginn von den Gründern mit Delphi entwickelt wird und mittlerweile knapp eine dreiviertel Million Zeilen umfasst. Der Grund dafür ist recht trivial: Während seines Studiums zum Wirtschaftsinformatiker in den 90er-Jahren lernte Gerrit Braun, 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 dominierende Entwicklungssystem Delphi.

Mit Delphi entwickelt wurden u.a.:

  • Die Steuerung aller Fahrzeuge, die für die Bewegungen der Autos, Flugzeuge und Schiffe zuständig ist und deren Routen plant und überwacht. Die Software wurde so entworfen, dass es sich nicht um einen einfachen sequenziellen Bewegungsablauf handelt, sondern dass das Delphi-Programm für jedes einzelne Fahrzeug ein „Gehirn“ zur Verfügung stellt. Für dieses „Gehirn“ werden für einen reibungslosen Ablauf ca. 25.000 Parameter benötigt. Beispiele hierfür sind: Strecken mit milimetergenauen Maßen, Steigungen, Kurvenradien, Vorfahrtsregeln, Ampeln (komplexe, grenzenlose Ampelsteuerungen mit Abbiegern, Grüne Welle, Tag-/Nachtschaltung, usw...), Bahnübergängen, Abzweigungen, Rückmelder, Radarfallen, Rotlichtblitzer, Geschwindigkeitsmessung, Fahrzeugtypenerlaubnisse u.v.m.
Darüber hinaus kontrolliert das Carsystem auch Ereignisse wie zum Beispiel Feuerwehr-Einsätze, für die die Fahrzeuge zum jeweiligen Einsatzort dirigiert werden und auf ihrem Weg dorthin Vorrang vor anderen Fahrzeugen erhalten. Gesteuert werden die Autos dabei von einem „kontrollierten Zufall“, der dafür sorgt, dass Autos verschiedenste Routen nutzen und so zu einem lebendigen Bild der Anlage beitragen. Dennoch werden Regeln eingehalten – so gilt im Wunderland z.B. auch für die kleinen Autos das Rechtsfahrgebot.

Um alle Parameter verarbeiten zu können, wurde für jedes Fahrzeug ein Prozess eingerichtet, der in der Sekunde 20mal die momentane Gesamtsituation berechnet.

Ausgelegt ist dieses System zur Steuerung von 65.000 Fahrzeugen, wobei sich momentan nur ca. 8.000 Fahrzeuge auf der Anlage tummeln.

  • Die Zugsteuerung „Railware“. Sie wurde nicht im Wunderland entwickelt, ist aber auch ein Delphi-Programm.
Railware übernimmt die komplette Steuerung des Zugverkehrs  aller Anlagen-Abschnitte und dabei selbstverständlich nicht die geringste Verspätung bei den Zügen zulässt.

Besonders anspruchsvoll ist hierbei das intensive Zusammenspiel von Hard- und Software, da die Software auf detaillierte Rückmeldungen seitens der Züge angewiesen ist, wo welcher Zug sich jeweils in welchem Streckensegment aufhält. Nur so ist gewährleistet, dass besonders bei einer engen Taktung des Zugverkehrs ein störungsfreier Zugverkehr erfolgt.

  • Die Lichtsteuerung
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 der Software gesteuert werden. 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.

Eigentlich werden solche umfangreichen Projekte wie im Miniatur Wunderland von einem großen Entwicklerteam nach genau festgelegten Prozessen erarbeitet. Im Miniatur Wunderland ist das nicht so. Gerrit Braun hat das meiste selbst programmiert. Die Dokumentation der Software wurde überwiegend mit Inline-Kommentaren realisiert – eine Vorgehensweise, die in einem größeren Team so nicht möglich ist.

Gerrit Braun legte dabei immer großen Wert auf die Wiederverwendbarkeit seines Codes. Im Lauf der Jahre ist so eine große Sammlung von Funktions- und Prozeduraufrufen entstanden. Die Prozeduren selbst wurden so entwickelt, dass sie sich überwiegend durch die Übergabe von Parametern anpassen lassen. Neue Routinen und Programmerweiterungen werden auf einem gesonderten Entwicklungsrechner geschrieben und in einer speziellen Umgebung getestet. Hierzu wurde ein Simulator entwickelt, über den man sämtliche Funktionen testen kann. Für das Debuggen werden die entsprechenden Funktionen von Delphi genutzt.

Auch für die Versionierung begnügt er sich mit den in der Entwicklungsumgebung enthaltenen Bordmitteln.

Gerrit verwendet nur eine kleine Auswahl der Tools, die die Delphi-Community zur Unterstützung von Programmierern bereithält. Probleme mit dem Entwicklungssystem oder der Umsetzung der Algorithmen hat er immer über die einschlägigen Delphi-Foren lösen können.

Die wichtigsten Gründe, warum er Delphi über all die Jahre die Treue gehalten hat, liegen in dessen Vielseitigkeit und Konstanz. So hat er bisher für alle von ihm entwickelten technischen Funktionen die entsprechende Unterstützung in den Funktionsbibliotheken von Delphi gefunden. Genauso wichtig ist die verlässliche Unterstützung älterer Versionen und selbst entwickelter Funktionsbibliotheken. So konnten die frühen Versionen der Software, die noch in Turbo Pascal entwickelt wurden, ohne Probleme unter den neueren Versionen von Delphi übernommen werden.

Derart umfangreiche Softwarebestände lassen sich ohne hochwertige, die Produktivität steigernde Tools nicht realisieren. Delphi stellt die nötigen Werkzeuge bereit, um nicht nur große Programme zu schreiben, sondern auch welche mit komplexen Funktionen. Das gilt für den gesamten Entwicklungsprozess von der Konzeption über die Codegenerierung und den Test bis zum Debuggen. Die Entwicklungsprozesse im Wunderland sind sicherlich in mancherlei Hinsicht etwas undogmatisch und lassen sich nicht unbeschränkt auf größere Entwicklungsteams übertragen. Aber die täglich nachprüfbare Tatsache, dass das alles reibungslos funktioniert, spricht unzweideutig für die Solidität der Software und auch der verwendeten Entwicklungsumgebung.
Cookies erleichtern die Bereitstellung unserer Dienste. Mit der Nutzung unserer Dienste erklären Sie sich damit einverstanden, dass wir Cookies verwenden.
Weitere Informationen Ok