Die Software hat die Aufgabe, die oben beschriebenen Anforderungen und Gegebenheiten zu berücksichtigen und Funktionen zur Bedienung des Targets zur Verfügung zu stellen.
Für den Ist-Werte der Höhe werden die 12 Datenbits ausgelesen. Dann
wird diese Zahl für die Höhe in eine Spannung zwischen 0 und 10 Volt
umgerechnet, damit sie mit dem Wert auf einem an der Steuerung
angebrachten Meßinstrument vergleichbar ist. Für den Winkel werden
die Datenbits in einen Wert zwischen umgerechnet.
Das Einstellen geschieht in folgenden Schritten:
Nun müssen zwei Anforderungen beachtet werden. Erstens möchte der
Benutzer über den aktuellen Stand der Targetbewegung informiert
werden, da diese einige Minuten dauern kann. Zweitens soll der
Steuerungsprozeß aber in der Lage sein, schon weitere Aufträge (wie
z.B. Winkelsteuerung, Höhe auslesen oder neue Höhe setzen) zu
verarbeiten. Um dem gerecht zu werden, wird der Vorgang in mehrere
Schritte zerlegt, zwischen denen der Prozeß bereit ist, neue
Nachrichten zu empfangen. Dafür sind hier zwei getrennte Aktionen im
Einsatz (siehe Tab. ).
Wenn der Benutzer einen Befehl zum Setzen eines Wertes gibt, werden
von der ersten Aktion die obigen Schritte ausgeführt. Dann verschickt
diese Aktion eine sogenannte Timer-Nachricht an die zweite Aktion,
die mit einigen Sekunden Verzögerung eintrifft. Diese zweite Aktion
schickt erst eine Statusmeldung über den momentanen Stand der
Bewegung an den opcon-Porzeß. Dann überprüft sie, ob die Position
schon erreicht wurde. Ist dies nicht der Fall, wird wiederum eine
Timer-Nachricht aufgesetzt und damit nochmals gewartet. Wenn die
Position erreicht ist, ist der Vorgang abgeschlossen (siehe
Abb. ).
Die Höhensteuerung besteht abweichend davon aus drei Schritten, da es
noch die Anforderung gibt, die Position immer von unten anzufahren.
Zuerst wird also eine Position etwas unterhalb der geforderten
angefahren. Man wartet, bis diese erreicht ist, und dann wird die
endgültige Position aufgesucht (siehe Abb. ).
Durch diese Vorgehensweise ist es möglich, eine neue Anforderung zu bearbeiten, während die alte noch nicht abgeschlossen ist. Jeder Vorgang erhält nämlich eine eindeutige Vorgangsnummer, und das Programm merkt sich die aktuelle Vorgangsnummer. Kommt ein neuer Auftrag, wird dieser sofort ausgeführt und die aktuelle Vorgangsnummer erhöht. Das Target bewegt sich sofort zum neuen Ziel. Die alte Aktion wird abgebrochen, da Timer-Nachrichten mit veralteten Vorgangsnummern nicht mehr bearbeitet werden.