Datenerfassung und -auswertung mit LabVIEW im Laserlabor des Instituts für Allgemeine Physik

Reinhard Schnitzer und Wolfgang Husinsky
Institut für Allgemeine Physik, Technische Universität Wien
e9625636@student.tuwien.ac.at, husinsky@iap.tuwien.ac.at

Seit kurzem ist das Programm LabVIEW auch als Campuslizenz für Institute der TU Wien erhältlich. Für TU-Studenten gibt es eine Studentenlizenz. LabVIEW ist eines der bekanntesten Programme zum Erstellen von Applikationen für die Steuer- und Messtechnik, mit einer produktiven graphischen Programmierumgebung. Der folgende Artikel beschreibt mehrjährige Erfahrungen mit LabVIEW in der Experimentsteuerung.

Warum LabVIEW ?

Am Institut für Allgemeine Physik wird LabVIEW seit etwa 10 Jahren im Laserlabor für die Steuerung von Experimenten genutzt. Zum damaligen Zeitpunkt war der Einsatz dieser neuartigen Programmiersprache (eigentlich besser Programmierumgebung) noch ziemlich exotisch und wurde von vielen mit Misstrauen (in etwa als Spielerei) betrachtet. Letzter Anstoß, LabVIEW generell für unser Experiment zur Steuerung, Datenerfassung und teilweise auch Datenauswertung zu verwenden, war folgendes Ereignis: Wir verwendeten zum damaligen Zeitpunkt eine PDP 11 zur Steuerung und Datenerfassung und die Programme waren in Assembler und Fortran geschrieben und liefen unter einem "ernst zu nehmenden" Betriebssystem. Wir hatten damals im Wesentlichen als Verdienst des Dissertanten P. Wurz gut funktionierende Treiber für unsere GPIB (IEEE)-Interface-bestückten Geräte. Für ein neues Tektronix Digital-Oszilloskop sollte einfach die gespeicherte Kurve ausgelesen und abgespeichert werden. Versuche, unsere GPIB Treiber zu adaptieren und zu verwenden, scheiterten im Wesentlichen daran, dass offensichtlich eine Inkompatibilität zwischen dem IEEE Interface des Oszilloskops und der PDP trotz wochenlanger Versuche auch der Experten nicht zum Ziel führte. Tests bei der Firma Tektronix zeigten, dass das Interface des Scopes nicht defekt war. Schließlich versuchten wir auf einem damaligen MacII und der Ur-Version von LabVIEW, die wir dafür anschafften, das Problem zu lösen. Innerhalb eines Vormittags hatten wir ein funktionierendes Programm zum Datenerfassen und einfachen Steuern des Digitalscopes. Darauf hin beschlossen wir, RSX auf einer PDP für die weitere Datenerfassung und Steuerung in unserem Labor ein gutes Betriebssystem sein zu lassen und auf Macintosh mit LabVIEW umzustellen.

Seither verwenden wir ausschließlich LabVIEW im Laserlabor für verschiedenste Zwecke (eine kurze Übersicht folgt weiter unten) und auch andere Gruppen am Institut setzen heute LabVIEW ein. Ursprünglich haupt-sächlich auf MacOS Systemen laufend, hat sich LabVIEW auch als Standard auf Windows-Systemen etabliert.

Charakteristika von LabVIEW

LabVIEW ist eine graphische Programmiersprache (sowohl die Benutzeroberfläche ist dabei ein Abbild eines Gerätes als auch die Programmierung selbst erfolgt graphisch), die ursprünglich dazu gedacht war, Daten von analogen und digitalen Quellen komfortabel zu erfassen, nachzubearbeiten und zu speichern. Dabei  ist es das Ziel, ein "virtuelles Gerät" (mit Schaltern, Zeigern etc.) zu erstellen. Ein großer Vorteil, der sich bei der Verwendung von LabVIEW zwangsweise ergibt, ist diese graphische, anschauliche Methode, aber vielleicht noch wichtiger, die dabei phantastisch einfache und direkte Art, mit verschiedensten Datentypen und Datenströmen, wie sie aus Messgeräten kommen, zurechtzukommen. Jeder, der einmal die Datenerfassung eines einfachen Gerätes mit Assembler durchgeführt hat (man denke nur an die Behandlung von Floatingpointzahlen), wird das schätzen. Es hat sich gezeigt, dass dies in einem Universitätslabor besonders vorteilhaft ist, da auch Studenten, die nicht Experten in Datenverarbeitung sind, relativ leicht früher erstellte Programme verstehen und adaptieren sowie in kurzer Zeit eigene erstellen können.

