Computer geleiten die "Columbia" sicher um die Welt, Teil 2:

Space-Software - komplexen als die meisten Programme am Boden

16.10.1981

Fünf eng kooperierende Bordcomputer befähigen die Space-Shuttle-Crew, erstmals alle für die Reise wichtigen Berechnungen unmittelbar an Bord durchfuhren zu lassen (siehe Teil 1 dieser Serie). Doch nackte Hardware allein hilft nicht viel - erst die neu erarbeitete Space-Software macht aus dem toten Konglomerat von Prozessoren, Speichern und Terminals jenes leistungsstarke Gesamtsystem, das ein wesentlicher Schlüssel zum Gelingen der Columbia-Erdumrundungen samt perfekter, sanfter Landung wurde.

Die Columbia-Bordrechner verfügen laut IBM nicht nur über die "most sophisticated" Programme, die je für eine Weltraummission geschrieben worden sind, auch die meisten "irdischen" Computerprogramme dürften kaum die Komplexität aufweisen, die die neue "Weltraum-DV" erreichte. Immerhin dienen diese Routinen ja zur halbautomatischen Raumtransporter-Steuerung, angefangen bei den Tests vor dem Start bis zum endgültigen Stillstand nach der Landung.

Die Bord-Computerprogramme werden zunächst ganz konventionell in zwei Gruppen gegliedert: Das Betriebssystem, das die Computeroperationen steuert, und die Applikations-Software, also die Beschreibung der einzelnen vom Anwender aufzurufenden Nutzprogramme. Während ersteres in jedem der vier Computer resident ist, bestehen die Anwendungsprogramme aus vier Segmenten, die jeweils auf Anforderung des Computers in den Speicher gebracht werden.

Systemprogramme

Wie schon in Teil 1 erwähnt, sind die Programme so gestaltet, daß jeder Computer in kritischen Phasen simultan die gleichen Inputs erhält, die gleichen Berechnungen durchfuhrt und daher auch identische Outputs liefern muß; das wird 250- bis 350mal pro Sekunden durch eine Synchronisationsroutine sichergestellt. Außerdem wird alle Sekunden aus den Flugsteuerungs-Kommandodaten ein Summenwort generiert und sicherheitshalber mit den Summenworten der "Kollegen" verglichen. All diese Multi-Computer-Techniken sind für die Raumfahrt etwas völlig Neues.

Das residente Betriebssystem hat die Aufgabe, für ein gegliedertes Realtime-System die jeweils benötigten Programmanagementfunktionen und Einheiten bereitzustellen. Dazu umfaßt es selber drei Untergruppen von Programmen.

Das erste, das Flugcomputer-Betriebssystem, antwortet auf Anwendungsaufrufe und Interrupts und besorgt die asynchrone, multi-prioritätsgesteuerte Verarbeitungssteuerung. Es überwacht die wichtigsten Systemparameter und teilt fallweise die benötigten Ressourcen zu. Prozesse werden von ihm zu bestimmten Zeiten oder nach bestimmten Zeitintervallen sowie bei spezifischen Ereignissen initiiert oder reaktiviert.

Auch überwacht es Datentransfer und Requests je Priorität, teilt Kanäle zu und wird bei der Entdeckung von Interface-Fehlern aktiv. Selbstverständlich obliegt ihm auch die Übernahme neuer Programme in die Speicher bei gleichzeitiger Beachtung der Schutzvorkehrungen für gespeicherte Daten und Dienstprogramme.

Die zweite Gruppe, Anwenderinterface genannt, stellt die Befehle bereit, die zum Abarbeiten von Kommandos und Abfragen der Besatzung oder der Bodenstation benötigt werden. Sie können dazu jedes beliebige Anwenderprogramm aufrufen. Ferner stellen diese Programme der zweiten Gruppe die auszugebenden Daten bereit und bereiten sie für die Sichtgeräte oder für die Übertragung zur Bodenstation auf.

Schließlich noch die Systemsteuerungsprogramme, die entsprechend den Anforderungen der Anwender und nach Maßgabe vorher festgelegter Tabellen die Mehrcomputer-Operationen arrangieren.

Die Anwenderprogramme gruppieren sich in vier Sätze aus vielfältigen Moduln, was kurzfristige Veränderungen erleichtert. Geschrieben wurden die Programme in der fast zehn Jahren alten Avionik-Spezialsprache HAL/S; die einzelnen Gruppen betreffen erstens Kontrolle, Navigation und Steuerung, zweitens das Shuttle, Systemmanagement, drittens Nutzlast-Programme und viertens den Check der Raumfähre. Die einzelnen Programme sind nach ihrer funktionellen Gliederung im Speicher abgelegt; wird eine bestimmte Funktion aufgerufen, erfolgt jeweils eine der Aufgabe entsprechende Speicher-Rekonfiguration.

