Hallo zusammen,
im Rahmen meiner Diplomarbeit habe ich in der letzten Woche ein kleines Programm zur Ansteuerung eine Piezo-Controllers geschrieben, welches folgende Features hat:
- Kommunikation mit dem Piezo-Controller (bei mir PI E-710)
- Manuelles Verfahren in 3 Dimensionen
- Berechnung einer Verbindung zwischen zwei Punkten mit variabler Schrittweite
- Halbautomatisches Anfahren beliebiger Punkte auf dieser Linie
Das Programm ist sicher für die meisten hier keine große Sache, für mich war es das erste Projekt nach dem Einführungskurs, der an meiner Uni angeboten wird.
Gedacht ist es dazu, in einem Spektroskopie-Aufbau einen Nanodraht abzuscannen, daher auch die Angaben in µm. Die Geräte-Ansteuerung lasse ich mal drin, wer das Programm "trocken" testen möchte, muss halt vorher die entsprechenden subVIs rauslöschen (Configuration_setup.vi, MOV.vi, POS?.vi und ONT?.vi).
Das ganze ist eine finite state machine, ich habe versucht, so viel wie möglich zu kommentieren, damit man nicht einen ganzen Tag braucht, um meinen sicherlich nicht immer geradlinigen Code nachzuvollziehen.
Da ich davon ausgehe, dass das Programm (wie jede Software) deutlich länger eingesetzt wird, als sinnvoll wäre (da viele Leute zu faul sind, selber was Neues zu programmieren), habe ich ziemlich viele Deppenbremsen eingebaut, man weiß ja nie, welcher Einzeller mal mit dem VI rumspielt.
Ich habe das Programm an unserem Piezo (PI E-710) getestet unter LV 2011, und für einen anderen Aufbau für LV 8.6 kompatibel abgespeichert. Beide Versionen funktionieren und sind angehängt.
Das Programm ist mit relativ geringem Aufwand erweiterbar, so dass man auch vollautomatisch die Punkte anfahren, ein Spektrum aufnehmen, weiterfahren...kann. Das war für meine Anwendung wegen proprietärer Software (würg) seitens des Spektrometers nicht möglich/nötig. Es sind auch Flächen-Scans denkbar, aber die machen halbautomatisch, wegen der quadratisch wachsenden Zahl an anzufahrenden Punkte, wenig Sinn.
Falls jemand Fragen oder Anregungen hat, würde mich das freuen. Wenn jemand mein bescheidenes Programm benutzen kann und sich damit Arbeit spart, freut ich das noch mehr. Natürlich darf der Code beliebig verändert/verbreitet werden, ich hoffe das ist selbstverständlich.
P.S.: Kann mir jemand verraten, warum die Version
fast dreimal so groß ist wie die LV8.6? Das kann doch wohl kaum nur an den fancy silver-buttons liegen, oder doch? O.o