LabVIEWForum.de
Messdaten per queue in .tdms - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Messdaten per queue in .tdms (/Thread-Messdaten-per-queue-in-tdms)

Seiten: 1 2


Messdaten per queue in .tdms - ralph_schuster - 09.07.2012 12:59

Hallo,

ich möchte Messdaten aus einem DAQ-Assistenten in ein tdms-file schreiben. Wenn ich den DAQ in einer Schleife mit dem tdms-write habe, bricht das VI irgendwann ab, weil beim Schreiben ein Fehler auftritt.
Nun hatte ich die Idee, den Datenfluss per Queue zu vermitteln. Leider läuft die Schleife, welche die Queue ausliest, gar nicht.
Ich habe zur Vereinfachung den DAQ herausgenommen und will erstmal den Array aus doubles übertragen.
Dies wundert mich sehr. Über Hinweise dazu und Alternativvorschläge würde ich mich sehr freuen.

Ralph

PS: Wie kann ich Blockschaltbilder elegant als Grafik exportieren, um sie hier ansehlich präsentieren zu können??


RE: Messdaten per queue in .tdms - NWOmason - 09.07.2012 13:11

(09.07.2012 12:59 )ralph_schuster schrieb:  bricht das VI irgendwann ab, weil beim Schreiben ein Fehler auftritt.

Welcher Fehler tritt denn auf?


(09.07.2012 12:59 )ralph_schuster schrieb:  Nun hatte ich die Idee, den Datenfluss per Queue zu vermitteln. Leider läuft die Schleife, welche die Queue ausliest, gar nicht.

Mindestens einmal sollte sie aber durchlaufen werden. Hast du das ganze schon (mit Sonden und Haltepunkte) gedebuggt?


(09.07.2012 12:59 )ralph_schuster schrieb:  PS: Wie kann ich Blockschaltbilder elegant als Grafik exportieren, um sie hier ansehlich präsentieren zu können??

z.B. mit VI Snippet


Beste Grüße,
NWO


RE: Messdaten per queue in .tdms - GerdW - 09.07.2012 13:22

Hallo Ralph,

Zitat:Leider läuft die Schleife, welche die Queue ausliest, gar nicht.
Hast du doch extra so programmiert! Oder sagt dir der Begriff DATAFLOW etwa nichts?

- Außerdem ist es wenig sinnvoll, eine Queue zu löschen, bevor man anfängt, die enthaltenen Elemente auszulesen. Aber hast du so programmiert...

- Es ist auch nicht sinnvoll, die "Blinking"-Property in jedem Schleifendurchlauf erneut zu setzen Einmal reicht aus...


RE: Messdaten per queue in .tdms - ralph_schuster - 09.07.2012 13:34

@ NWO:
Nach mehreren Minuten Messung brach die Messung ab und es kam ein Fehler, dass die zu speichernden Daten nicht da seien.
Dabei wurden 8 Kanäle mit je 100kS ausgelesen. (Die KArte 6259 kann 1MS, wenn mehrere Kanäle genutzt werden.) Das Problem konnte ich durch halbieren der ABatstrate beheben, aber das kann auch nicht die Lösung sein.

Bei der Analyse der zweiten Schleife mit Sonden wird deutlich, dass die Queue nichtmal erkannt wird,weil die Schleife nicht läuft. Wenn ich i in eine Anzeige führe, sehe ich, dass es bei der 0. Interation bleibt.
@ GerdW

Inwiefern programmiere ich ein Nichtfunktionieren dieser Konstruktion? Eingentlich war meine Absicht, dass sie läuft...


RE: Messdaten per queue in .tdms - GerdW - 09.07.2012 13:45

Hallo Ralph,

verfolge doch einfach mal mittels Highlighting, was in welcher Reihenfolge abgearbeitet wird. Sprich: guck dir den DATAFLOW an. Dann wird dir auffallen, warum die zweite Schleife (die da die Queue lesen soll) nicht läuft - bzw. später als gedacht...

Die Fehlermeldung könnte damit zusammenhängen, dass dein RAM voll belegt war nach mehreren Minuten Messung bei 100kS/s. Das Halbieren der Abtastrate löst das Problem nicht, sondern es dauert nur doppelt so lange, bis es wieder auftritt...


Warum stoppt der Dataflow? - ralph_schuster - 12.07.2012 11:26

ALso ich sehe deutlich, dass an einem Tor nichts anliegt und daher die Schleife nicht aktiv wird. Also darf man die Fehlerverbindung nicht in Reihe schalten, wenn man möchte, dass etwas parallel stattfindet? Oder wie ist dies zu erklären?
Vielen Danke auf jeden Fall!


RE: Messdaten per queue in .tdms - GerdW - 12.07.2012 12:31

Hallo Ralph,

Zitat:ich sehe deutlich, dass an einem Tor nichts anliegt
Tor? Was ist ein Tor?

Zitat:darf man die Fehlerverbindung nicht in Reihe schalten, wenn man möchte, dass etwas parallel stattfindet?
Da ist etwas Wahres dran Smile


RE: Messdaten per queue in .tdms - ralph_schuster - 12.07.2012 12:33

Ich meine Tunnel. Also ein direkter Port in eine Schleife. Wenn davon einer keine Informationen enthält startet die Schleife nicht. Ist das korrekt?


RE: Messdaten per queue in .tdms - ralph_schuster - 12.07.2012 12:57

Das Queue-Problem scheint gelöst,
nun bekomme ich den Fehler -50103, wie im Screenshot ersichtlich beim starten des Tasks.
Zu diesem Fehler habe ich folgendes gefunden, sehe aber nicht, dass einer dieser Fälle zutrifft. Sieht jemand das Problem?

Zitat:Solution:
This error is the result of NI-DAQmx recognizing a physical resource conflict. Because the error can be observed in a variety of situations, we describe several possible cases below.
Case 1: Running a DAQmx application after a Traditional DAQ application without first resetting the Traditional DAQ driver.
Case 2: Continuously starting and clearing a DAQmx task (in a loop) for an extended period of time.
Case 3: Generating a finite pulse train and another counter task on the same device in LabVIEW with NI-DAQmx.
Case 4: Using multiple DAQ Assistant Express VIs to access channels on the same data acquisition board.
Case 5: Using multiple SubVIs that run without any error independently, but generate an error when called from a top-level VI.
Case 6: Concurrently running two or more analog input or analog output tasks.
Case 7: Failing to properly clear a task and release its resources.
(http://digital.ni.com/public.nsf/allkb/485201B647950BF886257537006CEB89)


RE: Messdaten per queue in .tdms - GerdW - 12.07.2012 13:00

Hallo ralph,

leider sieht man auf dem Bild nicht alles, was nötig wäre. Z.B. erkennt man nicht, welche Kanäle du zum Task hinzufügst und ob einer davon doppelt vorkommt...

Vielleicht mal das VI anhängen statt sub-optimaler Bilder?