LabVIEWForum.de - Zeitachse bei DAQ Messung

LabVIEWForum.de

Normale Version: Zeitachse bei DAQ Messung
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Moin,

ich bin neu hier im Forum und wende mich mit einem problem an euch.

Es geht um eine Spannungsmessung mit einem USB-6009. Damit nehme ich Spannungswerte auf und möchte einen automatsichen Report erhalten.
Mit dem Express VI vom Report Generation Tool funktionierte das natürlich gut, allerdings sind mir die Einstellmöglichkeiten zu beschränkt, darum habe ich nun die normalen Vi´s verwendet.

Dabei treten nun folgende probleme auf :

ich bekam bei den ersten versuchen nur die Amplitude und die Iterationsschritte angezeigt. Ich brauche aber die real verstriche Zeit.
Im jetztigen VI habe ich einfach einen "Timer" selbst gebastelt um wenigstens fortlaufende Werte zu haben.

Wäre super wenn mir jemand zeigen könnte wie ich in diesem Zusammenhang eine fortlaufende zeit implementieren kann.
Fals ihr sonst noch Kritikpunkte am Vi habt immer her damit ! Blush

Danke im Vorraus

Mfg Maik
Hallo Maik,

Zitat:Ich brauche aber die real verstriche Zeit. Im jetztigen VI habe ich einfach einen "Timer" selbst gebastelt um wenigstens fortlaufende Werte zu haben.
Du willst die "reale Zeit" haben - und deswegen baust du dir eine Additionsschleife? Hmm
Und die Anzahl der "Zeitwerte" gibst du über die Iterationszahl der Whileloop vor? Hmm Also in der ersten Iteration NULL Zeitwerte, in der zweiten dann einen Wert, in der 100. Iteration dann schon 99 Zeitwerte???

Wenn du die Zeit haben willst, dann solltest du (wie bisher) einen Sampletakt vorgeben und einen "Signalverlauf" vom DAQmxRead abfragen - der enthält schon alle nötigen Zeitangaben!

Zitat:Fals ihr sonst noch Kritikpunkte am Vi habt immer her damit !
Du stellst eine "Endliche Anzahl" Samples ein. Dann fragst du den Task einmal ab, um ihn auf dem Graph darzustellen. Dann fragst du den Task noch einmal ab, um die Daten dann zu speichern. Hmm Was haben die angezeigten Daten dann mit denen im Protokoll zu tun???
Guten Morgen,

Sry, ich muss da wohl erstmal was korrigieren.. Ich nutze das Vi viel zum Experimentieren und habe daher die meisten Eingaben als Bedienelemente eingesetzt. Diese setzten sich
nach Neustart des Vi´s immer auf Anfangswerte zurück die dann natürlich keinen Sinn ergeben.
Im Anhang befindet sich ein Bild vom Vi mit den richtigen Konfigurationen.

zur Erklärung:

Zitat:Du willst die "reale Zeit" haben - und deswegen baust du dir eine Additionsschleife? Hmm
Und die Anzahl der "Zeitwerte" gibst du über die Iterationszahl der Whileloop vor? Hmm Also in der ersten Iteration NULL Zeitwerte, in der zweiten dann einen Wert, in der 100. Iteration dann schon 99 Zeitwerte???
Die Zählschleife habe ich einfach nur dort eingefügt um laufende Werte für mein 2D Array zu bekommen. Ich bekomme ja "nur" die Spannungswerte aus dem "DAQMX lesen Vi", leider weiß ich nicht wie und wo ich die passenden Zeitwerte herbekomme..

Zitat:Wenn du die Zeit haben willst, dann solltest du (wie bisher) einen Sampletakt vorgeben und einen "Signalverlauf" vom DAQmxRead abfragen - der enthält schon alle nötigen Zeitangaben!
Ich hab je 2 DAQmxRead im Vi und der erste liefert mir ja auch einen kompletten Signalverlauf, allerdings möchte ich die Daten auch als Datentabelle haben. Wie funktioniert sowas bei dem Datentyp "DBL" ?


Labview ist noch recht neu für mich (1 Semster Grundkurs) und beschäftige mich nun im Praktikum wieder mit dem Programm. Schon mal vielen Dank für die Hilfe,
etwas Licht ins Dunkel zu bringen Blush

Mfg Maik
Hallo Maik,

Zitat:Ich hab je 2 DAQmxRead im Vi und der erste liefert mir ja auch einen kompletten Signalverlauf, allerdings möchte ich die Daten auch als Datentabelle haben. Wie funktioniert sowas bei dem Datentyp "DBL" ?
Das erste DAQmxRead liefert eine Waveform, das zweite ein Array of DBL. Du brauchst nur den ersten Aufruf, wenn du dann mal in die Funktionspalette namens "Signalverlauf" guckst:
[attachment=46745]
Hallo,

Zitat:Das erste DAQmxRead liefert eine Waveform, das zweite ein Array of DBL. Du brauchst nur den ersten Aufruf, wenn du dann mal in die Funktionspalette namens "Signalverlauf" guckst:


Vielen Dank für den Tip, damit erübrigt sich der zweite Read Baustein.

Ich addiere nun die delta Werte auf und schreibe Sie in ein Array. Die dazu gehörigen Y Werte ebenfalls.

Problem : wenn ich die Anwendung stoppe habe ich mehr Spannungwerte als delta Werte. Wie kommt das ? Wird nicht pro Iteration jeweils 1 Wert abgefragt und ins Array geschrieben ?

Wie kann ich das synchronisieren ?

Mfg Maik
(15.10.2013 10:20 )Maikn. schrieb: [ -> ]Vielen Dank für den Tip, damit erübrigt sich der zweite Read Baustein.

Das dürfte ja sowieso nicht funktioniert haben...weil die beide ja den gleichen Puffer lesen, und dem einen dann fehlt, was der andere schon abgeholt hat.

A.
Hallo Maik,

Zitat:wenn ich die Anwendung stoppe habe ich mehr Spannungwerte als delta Werte. Wie kommt das ? Wird nicht pro Iteration jeweils 1 Wert abgefragt und ins Array geschrieben ?
In deinem Screenshot legst du mit "samples" die Anzahl der zu lesenden Samples fest (im Beispiel weiter oben waren es 5 pro DAQmxRead)! Du fragst also 5 Werte ab und wunderst dich, warum du nur einen dt-Wert dazu erhälst? Hmm
Du hast schon in der (Kontext-)Hilfe nachgelesen, was der dt-Wert bedeutet?

Ich hatte dich doch schon auf die Waveform-Funktionspalette hingewiesen. Hast du da mal reingeschaut? Hast du die Funktion GetWaveformTimeArray bemerkt - und deren Hilfe gelesen?
Moin,

Zitat:In deinem Screenshot legst du mit "samples" die Anzahl der zu lesenden Samples fest (im Beispiel weiter oben waren es 5 pro DAQmxRead)! Du fragst also 5 Werte ab und wunderst dich, warum du nur einen dt-Wert dazu erhälst? Hmm
Du hast schon in der (Kontext-)Hilfe nachgelesen, was der dt-Wert bedeutet?

Ja, habs jetzt auch gerafft. Ja der dt ist der zeitliche Abstand der eingehen Y werte, bei Abtastrate von 5 z.B. 0,2 sec.

Zitat:Ich hatte dich doch schon auf die Waveform-Funktionspalette hingewiesen. Hast du da mal reingeschaut? Hast du die Funktion GetWaveformTimeArray bemerkt - und deren Hilfe gelesen?

Die Funktionspalette hab ich gefunden, die "GetWaveformTimeArray" erst als du mich drauf aufmerksam gemacht hast Blush
Die erleichtert natürlich einiges.

Ich habe die dt Werte jetzt auf addiert und mittlerweile funktioniert das Vi g

Hier nochmal mein "fertiges" Vi.

Vielen Dank

Mfg Maik
Ähm...mal ne Frage...ich hab das irgendwie wohl verpasst:

Warum verwendest du einen XY-Graph? Das ginge doch viel leichter mit nem Graph oder Chart....

A.
Zitat:Ähm...mal ne Frage...ich hab das irgendwie wohl verpasst:

Warum verwendest du einen XY-Graph? Das ginge doch viel leichter mit nem Graph oder Chart....

Ich habe den Graph erst später dazu gefügt. Da ich ohnehin ein 2D Array mit Y und dt Werten brauchte um das Report Vi zu speisen habe ich jetzt die Visualisierung gleich darüber erledigt.
Referenz-URLs