LabVIEWForum.de - Analoge Ausgabe von CSV Daten (array)

LabVIEWForum.de

Normale Version: Analoge Ausgabe von CSV Daten (array)
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

Ich bin ein LabVIEW Anfaenger, und stehe vor einem Problem.

Meine Aufgabe ist: Signale von Kurbel und Nockenwelle (Sind unsymmetrische Rechteck-Signale) zu simulieren und diese analog auszugeben. Dazu steht mir als Hardware das NI- USB 6229 zur Verfuegung und als Software LabVIEW 8.6.

Da die Berechnung der Signale sehr kompliziert ist, habe ich mir Messdaten in Excel eingelesen und habe somit den Verlauf des Signals als *.csv vorliegen (Spalte A ist der Kurbelwinkel, Spalte B die Spannung)

Ich moechte die Analoge ausgabe so haben, dass die X-Achse dem Winkel entspricht und die y-Achse der Spannung)

Soweit bin ich bis jetzt:

Ich habe mit Hilfe von “Read from Spreadsheet File” die Daten eingelesen und kann mir diese anzeigen lassen (mit “all rows”).

Ich kriege es aber leider nicht hin die Daten mit Hilfe des DAQ Assistant auszugeben.

Muss ich dazu das array umwandeln? Wie muss ich den DAQ einstellen, damit er die 1.Spalte als X-Achse verwendet und die 2. Spalte als y-Werte der ausgabe?


Die Ausgabe funktioniert prinzipiell. Ich habe ein Sinus Signal simuliert und dieses mit Hilfe des DAQ Assisteten auf A01 ausgegeben und dann gemessen.

Ich freue mich ueber Tipps,
Gruesse aus England,
Daniel
Ist es richtig, das Array als dynamic data umzuwandeln und diese Daten dann in den DAQ zu "schicken?"

Ich kriege mit dem hier angehaengten Programm leider Fehler bezueglich Buffer etc, ausserdem weiss ich leider nicht wie ich die 2 Spalten des CSV files auf 1 Ausgang legen kann. Der DAQ Assisstant scheint die Zeit immer als feste X-Achse zu waehlen, anstatt meine Spalte A als X-Achs Werte zu nehmen.

Lv86_img
So Leute,

ich habe mich weiterhin mit dem Problem beschaeftigt und haenge nun mal meine "neueste" Version an.

Ich kann die Messwerte mir nun vernuenftig anzeigen lassen, jedoch kriege ich es nicht hin diese vernuenftig analog auszugeben. Buffer Fehler etc...

Ich hoffe, dass ihr mir helfen koennt.

Gruss,
Daniel

Lv86_img
Hi,

Deine Problembeschreibung ist etwas dürftig, so dass das ggf. der Grund dafür ist, dass sich noch keiner so richtig dazu geäußert hat... Ich vermute mal, dass Du folgendes Problem hast: Deine DAQ-Karte kann beliebige Kurvenformen ausgeben, allerdings immer nur mit einer festen Zeitbasis, also einer festen, einstellbaren Samplerate. Wenn Du jetzt eine beliebige Abfolge als "X-Achse" nutzen willst, bekommst Du hier ein Problem.
Das einzige, was Du meines Erachtens machen kannst, ist deine Werte so auf eine diskrete Zeitbasis zu verteilen, dass bei einer konstanten Ausgaberate auch wirklich das rauskommt, was Du haben willst...

BTW, wenn Du ein gemessenes Signal simulieren willst, müsstest Du doch eigentlich auch zwei Ausgangskanäle haben, oder?

Alternativ (bin gerade noch ein bisschen am Nachdenken...Wink: Bau Dir eine Look-up-Table, wo Deine eingelesenen Daten drin sind. Jetzt erzeugst du über einen Funktionsgenerator o.ä. in LabVIEW parametrisch Deine Eingangsgröße, in Deinem Fall müsste das der Kurbelwinkel sein. Aus diesem Wert kannst Du über die LUT dann den aktuelle Spannugnswert ermitteln (interpolieren!) und diesen dann ausgeben. Abhängig von Deinen Parametern gibt Dir Dein Ausgang dann die entsprechende Spannung aus.
Problem wird nur sein, dass das ganze sicherlich eher langsam ablaufen wird, da die Time-Base von LabVIEW nun mal nicht so schnell ist...

ch
Hi,

ich habe nun das Kurbelwellen-Signal in eine Zeit umgerechnet, so dass ich damit die Zeit-Achse behalten habe.

Nun kann ich mir z.B. das Kurbelwellensignal (Spalte 2 der eingelesen Daten) mit Hilfe des DAQ ausgeben. Das Nockenwellen Signal (Spalte 3) kann ich auch einzelnd ausgeben.

Nur wenn ich beide Signale zusammen ausgeben will, also Kurbelwellensignal auf AO-0 und Nockenwellensignal auf A0-1, kommt da nur Mist raus. Ich habe das ganze auch schon mit 2 getrennten DAQ Versucht, hat aber leider irgendwie nicht hingehauen.

Wie gesagt, einzelnd sind die Signale darstellbar, wenn ich das 1D Array in den DAQ schicke geht das, nur bei dem 2D funktioniert das irgendwie nicht.
Es waere spitze, wenn mir einer von euch bei dem Problem noch helfen koennte, denn ansonsten scheint das zu funktionieren.

Gruss,
Daniel

LV Version 8.6:
[attachment=17591]
Wie hast du das Express-VI konfiguriert? Wahrscheinlich nur mit Single-Channel-Ausgabe - dann ist es doch klar, warum es nicht funktioniert. ich würde Dir raten, das Express-VI zu kicken und das ganze ordentlich zu programmieren. Wird wahrscheinlich auch perfomanter...

ch
Hi du,

ich habe es nun hinbekommen, hab einfach die 2 Arrays mit der Merge Funktion zusammengefuegt und das ganze scheint zu laufen, zumindest kann ich nun am Steuergeraet ne Drehzahl ablesenSmile
Referenz-URLs