LabVIEWForum.de
Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners (/Thread-Zwei-DAQmx-Channels-zur-Erzeugung-zweier-Analog-Outputs-zur-Steuerung-eines-galvano-XY-Scanners)

Seiten: 1 2


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - RiSo1985 - 18.01.2010 12:18

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?

Danke


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - IchSelbst - 18.01.2010 22:01

' 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. Cool

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.


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - RiSo1985 - 19.01.2010 10:27

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!!!Sad

MFG


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - IchSelbst - 19.01.2010 11:19

' 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.


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - RiSo1985 - 20.01.2010 14:22

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ämmerlichenSad) Versuch dies zu erreichen.

MFG

Lv09_img2


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - BsaiboT - 20.01.2010 15:25

Meinst du sowas?

Lv09_img2[attachment=23761]


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - jg - 20.01.2010 16:58

Offtopic2
Bitte beachten: Bei jedem VI-Upload:
http://www.LabVIEWforum.de/LV-Version-hoch...d39s-t7949.html

Gruß, Jens

EDIT:
Ironie
' schrieb:ich bin relativ neu im Umgang mit LabVIEW (seit September 2010) und arbeite zur Zeit an meiner Bachelorarbeit.
Interessant, bist du in die Vergangenheit gereist, um diesen Thread zu schreiben?
Kommen daher die Probleme?Lol


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - Lucki - 20.01.2010 17:08

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 - RiSo1985 - 20.01.2010 20:38

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

MFG


Zwei DAQmx Channels zur Erzeugung zweier Analog Outputs zur Steuerung eines galvano XY-Scanners - RiSo1985 - 21.01.2010 12:03

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.Wink

Nochmals Danke für die vielen Tips und Anregungen!!!

MFG

LabVIEW 9.0 [attachment=23816]