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 

TDMS loggt nicht/sehr langsam



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!

28.12.2018, 13:45
Beitrag #1

Roumaen Offline
LVF-Grünschnabel
*


Beiträge: 15
Registriert seit: Jul 2018

15, 18 & 19
2016
DE


Deutschland
TDMS loggt nicht/sehr langsam
Werte Helfer,

ich komme nicht weiter :/ Ich bin dabei einen Datenlogger aufzubauen und kupfere zu Lernzwecken etwas das LV-Beispiel ab. Ich habe hier aber noch einen Loop zur Messwertbearbeitung (Umrechnung, Filterung etc.) zwischen den DAQ- und den Logging Loop geschoben, weshalb die Messwerte durch zwei Queues durchmüssen, bevor sie gespeichert werden.

Mein Problem besteht aktuell darin, dass mein TDMS-Write (scheinbar) nur sehr langsam arbeitet und oft nur die ersten Werte einer Messung speichert. Wenn ich mir die Anzahl der Elemente in den zwei Queues (vom Aquisition Loop zum Processing Loop und von jenem dann zum Logging Loop) während der Messung anschaue, dann füllt sich die zweite sehr rasch, als würde per TDMS gar nichts "abgeholt" bzw. dequeued werden.

Was mich hier irritiert ist, dass das nicht von der Samplingfrequenz der Datenerfassung abzuhängen scheint, da sich die Queue auch bei einer Messung pro Sekunde mit der selben Geschwindigkeit mit der der Loop zu laufen scheint füllt. Mein DAQmx Read wartet unendlich lang auf neue Werte; deshalb sollte doch auch immer nur etwas enqueued werden, wenn ein neuer Messwert zur verfügung steht?!

Desweiteren; wenn ich die Messung etwas länger laufen lasse (+10 Sekunden) kann ich das ganze Programm oft nicht mehr sauber schließen, weil die Loops (Processing und Logging) noch beschäftigt sind oder komplett hängen. Und wenn das zu oft der Fall ist, muss ich sogar LV komplett schließen, weil das ganze Program selbst nach Neustart kaum auf Befehle reagiert. Ich tippe auf irgendwelche Speicherprobleme.

Meine Fragen an euch:
1.) ist es hier sinnvoller die Daten Blockweise per TDMS zu speichern? Ich hatte gelesen, dass es wohl efizienter wäre wobei ich eigentlich dachte, dass TDMS genau für meine Anwendung gedacht ist (Streaming/Logging).
2.) Spricht etwas gegen die Architektur mit den zwei Queues? Ich möchte gerne die Umgerechneten Daten speichern und auch Anzeigen (per extra Notifier), weshalb meiner Meinung nach der Processing Loop vor der Anzeige bzw. dem Logging Loop durchlaufen werden muss.

Ich nutze LV 2015 Student 32bit auf einem Lenovo W530 mit i7 4x2,6 GHZ und 5400 RPM HDD

Darüber hinaus freue ich mich natürlich über jede Anregung zu meinem Entwurf! (Ich habe einen Ordner mit allen VIs angehängt - ich bin unfähig einen Projekt zu erstellen, das alles enthält Wall)

Ich hoffe meine Probleme sind trivial für euch - Besten Dank im Voraus und guten Rutsch euch allen!


Angehängte Datei(en) Thumbnail(s)
               

0.0 .zip  Datenlogger.zip (Größe: 879,49 KB / Downloads: 240)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
TDMS loggt nicht/sehr langsam - Roumaen - 28.12.2018 13:45

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  TDMS-Daten direkt schreiben, nicht im RAM halten RabenFlug 2 3.777 12.04.2019 10:23
Letzter Beitrag: RabenFlug
  XML Datei lesen dauert sehr lange toaran_ 12 11.136 02.08.2007 12:15
Letzter Beitrag: toaran_
  Daten sehr schnell erfassen Philip1403 1 3.535 25.04.2006 12:22
Letzter Beitrag: eg
  Auslesen aus Access sehr langsam Marco 2 5.203 26.04.2005 15:16
Letzter Beitrag: Marco

Gehe zu: