Hardwareansteuerung

Im Rahmen meiner Tätigkeit an der GKSS habe ich eine Reihe von kleinen Objekten geschrieben, die es erlauben, bestimmte, an der GKSS verwendete Hardware von IDL aus anzusprechen.

Ulbricht-Kugel

Eine Ulbricht-Kugel dient zum Erzeugen diffuser Strahlung aus gerichteter Strahlung. An der GKSS soll sie vor allem dazu eingesetzt werden, in Analogie zum EMVA Standard 1288 diverse Parameter der von uns eingesetzten Kameras zu überprüfen.

Die Kugel verfügt über eine motorisierte Blende IBM65 und ein ebenfalls motorisiertes Filterrad FRM65 der Firma OWIS GmbH. Beide Schrittmotoren werden mittels einer Beckhoff KL2541 mit von der GKSS speziell angepasster Firmware über das Modbus Protokoll angesprochen; darüber hinaus ist ein AD-Wandler KL3162 zur Überwachung der Helligkeit in der Kugel und eine Digital-Ausgangsklemme KL2404 für die Ansteuerung externer Hardware in die Steuerung integriert.

Die von mir zur Ansteuerung der Ulbricht Kugel entwickelte Software stellt neben einigen Hilfsroutinen (bytarr2int.pro, int2bytarr.pro, word2bytarr.pro) insbesondere eine generische Klasse zur Kommunikation über Modbus (modbus__define.pro) sowie drei spezifisch auf die von der GKSS angepassten Klemmen abgestellte Klassen (gkss2404__define.pro, gkss2541__define.pro, gkss3162__define.pro). Darüber hinaus zeigt ein Beispielskript (mess1.pro) die Verwendung der jeweiligen Klassen.

Kamera SI-4000F-M

Die SI-4000 ist eine längst vergessene Kamera von Silicon Imaging mit einem 24.6x24.6mm2 Chip, einer Auflösung von 2048x2048pxl2, 12bit Grauwertauflösung und einem CameraLink Interface. Um die Kamera von IDL aus ansprechen zu können, habe ich eine kleine Routine grab_si_4000.c geschrieben, die wie folgt in IDL eingebunden werden kann:

; link grab_si_4000.so to IDL
linkimage, "grab_si_4000", "grab_si_4000.so", 1, "grab_si_4000", max_args=1, min_args=0
; grab an image
I = grab_si_4000(exposure time)

Da während der Arbeiten an dem Code leider ein defekt am Interface-Board der Kamera entwickelte, ist der Code in einem nur Halbfertigen Zustand; auf Anfrage gebe ich ihn jedoch gerne weiter.

Piezo Stage

Zusätzlich zu den beiden oben beschriebenen Routinen habe ich noch ein sehr einfaches IDL-Interface für ein über eine Seriell-über-TCP Schnittstelle angesprochenens PIHera® Precision Piezo Linear Nanopositioning System P-621.1CD geschrieben. Hiermit ist es möglich, direkt von IDL aus Befehle wie 'MOV A33.' oder Anfragen wie 'POS? A' an den P-621.1CD zu senden und dessen Antworten auszulesen.