Als Konsequenz hat man nicht mehr seitenlangen "Spaghetticode" sondern eine halbwegs übersichtliche graphische Benutzeroberfläche, die auf einen Blick verrät, was das Programm macht. Die unterschiedlichen Variablentypen sind durch verschiedene Farben der Ver-bindungsleitungen  gekennzeichnet und sind daher leicht zu unterscheiden. Im Vergleich zu traditionellen Programmiersprachen wie C, C++, Fortran und ähnlichen, ist es bei LabVIEW nicht notwendig, den gesamten Text zu lesen, denn man hat das ganze Programm wie ein Bild vor sich.

Das Programmieren in LabVIEW hat eine Ähnlichkeit mit dem Entwickeln einer elektronischen Schaltung. Die einzelnen Variablen können in einer graphisch ansprechenden Benutzeroberfläche durch Schalter oder mit Hilfe der Tastatur eingegeben werden. Je nachdem, ob es sich um eine Boolesche Variable, einen String, eine Integer oder Real-Zahl handelt, gibt es verschiedene Möglichkeiten der Eingabe. Für eine Zahl zum Beispiel hat man verschiedene Drehknöpfe, für eine Boolesche Variable existieren verschiedene Arten von Schaltern, die True/False Zustände. Genauso umfangreiche Eingabemöglichkeiten gibt es auch für den Variablentyp String.

In Abbildung 1 sind einige Ein- und Ausgabeelemente abgebildet. Ähnlich funktioniert auch die Ein- und Ausgabe von Booleschen Variablen. Man sieht aber schon an dieser Stelle die Vorteile von LabVIEW. Es ist keine lange Einarbeitungszeit notwendig, um ein Virtuelles Messinstrument mit einer übersichtlichen Benutzeroberfläche zu gestalten. Ähnlich einfach ist es auch, die einzelnen Eingabewerte, die so genannten "Controls", die in der Abbildung 1a zu sehen sind, mit den virtuellen Ausgabegeräten, den so genannten "Indicators", zu verbinden. Dies ist in Abbildung 1b zu sehen. Allerdings ist dies hier nur zur Demonstration gedacht. In Wirklichkeit kann dazwischen jede Menge Datenmanipulation erfolgen.

Abb. 1a Abb. 1b

Abbildung 1:
a) Einige Ein- und Ausgabeinstrumente für die Erstellung eines virtuellen Instrumentes.
b) Mathematische Verknüpfung dieser Ein und Ausgabegeräte im Diagramm.

Man kann die Eingabegrößen mathematisch mit den Ausgabewerten verknüpfen und anzeigen lassen, kann aber auch Instrumente steuern, Daten in den Computer einlesen und mit LabVIEW nachbearbeiten und dann in ein File abspeichern, oder auch über das Internet verschicken. Die Möglichkeiten von LabVIEW sind in der Zwischenzeit schon weit über das Steuern von Messungen hinausgewachsen.

Die  bereits beim Kauf von LabVIEW vorgefertigten Virtual Instruments (VIs) für die Kommunikation mit externen Geräten sind sehr hilfreich bei der Programmierung. Zum einen kann man sich bei den Demo-programmen gute Tipps für die Umsetzung eigener Ideen holen, und zum anderen sind sie oft eine Ausgangsbasis für die Verwirklichung eines eigenen virtuellen Messinstrumentes. Seit es LabVIEW gibt, ist die langwierige Erstellung von Benutzeroberflächen im Laborbereich Geschichte. LabVIEW bietet die Möglichkeit, selbständig in kurzer Zeit qualitativ hochwertige Programme zu schreiben, die die Steuerung, die Datenerfassung und die Auswertung und Weiterverarbeitung voll automatisiert übernehmen. Für die meisten gängigen kommerziellen Geräte gibt es mittlerweile VIs.

Für alle, die dem graphischen Programmieren doch nicht ganz vertrauen, bietet LabVIEW auch die Möglichkeit, die alten vertrauten C-Routinen einzubinden und nur die neue Benutzeroberfläche mit LabVIEW zu erstellen. Dadurch hat man die Möglichkeit, alte, gut bewährte Programme mit den Vorteilen von LabVIEW zu verbinden und verwenden.

 Im so genannten "Diagramm" werden dann die einzelnen virtuellen Eingabeinstrumente mit den Ausgabeinstrumenten verknüpft. Dies geschieht auch auf einer graphischen Benutzeroberfläche. Alle auf dem Frontpanel platzierten "Controls" und "Indicators" scheinen als Symbol in der Programmieroberfläche (Diagramm) auf. Dort kann man dann wie in einem elektronischen Schaltplan die Eingabeinstrumente mit verschiedenen Operationen verknüpfen und dann das Endergebnis an den "Indicator" ausgeben. Ein einfaches Beispiel ist in Abbildung 1b auf der rechten Seite zu sehen.

