Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
Hallo,
ich bin relativ neu im Umgang mit LabVIEW (seit September 2010) und arbeite zur Zeit an meiner Bachelorarbeit. Dazu muss ich ein Programm erzeugen, welches über zwei DAQmx Channel jeweils ein analoges Signal (Output) an einen galvanometrischen XY-Scanner übergibt. Die Signale müssen absolut synchron laufen. Das Signal für den x- Scanner soll eine Sägezahnspannung sein und für den Y-Scanner eine Treppenfunktion. Eine Skizze ist im Anhang enthalten (soory wegen der Quali - das Bild wurde mit dem Handy gemacht).
Das Problem besteht erst einmal in der Initialisierung der Channels. Bei dem Programm (LabVIEW 2009) welches ich entwurfen habe, entsteht immer der Fehler 50103 "The Specified Resource is Reserved". Nach dem Fehler zu googeln und die Hilfen von NI haben mir nicht geholfen. Kann mir da jmd helfen?
Weiterhin weiß ich nicht so recht welche Möglichkeiten ich habe mit den Einstellungen des DAQmx Write Befehls - mit 1 Channel, N Channels usw.? Da habe ich allegmeine Verständnisprobleme, was da bei LabVIEW nun im Hintergrund abläuft.
Weiterhin weiß ich nicht so richtig ob ich auch eine Stufenfunktion erstellen kann, wie ein Sägezahnsignal o.ä. , also mit Eingabe der Frequenz, Amplitudenanstieg, Buffergröße usw.? Hat da jmd ne Idee?
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
' schrieb:Dazu muss ich ein Programm erzeugen, welches über zwei DAQmx Channel jeweils ein analoges Signal (Output) an einen galvanometrischen XY-Scanner übergibt.
Geht mit LabVIEW gut.
Zitat:Die Signale müssen absolut synchron laufen.
Tun sie.
Mach eine Task, die zwei Kanäle beinhaltet. Diese beiden Kanäle sind dann per se synchron.
Zitat:Das Problem besteht erst einmal in der Initialisierung der Channels. Bei dem Programm (LabVIEW 2009) welches ich entwurfen habe, entsteht immer der Fehler 50103 "The Specified Resource is Reserved".
Wahrscheinlich benutzt du für jeden Kanal die selbe Task. Das geht nicht. Eine Task darf nur einmal verwendet werden. Poste mal das VI hier.
Zitat:Weiterhin weiß ich nicht so recht welche Möglichkeiten ich habe mit den Einstellungen des DAQmx Write Befehls - mit 1 Channel, N Channels usw.?
Auf jeden Fall N Channels. Ob "ein Wert" oder "Signalverlauf" etc. kommt darauf an wie du das Signal erzeugen willst.
Im Allgemeinen gilt: Die Einstellungen am Befehl müssen mit der Task übereinstimmen.
Ansonsten:
Du kannst die beiden Kurven einmalig berechnen für den gesamten Betätigungszeitraum und diese berechneten Werten dann mit einem einzigen Schreibbefehl ausgeben.
Oder du berechnest die Einzelwerte und gibst die im Raster von z.B. 10ms aus.
Zitat:Da habe ich allegmeine Verständnisprobleme, was da bei LabVIEW nun im Hintergrund abläuft.
Mach dir da keine Gedanken. Das ist so viel und kompliziert, das muss keiner mehr wissen.
Zitat:Weiterhin weiß ich nicht so richtig ob ich auch eine Stufenfunktion erstellen kann, wie ein Sägezahnsignal o.ä. , also mit Eingabe der Frequenz, Amplitudenanstieg, Buffergröße usw.?
Gehen tut alles. Man, also du, muss es nur programmieren.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
Vielen Dank für die schnellen Antworten! ^_^
Ich hab für das Programmieren von zwei Channels mit nur einen Task folgendes gefunden: (siehe Anhang [Single Point analog output on two channels] LabVIEW 2009).
Da übergeb ich pro Durchlauf ein XY-Paar. Kann ich da auch pro Channel jeweils die Waveform reinschreiben (DAQmx Write o.ä.) und dann starten?
Ich würde gern die Waveform an einen von den Channel übergeben, da gibt es bei N Samples entweder - 2D DBL oder - 1D Waveform. Wie bekomm ich eine 1D Waveform? Bei der 2D DBL werden da pro Zeile der Wert je Spalte an jeweils einen Channel übergeben? Der Versuch ist im Anhang - da komm ich aber eben nicht weiter!!!
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
' schrieb:Kann ich da auch pro Channel jeweils die Waveform reinschreiben (DAQmx Write o.ä.) und dann starten?
Eine Waveform kann mehrere Kanäle beinhalten. Erstelle also zwei Waveforms (Signalverläufe) und füge die zusammen.
Zitat:Ich würde gern die Waveform an einen von den Channel übergeben, da gibt es bei N Samples entweder - 2D DBL oder - 1D Waveform.
Klar:
Eine 1D-Waveform enthält die Daten von mehreren Kanälen. Diese Daten würden ohne Waveform als 2D DBL dargestellt werden.
Zitat:Wie bekomm ich eine 1D Waveform?
Wie das genau geht, muss ich erst kucken. Ich mach immer alles in DBL.
Zitat:Bei der 2D DBL werden da pro Zeile der Wert je Spalte an jeweils einen Channel übergeben?
Genau so.
Die eine Dimension ist die Anzahl der Kanäle, die andere ist die Zeitachse. Die eine Dimension wird also im eingestellten Raster ausgegeben. (Hinweis: Ein Waveform hat ein weiteres Feature: Da steht das Ausgaberaster mit drin).
Zitat:Der Versuch ist im Anhang - da komm ich aber eben nicht weiter!!!
Hab hier kein LV. Kann erst heute abend kucken.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
20.01.2010, 14:22 (Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2010 16:56 von jg.)
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
Hallo Ichselbst,
vielen Dank für deine rasche Beantwortung meiner Fragen.
Ich hänge das Programm an mit welchem ich nun eine Periode der Signale erzeugt habe. Nur bekomm ich dies nicht in den task geschrieben! Anfänglich hab ich versucht dies mit 1D Waveform zu realisieren, nur scheitere ich an dem Versuch die Perioden zu verketten. Das selbe Problem hab ich wenn ich mir die Y-Komponenten aus der Vaveform heraus hole, denn ich schaffe es nicht dies in eine vollständige 2D Array zu packen.
Also zusammenfassend will ich wissen, wie ich nun die erzeugte einzelne Periode der beiden Signale aneinander hänge (das eben 700 Perioden entstehen - verstelllbar mit dem eingang von N der LOOP) und eine vollständige 1D Waveform oder ein 2D Array erzeugen kann und dies dem Task übergebe??? Im Anhang findest du meinen (ja noch jämmerlichen) Versuch dies zu erreichen.
MFG
20.01.2010, 15:25 (Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2010 16:57 von jg.)
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
Hallo, tut mir richtig Leid, daß ich den Thread erst jetzt gesehen habe. Habe vor einiger Zeit selbst Messplätze zum Tuning und Test von Galvoanometer-Scannern mit LabVIEW entwickelt und und könnte Dir helfen.
Hast ja schon nützliche Antworten erhalten.
Wie lautet denn Denn das Thema Deiner Arbeit? Welches Ziel wird damit verfolgt? Mit welchem Galvanometer-Scanner arbeitest Du (Raylase, Arges, Scanlab?) Typ?
Gruß Ludwig
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
Danke nochmal an alle, dass Ihr euch die Zeit nehmt mir zu helfen!
' schrieb:Meinst du sowas?
Ja genau sowas. Jetzt erzeug ich ja in einer For Loop je N (jeweiliger Durchlauf) eine Periode, wie kann ich dies nach der LOOP in ein zusammenhängende Wavefrom mit N Perioden verwandeln? Oder ein 2D Array erzeugen wo die Y-Werte drin stehen damit ich die an DAQmx Write übergeben kann, damit der Task die Perioden an den Scanner übergibt.
' schrieb:Wie lautet denn Denn das Thema Deiner Arbeit? Welches Ziel wird damit verfolgt? Mit welchem Galvanometer-Scanner arbeitest Du (Raylase, Arges, Scanlab?) Typ?
Thema: Implementierung und Ansteuerung des 2-Axen Scanner Systems des experimentellen Fourier Domain OCT Messplatzes
Ziel: Rasterabtastung des Auges mit einem Laserstrahl mit ca. 1024 x 700 Punkten
Scanner: GALVOLINE G1222HS Galvanometer Optical Scanner
Eine Skizze welche Signale ich auf die Scanner schicken will siehst du im ersten Thread
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners
So hab es jetzt hinbekommen, so wie ich es wollte! Ich stell mein Prorgramm mal rein (im Anhang). Ich kann es aber leider die Woche nicht testen, weil ich nicht an meinem Arbeitsplatz bin. Aber es müsste funktionieren.
Nochmals Danke für die vielen Tips und Anregungen!!!