Hauptseminar Software-Fehler im Wintersemester 2002/2003
Prof. Thomas Huckle
Karin Katheder, Thomas Off, Bin Feng
Startseite
Mars Climate Orbiter
Voyager II
Mariner I
Phobos I und II
Quellen

Mariner I

Bild Mariner I Missionsziele:Die Sonde Mariner 1 sollte die erste amerikanische Raumsonde sein, die einen anderen Planeten untersucht, nämlich unseren Schweszterplaneten Venus.
Start der Mission:22. Juni 1962


Diese Mission scheiterte jedoch bereits wenige Minuten nach dem Start am 22. Juli 1962, als ein Sicherheitsoffizier die Rakete, die die Sonde ins All tragen sollte, wegen zu starker Abweichung vom Kurs und einer daraus resultierenden Gefahr für Schiffahrtslinien zerstörte.

Aus Analysen der Telemetrie-Daten konnten NASA-Ingenieure später die Ursache für die Kursabweichung feststellen: Die Richt-Antenne der Atlas-Rakete arbeitete unzuverlässig und kurz nach dem Start verlor die Rakete das Steuersignal der Bodenkontrolle, das die notwendigen Steuerbefehle übertrug. Ein solcher Fall war in der Konstruktion der Rakete vorgesehen gewesen und so schaltete die Rakete auf Steuerung durch den Bordcomputer um. Ein Fehler in diesem Steuerprogramm führte jedoch zu falschen Steuerbefehlen, die die Kursabweichung verursachten.
Ein NASA-Untersuchungsbericht vom 27. Juli 1962 über den Fehler sowie ein Artikel in der New York Times vom 28. Juni 1962 mit dem Titel "For Want of Hyphen - Venus Rocket Is Lost" nennen das Fehlen eines Bindestrich oder Trennungszeichens ("missing hyphen") als Ursache für den Fehler. Für die genaue Bedeutung des "hyphen" gibt es jedoch mehrere Versionen, die im Folgenden erläutert werden sollen.

Datenfehler

Nach dem erwähnten untersuchungsbericht der NASA war der "hyphen" ein Trennzeichen in einem Datenblock innerhalb des Steuerprogramms, der anscheinend fehlerhaft codiert oder übertragen worden war.

Formelfehler 1

Eine weitere Erklärung für die Fehlfunktion des Steuerprogramms stammt von einem ehemaligen NASA-Mitarbeiter. Ihm zufolge wurde das Steuerprogramm von einem Mthematiker in Formelschreibweise entwickelt. Dabei verwendete er auch eine boolesche Variable R und zwar sowohl positiv als auch in negierter Form, d.h. in der Form R. Bei der Übertragung des Programms machte der Programmierer den Fehler, den Strich über dem R zu übersehen und so wurde nicht der nötige negierte Wert von R im Programm verwendet, was schließlich zu den falschen Steuerbefehlen führte. Den erwähnten "missing hyphen" könnte man auch so interpretieren.

Formelfehler 2

Eine dritte Variante macht den "hyphen" ebenfalls zu einem Überstrich, allerdings in der physikalischen Bedeutung des Durchschnitts- oder Mittelwertes eines Datums. Diese Version stammt aus dem Buch "Beyond the Limits -- Flight Enters the Computer Age" von Paul Ceruzzi. Darin liefert er folgende Erklärung:
Die Flugbahn der Atlas-Rakete wurde von zwei Radarsystemen kontrolliert: einem für die Messung der Geschwindigkeit und einem zweiten für die Bestimmung von Entfernung und Neigungswinkel. Im Kontrollzentrum berechnete ein Computer aus diesen Daten dann die notwendigen Steuerbefehle für die Rakete. Die beiden Radarsysteme liefen mit einem Zeitunterschied von 43 Millisekunden. Um diese Zeitdifferenz kompensieren zu können verwendete der Computer Durchschnittswerte aus früheren Berechnungen, nicht die Rohdaten aus dem Radarsystem. Das verwendete Formelzeichen dafür war "R dot bar n" (dabei steht R für den Radius, der Punkt für die erste Ableitung, der Überstrich für Durchschnittswert und das n für ein Inkrement). Der Überstrich war aber aus Versehen aus den handgeschriebenen Gleichungen ausgelassen worden, so dass der Computer nun unvorhergesehene und sprunghafte Geschwindigkeitsänderungen registrierte, die er mit Steuerbefehlen zu kompensieren versuchte.

Von diesen drei Erklärungen erscheinen uns alle drei gleichermaßen logisch und nachvollziehbar, auch wenn für die dritte Version die ausführlichste Erklärung vorliegt und zur ersten Version nur wenig Material vorhanden ist. Allerdings wird diese Version im offiziellen NASA-Untersuchungsbericht als Ursache angeführt.

Im folgenden soll noch eine andere mögliche Erklärung für den Computerfehler erwähnt werden, auch wenn diese recht unwahrscheinlich erscheint:

Der FORTRAN-Fehler

Eine weiter Erklärung liegt in einem angeblichen Fehler eines FORTRAN-Programms. Dabei geht es um folgendes Code-Fragment:
DO 3 I = 1.3P
Richtig hätte das Code-Stück lauten sollen:
DO 3 I = 1,3P
Der Fehler bestand also darin, dass der Programmierer anstatt eines Kommas einen Punkt gesetzt hatte. Da FORTRAN aber keine reservierten Worte kennt und Leerzeichen ignoriert werden, interpretierte der Compiler das Statement als
DO3I = 1.3P,
d.h. als das Setzen einer Variable mit dem Namen DO3I auf den Wert 1.3.
Allerdings ist diese Version nach Aussagen eines ehemaligen NASA-Mitarbeiters sehr unwahrscheinlich, da seinen Angaben nach FORTRAN in den Computern der Bodenkontrolle erst ab dem Jahre 1978 eingesetzt wurde. Er vermutet, dass ein FORTRAN-Programmierer, der den besagten Fehler gemacht hatte, die Aussagen über einen Ein-Zeichen-Fehler im Mariner-Steuerprogramm in diesem Sinne interpretierte.

Quellen: [5], [6], [7], [8]