Eine weitere Stärke von LabVIEW ist nun, dass es die Möglichkeit bietet, mit der Hardware und dem Betriebssystem zu kommunizieren. Das Einlesen von Analogsignalen mit unterschiedlicher Abtastrate sowie das Ausgeben von Analogsignalen, die aus einem File ausgelesen werden, oder auch im Programm direkt errechnet werden können, zählt genauso wie das Ansteuern von Geräten über einen IEEE Bus zu den fundamentalen Bedienelementen von LabVIEW.

LabVIEW im  Laserlabor des Instituts für Allgemeine Physik

Datenerfassung

Wir verwenden LabVIEW nun schon seit mehr als 10 Jahren, um verschiedene Laser, Spektrometer, Boxcar Analysatoren, Oszilloskope, Camac Interfaces, Analog-Digital Converter und Schrittmotoren zu steuern und Messdaten zu erfassen.

In Abbildung 2 ist das selbstentwickelte VI eines bei uns im Labor verwendeten optischen Spektrometers dargestellt. Das Spektrum wird von einem  CCD-Array Spektrometer aufgenommen und dann als Analogsignal an eine im Handel erhältliche multifunktionale AD- Wandlerkarte mit Timingfunktion geschickt. Mit LabVIEW wird dann das Auslesen des Spektrums und das Timing für das Spektrometer verwirklicht. Weiters besteht dann die Möglichkeit, das Spektrum weiterzuverarbeiten, zu analysieren und abzuspeichern. Dieses Spektrum dient zur permanenten Überwachung des Spektrums der Laserstrahlung eines Ti:Saphir Femtosekundenlasers [1, 2].

Abb. 1a

Abbildung 2: Das Frontpanel eines virtuellen Spektrometers.

Weiters verwenden wir LabVIEW, um Massenspektren und Energieverteilungen von emittierten Sekundärteilchen zu messen [3]. Im Speziellen beschäftigen wir uns mit der grundlegenden Frage, wie das Laserlicht mit Materie wechselwirkt. Dazu verwenden wir ein Ultra-Kurzzeit Lasersystem mit einer Wellenlänge von 800nm und einer Pulsdauer von 30fs, sowie einen Excimerlaser mit einer ArF Füllung [4-6], der Laserstrahlung im UV-Bereich liefert. Diese beiden Laser werden je nach Art des Experiments zum Ionisieren von Teilchen bzw. zur Ablation von Materialien (Metalle, Halbleiter, biologisches Gewebe) verwendet. Die Steuerung und das Timing der Lasersysteme erfolgt mittels LabVIEW und der dazugehörigen Elektronik. Die Abbildung 3 zeigt schematisch die Steuerung des Messelektronik durch den Computer. Weiters wurde die Entwicklung einer Horn-hautdrehbank (Eximer Laser Corneal Shaping ELCS [4, 7]) mittels LabVIEW-Steuerung durchgeführt.

Abb. 1a

Abbildung 3: Schema der Steuerung der Laser, des Spektrometers und der Datenerfassung mit Hilfe des Computers. Mit Hilfe der beiden Photodioden PD1 und PD2 wurde die zeitliche Verzögerung des Excimerlaser relativ zum Ti:Saphir Laser gemessen.

Über programmierbare Verzögerungsgeneratoren (LeCroy 4222PDG und LeCroy 2323) wurde das Timing der beiden Laser (Neutralteilchendetektion bei der Laserablation) bzw. des Primärionenstrahls und des Lasers für die Nachionisation (Neutralteilchendetektion bei der Zerstäubung) eingestellt und mit dem Oszilloskop gemessen. Die Steuerung der beiden verwendeten Laser und das Auslesen des Messsignals vom Oszilloskop konnte mithilfe geeigneter Hardware von einem mit LabVIEW selbstent-wickelten Programm mit Benutzeroberfläche gesteuert werden.

In weiteren LabVIEW-Programmen werden dann die Messsignale in Energieverteilungen umgerechnet mit Modellen verglichen.

Ein wichtiger Bestandteil des eben beschriebenen Experiments ist die Erfassung der Massenspektren von gesputterten Teilchen. Das dazu verwendete Spektrometer ist ein Flugzeitmassenspektrometer. Die Auswertung der Flugzeitspektren und das Umrechnen der Flugzeitspektren in Massenspektren wird wieder von einem LabVIEW-Programm ausgeführt. Das Frontpanel des hierfür verwendeten Programms ist in Abbildung 4 zu sehen.

Abb. 1a

Abbildung 4: Teil der Benutzeroberfläche eines Programms zur Aufnahme von Flugzeitspektren von laser-nachionisierten Atomen und Molekülen.

Datenauswertung und Simulation

Neben der Hauptverwendung von LabVIEW als Datenerfassungs- und Gerätesteuerungsumgebung wird LabVIEW auch an Stelle von traditionellen Programmiersprachen oft vorteilhaft als Datenauswertungsumgebung eingesetzt. Durch die graphische Oberfläche, aber besonders wegen seiner vielzähligen Routinen zur Umwandlung von Datenformaten hat sich LabVIEW besonders dann als praktisch erwiesen, wenn es notwendig ist, verschieden abgespeicherte Daten weiterzuverarbeiten. Die graphische Oberfläche eignet sich auch gut für einfachere Simulationen, da praktisch alle notwendigen Funktionen (Integrierer, Summierer etc.) vorhanden sind und wie in einer Schaltung "verdrahtet" werden können.

Updates

Die aktuelle Version von LabVIEW ist Version 6. Wir haben bisher im Wesentlichen mit allen Versionen bis einschließlich 4 gearbeitet. Die Umstellung auf neue Versionen ist meist problematisch, wenn man die doch recht komplexen Programme und immer wieder auftauchende Inkompatibilitäten beim Wechseln auf eine neue Version bedenkt. Im Prinzip sind die Programme aufwärts kompatibel, jedoch kommt es immer wieder vor, dass gewisse Funktionen in neueren Versionen nicht  mehr unterstützt werden oder zumindest leicht geändert wurden. Eine Umstellung einer laufenden Messanordnung ist daher immer ein gewisses Risiko.

Bedingt verbessert wurde ein Manko von älteren LabVIEW Versionen, nämlich die nicht vorhandene Abwärtskompatibilität (Kompatibilität der VIs mit älteren Versionen). Man kann VIs aus der Version 6 im Format LabVIEW 5, aber nicht älteren Versionen abspeichern. VIs, die mit älteren Versionen geschrieben wurden, sind mit den oben erwähnten Einschränkungen mit LabVIEW 6 weiterzuverwenden, allerdings ist es nicht mehr möglich, VIs, die mit LabVIEW 6 bearbeitet wurden, in LabVIEW 4 oder älter zu verwenden.

Die Hilfe zu den einzelnen VIs gibt es seit Version 6 auch in Deutsch, was vielleicht für den einen oder anderen ganz angenehm ist, allerdings haben sich zu den deutschen Beschreibungen auch manche englische Beschreibungen dazugesellt. Die Suchroutinen in der LabVIEW 6 Hilfe sind einigermaßen übersichtlich gestaltet und lassen sich auch leicht bedienen.

Das große Plus, das sofort ins Auge sticht, ist die Tatsache, dass sich im Aufbau der Benutzeroberfläche zu den früheren Versionen nur wenig geändert hat. Es sind zwar eine ganze Reihe praktischer VIs dazugekommen, aber an den bisher gewohnten Möglichkeiten hat sich nicht viel geändert. So ist es kein großes Problem, mit der neuen verbesserten Version von LabVIEW zu arbeiten.

Literatur

[1] F. Krausz, "From femtochemistry to attophysics", Physics World, 14, 9 pp. 41-46, 2001 Sep

[2] T. Brabec and F. Krausz, "Intense few-cycle laser fields: Frontiers of nonlinear optics", Reviews of Modern Physics, 72, 2 pp. 545-591, 2000 Apr

[3] W. Husinsky and G. Betz, "Fundamental aspects of SNMS for Thin Film Characterization - experimental studies and computer simulations [Review]", Thin Solid Films, 272, 2 pp. 289-309, 1996

[4] V. Schmidt, W. Husinsky, R. Graf, F. Fitzal and M. Grabenwöger, ""Tissue perforation of vessel substitutes using a femtosecond Ti:Sapphire laser system", to be published in SPIE series, pp., 2000

[5] A. Cortona, W. Husinsky and G. Betz, "Influence of adsorbates, crystal structure, and target temperature on the sputtering yield and kinetic-energy distribution of excited Ni atoms", Physical Review B-Condensed Matter, 59, 23 pp. 15495-15505, 1999

[6] M. Grabenwoger, F. Fitzal, J. Sider, C. Cseko, H. Bergmeister, H. Schima, W. Husinsky, P. Bock and E. Wolner, "Endothelialization of biosynthetic vascular prostheses after laser perforation", Ann Thorac Surg, 66, 6 Suppl pp. S110-4, 1998

[7] J. altmann, G. Grabner, W. Husinsky, S. Mitterer, I. Baumgartner, F. Skorpik and T. Asenbauer, "Corneal Lathing Using the Excimer Laser and a Computer-Controlled Positioning System: Part I-Lathing of Epikeratoplasty Lenticules", Journal of Refr. and Corneal Surgery, 7, pp. 377-384, 1991


TopSeitenanfang | ZIDline 6 - Dezember 2001 | ZID | TU Wien