Die Programmgruppe Kontrolle, Navigation und Steuerung umfaßt Funktionen, die beim Start, beim Erreichen der Umlaufbahn, beim Manövrieren und bei der Rückkehr zum Boden benötigt werden. Die Steuerung des Flugs läuft in Rechenzyklen ab, die jeweils auf automatisch oder von der Mannschaft eingegebene Kommandos sowie auf die von den einzelnen Meßfühlern kommenden Informationen antworten.

Was die hier besprochene Programmgruppe leistet, läßt sich in sechs Abschnitte gliedern. Da werden einmal Position und Geschwindigkeit des Raumfahrzeugs (sowie die entsprechenden Soll-Werten) genau ermittelt. Zum Erreichen einer definierten Änderung der Position oder der Lage im Raum werden exakte Leit-Kommandos errechnet, die ihrerseits entsprechende Steuerbefehle bewirken, mit denen nun die einzelnen Steuerruder- beziehungsweise -düsen aktiviert werden.

Zu den weiteren Aufgaben dieser Programme gehört die Information der Besatzung über den Status der Subsysteme und über die wichtigsten Flugdaten sowie die Entgegennahme und Verarbeitung von Befehlen und Abfragen seitens der Besatzung oder der Bodenstation.

Außerdem wird der Zustand der Bordsysteme überwacht und versagende Komponenten werden vom weiteren Gang der Handlung ausgeschlossen. Auch werden von den Programmen die einzelnen Systemfunktionen entsprechend den aktuellen Anforderungen und Plänen durchexerziert.

Unsinnige Daten ausgeblendet

Ohne zu sehr in die Details gehen zu wollen, sei hier immerhin noch vermerkt, daß die Navigationsprogramme so ausgelegt sind, daß die eingehenden, vielfach redundaten Daten der navigatorischen Sensoren auf ihre Gültigkeit hin überprüft und gegebenenfalls defekte Sensoren, die unsinnige Daten liefern, ausgeblendet werden können.

Zur sinnfälligen Anzeige der wichtigsten Informationen über Zustand oder Position des Raumfahrzeuges dienen eigene Programme, die in der Display-Support-Gruppe zusammengefaßt sind und die beispielsweise warnen, wenn bestimmte Drücke unter kritische Grenzen gefallen sind. In bestimmten Situationen leuchten dann auch die vorher definierten, zugeordneten "Warnleuchten" auf den Bildschirmen auf.

Je nach Anforderung seitens der Besatzung, oder ausgelöst durch ein äußeres Ereignis, sorgt ein weiteres Programm dafür, daß die benötigte Bildschirmdarstellung korrekt eingeleitet, durchgeführt und wieder beendet wird. Dieses Programm ("function sequencing program") ruft auch weitere Programme auf, die zur Antwort auf zyklische (oder auch nicht sich wiederholende) Ereignisse benötigt werden.

Programm fürs Türöffnen

Unter dem Rubrum "Systems Management" lassen sich Programme zusammenfassen, die aus einlaufenden Rohinformationen dann beispielsweise den Brennstoffvorrat, die Wasser-, Sauerstoff- und Sickstoffreserven oder auch die verbleibende Bandspeicher-Kapazität errechnen. Auch stellen sie der Reihe nach alle Einzelbefehle bereit, die beispielsweise zum Öffnen und Schließen der Laderaum-Tür, zum Überwachen des Kühlsystems, zum Einrichten der Antennen oder auch zum Steuern des Manipulatorarms benötigt werden.

Auch hier wird automatisch wieder dafür gesorgt, daß auch die Bildschirme in der Pilotenkanzel den Astronauten stets einen klaren Überblick über das aktuelle Geschehen an Bord liefern.

Ähnliche Programme, jeweils zugeschnitten auf die Anforderungen der momentanen Nutzlast, werden auf den kommenden Flügen die Handhabung der einzelnen Nutzlast-Pakete ermöglichen.

Datenfluß zum Boden

Schließlich als letzter Software-Brocken noch die Programme zum Überprüfen des Raumfahrzeugs am Boden und während der Reise. Sie sorgen für die Kontrolle des Datenflusses an Bord und zu den Bodeneinheiten, unterstützen das Lesen und Modifizieren des Massenspeichers, des Hauptspeichers und der Speicher der Anzeigeeinheiten und ermöglichen Änderungen im üblichen Datenfluß sowie bestimmte Testprozeduren.

Weitere Programme aus dieser Gruppe liefern Kommandos und erwartete Reaktionen zum Zweck des Testens von Komponenten wie die Bus-Terminal-Einheit, die Bildschirme im Cockpit und dergleichen mehr. Und schließlich gibt es noch eine Reihe Programme, mit denen Test-Ingenieure Subsysteme des Raumfahrzeugs überwachen und prüfen können.

Sie gestatten beispielsweise die Erzeugung definierter Testsignale für bestimmte Test-Subsysteme und können vorher festgelegt Subsysteme automatisch in vorgegebenen Intervallen kontrollieren und die Resultate abspeichern oder auf Wunsch auch anzeigen.

(Fortsetzung im nächsten Heft)