INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

DAQ: Digitales und analoges Signal in einer Datei abspeichern



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!

15.07.2013, 09:17
Beitrag #1

Hydraulab2013 Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jul 2013

2012
-
EN



DAQ: Digitales und analoges Signal in einer Datei abspeichern
Liebes Labviewforum,

ich beschäftige mich derzeit mit der Messtechnisches Erfassung eines Drucksignals. Um das Drucksignal analysieren zu können, müssen ebenfalls Drehwinkel und Position aufgezeichnet werden.
Für die Messungen verwende ich die Messkarte NI USB-6211.

Ich habe bisher nicht viel Erfahrung mit der Labview-Programmierung und hoffe, dass ihr mir bei meinen Fragen weiterhelfen könnt! Wink

Ich möchte über einen analogen Eingang ein Spannungssignal aufnehmen und über zwei digitale Eingänge TTL-Signale aufzeichnen (Winkel und Position).

Die Signalerfassung über die Messkarte funktioniert, sprich, es werden die entsprechenden Werte numerisch korrekt ausgegeben.

Der nächste Schritt wäre nun, die Messdaten (3 Signale: 1x analog (Spannung), 2x digital (Winkel u. Position)) in einer TDMS-Datei abzuspeichern. Die Messdaten müssen hierbei natürlich synchronisiert sein, damit die Zuordnung von Spannung zu Winkel und Position korrekt ist.

Meine Fragen sind:

1) Kann ich meine VI für diese Aufgabe so benutzen, oder habe ich da etwas grob falsch gemacht?

12.0 .vi  Winkel_Position_Spannung_Expressloesung_LVForum.vi (Größe: 127,83 KB / Downloads: 391)

1.1) Macht es Sinn die DAQ-Assistenten derart zu benutzen, oder sollte ich vielmehr die "normalen" DAQ-VI's benutzen?

2) Passiert die Synchronisation automatisch (im Hintergrund) oder muss ich diese separat programmieren?

3) Wie kann ich die Signale am besten / eleganstenten in eine Datei abspeichern?
3.1) Indem ich die DAQ-Assistenten wie in meinem VI zusammenfüge?
3.2) Oder soll / kann ich die Signale über ein Task laufen lassen und diese Task in einer TDMS-Datei abspeichern (OBWOHL die Channels andere Formate haben)
In ähnlicher Weise wie in diesem Beispiel:

12.0 .vi  Analog Input - Voltage and Thermocouple in a Single Task.vi (Größe: 76,66 KB / Downloads: 378)


Ich bin euch sehr dankbar für eure Hilfe und bedanke mich im Voraus hierfür!

Gruss,
Hydraulab
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
15.07.2013, 18:11 (Dieser Beitrag wurde zuletzt bearbeitet: 15.07.2013 18:12 von Holy.)
Beitrag #2

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: DAQ: Digitales und analoges Signal in einer Datei abspeichern
Die VIs kann ich mir mangels LabVIEW 2012 nicht anschauen. Die Synchronisation der Signale erfolgt nicht automatisch im Hintergrund. Am sinnvollsten ist es für die Erfassung des analogen Kanals eine Erfassungsrate zu definieren und für die Erfassung der digitalen Signale einfach die AI/SampleClock zu verwenden. Damit ist es dann direkt synchron.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2013, 14:22 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2013 14:31 von Hydraulab2013.)
Beitrag #3

Hydraulab2013 Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jul 2013

2012
-
EN



RE: DAQ: Digitales und analoges Signal in einer Datei abspeichern
Hallo,

@ Holy: Vielen Dank für deine Antwor!
Ich habe mich nach deinem Tip auf die Suche nach einem bestehenden Labview Beispiel ( https://decibel.ni.com/content/docs/DOC-10785 ) gemacht, welches ich dann entsprechend anpassen kann. Meintest du das in etwa so?

Im diesem Beispiel wird ein Counter Input mit einem Analog Input synchronisiert (entsprechend meiner Aufgabe).
Die Daten werden im Beispiel allerdings nicht abgespeichert sondern lediglich in einem Waveform Graph ausgegeben.
Um die Daten in einer .tdms-Datei abzuspeichern, habe ich das Beispiel entsprechend abgeändert (s. angehängtes Bild und VI).

Zudem wird in dem Beispiel lediglich mit einer "rate" von 1kHz abgetastet. Bei meiner Anwendung wird eine Abtastung von 60kHz gefordert, da das Drucksignal hochdynamisch ist.
Wenn ich die Sample Rate einfach auf 60kHz hochsetzte, bekomme ich die Fehlermeldung:

Possible reason(s):

Attempted to read samples that are no longer available. The requested sample was previously available, but has since been overwritten.

Increasing the buffer size, reading the data more frequently, or specifying a fixed number of samples to read instead of reading all available samples might correct the problem.

Property: RelativeTo
Corresponding Value: Current Read Position
Property: Offset
Corresponding Value: 0

Task Name: _unnamedTask<AE>


Ich habe hierzu gelesen, dass dies einfach hierdurch zu lösen wäre, indem man die 'number of samples per channel' bei DAQmx Read hochsetzt (auf bspzw. 10-25% der Abtastrate).
Bei mir gibt es diesen Parameter allerdings nicht, da ich aus denDAQmx Read VI nur DBL's ausgebe.

Wenn ich die "samples per channel" bei den sample clocks hochsetzte, kommt der Fehler zwar nicht mehr, das Programm zeichnet allerdings nicht mehr bis zum Ende der Messung auf.

Ich denke es hat immer noch etwas mit der Buffergrösse oder der Schreibgeschwindigkeit in die .tmds Datei zu tun.

Hat jemand einen Rat?


Meine Fragen:

1) Muss ich zwingend mit einem Buffer arbeiten ?
2) Fehlt eventuell eine Einstellung ?


Vielen Dank im Voraus und schöne Grüsse!
Hyraulab


Angehängte Datei(en) Thumbnail(s)
   

12.0 .vi  Meas Angular Position-Buffered-Cont-Sync AI Sample Clk_Angular_Count_V3_Sample_Rate_funktioniert_NICHT - Copy.vi (Größe: 52,98 KB / Downloads: 287)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2013, 19:41
Beitrag #4

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: DAQ: Digitales und analoges Signal in einer Datei abspeichern
Dein VI ist, wie du auch schon selbst mitbekommen hast, an einigen Punkten anders wie das verlinkte Beispiel. Genau diese Punkte sind auch das Problem. Deine Schleife kommt einfach nicht hinterher mit auslesen und daher genau diese Fehlermeldung. Lösung ist dien VI entsprechend dem Beispiel anpassen. Den Counter auch mehrere Samples auslesen bzw. die Samplingrate entsprechend anpassen. Bei dem analogen Task macht es nicht zwingend Sinn N Kanäle auszulesen wenn du nur einem im Task hast. Die auszulesenden Samples würde ich immer exakt vorgeben, insbesondere um die Speicherung einfacher zu machen.
Falls du nur einen Einzelwert aus dem Counter lesen willst musst du dann natürlich das Verhältnis der Samplingraten entsprechend anpassen. Z.B. 1 zu 100 für Counter zu Analog. Das bedeutet dann in jeder Iteration 1 Wert vom Counter auslesen und 100 vom Analogen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2013, 20:14
Beitrag #5

Hydraulab2013 Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Jul 2013

2012
-
EN



RE: DAQ: Digitales und analoges Signal in einer Datei abspeichern
Hallo Holy,

Vielen Dank noch einmal für deine Antwort!

Ich habe das Beispiel lediglich an meine Eingänge (CI und AI) angepasst und eine sehr einfach Speicherung der Daten in einer TDMS-Datei zugefügt, anstatt diese wie im Beispiel in einer Waveform wiederzugeben.

Bevor ich die Anpassungen, wie du sie empfohlen hast, umsetzte, habe ich noch eine allgemeine Frage zum Struktur des Programmes.

Wäre es vielleicht sinnvoller die AI- und CI-Signale einzeln in TDMS-Dateien zu speichern (bspw. mit DAQmx Configure Logging VI) und erst hinterher in eine Datei zu schreiben?
Meine erste Ueberlegung war es eben diese DAQmx Configure Logging VI zu nutzen (aufgrund der guten Performance), was aber wegen den unterschiedlichen Tasks (AI und CI) nicht möglich war. Dementsprechend habe ich mir das Beispiel zur Synchronisation von CI und AI herausgesucht und angepasst.

Welches allgemeine Vorgehen / Layout des Programms wäre deiner Meinung nach sinnvoll, um die Daten zu synchronisieren und hiernach in einer TDMS-Datei zu speichern, unter der Bedingung mit höheren Abtastraten zu arbeiten (60kHz)? Etwas in Anlehnung an meine VI oder eher eine andere Struktur?

Ich tappe im Moment leider noch etwas im Dunkeln.
Ich habe aber in einem anderem Foum gelesen, dass schon vor mir Leute Probleme mit genau diesem Thema hatten, hierzu bisher aber keine Lösung gefunden wurde.
http://forums.ni.com/t5/Multifunction-DA...-p/1550490
http://forums.ni.com/t5/LabVIEW/DAQmx-co...-p/1507150


Vielen Dank im Voraus für deine Mühe!

Gruss,
Hydraulab
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2013, 20:27
Beitrag #6

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: DAQ: Digitales und analoges Signal in einer Datei abspeichern
Das DAQmx-TDMS-Logging zielt auf Erfassungsraten im MHz-Bereich ab. Geht dort eher darum SSD-Raid-Systeme auch mit 400MB/s an Messdaten befüllen zu können.
Eine getrennte Speicherung macht hier eigentlich keinen Sinn da der Programmieraufwand nur steigt und dir aber keine relevanten Vorteile bringt. Ich würde an deiner Stelle einfach 2 TDMS Write machen. Einen für die Counterdaten und einen für die analogen Daten. Es ist auch noch sinnvoll zumindest Kanalnamen und am besten auch noch Gruppennamen zu vergeben.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Thermoelement und analoges Spannungssignal gleichzeitig mit Agilent 34970A auslesen HRI_Michael 2 3.702 29.05.2019 12:11
Letzter Beitrag: HRI_Michael
  Datalogging aus zwei Task in einer Datei Keppi 1 3.484 13.06.2018 11:51
Letzter Beitrag: GerdW
  Digitales Signal eines Moduls ansteuern mprocket 4 5.326 05.01.2018 11:49
Letzter Beitrag: mprocket
  Analoges Signal in Winkel umwandeln Sandro5 37 25.558 25.02.2016 21:06
Letzter Beitrag: Sandro5
  Analoges Signal analysieren und Messwert speichern. Meister Eder 7 9.739 14.01.2014 17:33
Letzter Beitrag: Meister Eder
  Digitales Signal ausgeben/einlesen Orngh 4 6.857 21.11.2013 10:11
Letzter Beitrag: Orngh

Gehe zu: