Im Rahmen der vorliegenden Arbeit wurden Gerätetreiber zur
Positionierung der Targets und der Raumwinkel-Kollimatoren der
Drei-Spektrometer-Anlage erstellt. Der Targettreiber kann die
verschiedenen Targets im Elektronenstrahl mit einer
Höhen-Genauigkeit von und einer Winkel-Genauigkeit von
positionieren. Die Kollimatoren kann der
Kollimatortreiber mit einer Genauigkeit von
einstellen.
Die Target- und die Kollimator-Elektronik sind über Digital-I/O-Schnittstellen an die Steuerungsrechner angeschlossen. Eine am Institut entwickelte Multiplexer-Elektronik kann mehrere Kollimatoren und weitere Geräte an einem Digital-I/O-Modul betreiben. Für den Betrieb der Digital-I/O-Schnittstellen und des Multiplexers wurde ein Schnittstellenumsetzer programmiert. Die Dienste der Schnittstelle stehen mit diesem Treiber netzwerkweit auf allen Rechnern zur Verfügung.
Währen der Implementierung der oben genannten Gerätetreiber wurde die Zusammenarbeit der Digital-I/O-Schnittstellen, des Multiplexers und der Steuerungsgeräte untersucht. Alle Gerätetreiber wurden intensiv getestet und bei den Strahlzeiten eingesetzt.
Bei der Erstellung der Treiber zeigte sich, daß die vorhandene Programmierumgebung in der Funktionalität unzureichend und schlecht handhabbar ist. Daher wurde für diese und für zukünftige Gerätetreiber eine neue, einheitliche Programmierumgebung geschaffen. Alle eingesetzten Treiber stellen die Funktionalität der Geräte als Dienste auf den Rechnern zur Verfügung. Diese Dienste bieten Aktionen zum Zugriff auf physikalischer Größen wie z.B. das Auslesen und Einstellen von Spannungen an. Alle Gerätetreiber können untereinander über das Message-Passing-System MUPIX Nachrichten austauschen. Mit Hilfe der Programmiersprache C++ und einem objektorientierten Gerätemodell wurden Routinen erstellt, die alle diese Eigenschaften dem Programmierer von Gerätetreibern für seine Programme zur Verfügung stellen. Damit können weitere Gerätetreiber für künftige Experimente schnell entwickelt werden.
Um die große Anzahl der Gerätetreiber koordiniert starten, überwachen und auch beenden zu können, wurde in einem weiteren Teil dieser Arbeit ein neues Prozeß-Kontroll-System programmiert. Das Prozeß-Kontroll-System sorgt dafür, daß vor dem Start eines Gerätetreibers alle Treiber gestartet werden, von denen dieser Gerätetreiber abhängt. Beim Beenden eines Gerätetreibers werden auch alle Treiber beendet, die dann nicht mehr benötigt werden. Außerdem wird der Experimentator durch eine Fehlermeldung informiert, wenn ein Treiber aufgrund einer Fehlerbedingung ungewollt beendet wird, damit er sofort geeignete Maßnahmen ergreifen kann und nicht erst aktiv wird, wenn ein Problem aufgetaucht ist. Mit dem Einsatz dieses Kontroll-Systems konnte erstmals das Starten und Stoppen aller Gerätetreiber überwacht und nachvollzogen werden. Das System bietet dem Experimentator eine wesentlich größere Flexibilität bei der Auswahl der zu startenden Gerätegruppen. Gleichzeitig ist auch die Sicherheit vor Fehlbedienung gewachsen.
Die erstellte Software hat sich bei zahlreichen Experimenten bewährt und ist fester Bestandteil der Experimentsteuerung geworden. Sie trägt zur Vollständigkeit und zur Sicherheit des gesamten Experiment-Kontroll-Systems bei. Damit kann sich der Experimentator wesentlich auf die Durchführung der Experimente konzentrieren. Durch die große Flexibilität des Experiment-Kontroll-Systems ist es möglich, es auch in anderen Arbeitsgruppen zur Steuerung von Experimenten an MAMI einzusetzen.