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 

Dieses Thema hat akzeptierte Lösungen:

TDMS schreiben viele Daten



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!

04.07.2013, 09:21
Beitrag #1

Sam789 Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Nov 2012

12
-
EN


Deutschland
TDMS schreiben viele Daten
Hi LabVIEW Pro´s

Ich habe folgendes Problem:

Ich speichere eine Menge Daten kontinuierlich in ein TDMS file. Sprich bis zu 35 Messdaten und das alle 0,5 sek. Und ca 100 Messdaten alle 20 sek.
Über die Zeitdifferenz vor dem Schreiben und danach sehe ich, dass nach und nach der Vorgang immer langsamer wird.
Nach dem starten des Aufzeichnens benötigt das VI ca. 10-20 ms. Nach 1 Stunde sind es schon um die 650ms und ist 25MB groß. Man kann dirket zuschaun wie der Zeitbedarf fürs schreiben länger wird.

Was kann ich tun? Habe ich da ein Speicherleck oder sind das zuviele Speicherzugriffe / Daten??


(Das Programm habe ich aus einem großen VI rauskopiert, leider wird alles irgendwo eingefügt von LabVIEW, es geht aber nur um das Blockdiagram und die TDMS dlls.)
Eine TimedLoop is alle 500ms die andere alle 20sek.

Das VI funktioniert nur bei 2012, 2010 nicht...


Angehängte Datei(en)
12.0 .vi  TDMSwrite.vi (Größe: 143,23 KB / Downloads: 360)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.07.2013, 12:01
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 17.470
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: TDMS schreiben viele Daten
Hallo Simon,

Zitat:Ich speichere eine Menge Daten kontinuierlich in ein TDMS file. Sprich bis zu 35 Messdaten und das alle 0,5 sek. Und ca 100 Messdaten alle 20 sek.
Und wo kommen hier eine "Menge Daten" vor? Hmm

Zitat:Über die Zeitdifferenz vor dem Schreiben und danach sehe ich, dass nach und nach der Vorgang immer langsamer wird.
Ohne dein VI anschauen zu können: irgendwo ein BuildArray, welches ein immer größer werdendes Array erzeugt?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2013, 12:21
Beitrag #3

Sam789 Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Nov 2012

12
-
EN


Deutschland
RE: TDMS schreiben viele Daten
Das sind doch ne Menge Daten, und werden nach jedem schreiben auf das TDMS file immer mehr. Die müssen doch beim nächsten mal schreiben verwaltet werden?!?

Was meinst du mit Array schreiben?

Hab jetzt noch screenshots gemacht.


Angehängte Datei(en) Thumbnail(s)
                   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2013, 12:28
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.470
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: TDMS schreiben viele Daten
Hallo Simon,

also 70 Messwerte pro Sekunde sind nun nicht wirklich "eine Menge Daten"...

Zu den Scrennshots:
- Mir ist nicht wirklich klar, warum man so viele lokale Variablen nutzen muss.
- Mir ist nicht wirklich klar, warum man ein 1D-Array so kompliziert in ein 2D-Array wandeln muss, damit man dann 1D-Array in TMDS speichern kann.

Zitat:Was meinst du mit Array schreiben?
Man sieht leider nicht, wo z.B. diese lokalen Variablen mit 1D-Arrays befüllt werden. Man sieht nicht, wie die Arrays zusammengesetzt werden. Man sieht nicht, ob du irgendwo eine Schleife mit einem uninitialisierten Schieberegister (und Arrays darin) verwendest...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2013, 12:41
Beitrag #5

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: TDMS schreiben viele Daten
Hallo,

Um dir effektiv helfen zu können, bitten wir dich, dein VI hochzuladen. Wenn es "geheime" Dinge enthält, dann lösche sie vorher raus; es ist meist immer noch besser ein nicht funktionierendes VI zu sehen, als ein paar Screenshots.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
04.07.2013, 12:49
Beitrag #6

Sam789 Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Nov 2012

12
-
EN


Deutschland
RE: TDMS schreiben viele Daten
(04.07.2013 12:28 )GerdW schrieb:  - Mir ist nicht wirklich klar, warum man so viele lokale Variablen nutzen muss.
- Mir ist nicht wirklich klar, warum man ein 1D-Array so kompliziert in ein 2D-Array wandeln muss, damit man dann 1D-Array in TMDS speichern kann.

zu 1: Ich hab so viele Controls und Indicator die ich an anderen Stellen schon benötige. Und wenn ich die vom Ursprung hier hin "verdrahte", dann verliert man den Überblick bei so vielen Linien.
zu 2: Weil ichs nur so geschaft hab, dass die Daten ins TDMS geschrieben werden. Vielleicht kannst mir sagen wie man das anstellt?
Ich hab nur eine Group Name und und darin sind alle Daten in unterschiedlichen Channels.

Zitat:Man sieht leider nicht, wo z.B. diese lokalen Variablen mit 1D-Arrays befüllt werden. Man sieht nicht, wie die Arrays zusammengesetzt werden. Man sieht nicht, ob du irgendwo eine Schleife mit einem uninitialisierten Schieberegister (und Arrays darin) verwendest...

Die Arrays werden durch For-Schleifen erstellt. Schieberegister habe ich keine...

Hilft das weiter??
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
04.07.2013, 13:01
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: TDMS schreiben viele Daten
Das sehr häufige Schreiben von einzelnen Datensätzen ist bei TDMS auf Dauer unperformant.

Vgl. z.B. hier:
http://www.labviewforum.de/Thread-TDMS-k...#pid151660
oder hier:
http://www.labviewforum.de/Thread-Proble...TDMS-Datei

Schau doch mal, ob die erwähnten Optionen auch bei der Advanced API Abhilfe schaffen.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.07.2013, 08:58
Beitrag #8

Sam789 Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Nov 2012

12
-
EN


Deutschland
RE: TDMS schreiben viele Daten
Also dass hilft alles nichts, selbst wenn ich die Beispiele von NI verwende..

Wenn ich das VI kontinuierlich durchlaufen lasse und die TDMS file öffne, schreibe, und wieder schließe, wird das von Zeit zu Zeit langsamer.

Ich brauch jemanden der sich mit TDMS auskennt und selbst kontinuierlich Daten abspeichert und das am besten mit TDMS ADVANCED OPEN, SYNCHRON oder ASYNCHRON...

Hoffe es meldet sich jemand...

Bin am verzweifelnKAKA
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.07.2013, 09:02 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2013 09:11 von GerdW.)
Beitrag #9

GerdW Offline
______________
LVF-Team

Beiträge: 17.470
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: TDMS schreiben viele Daten
Hallo Simon,

du hast Jens' Bermekung gelesen?

1.) Quick&Dirty-Lösung: lagere die Speicherung in eine parallele Schleife aus und transferiere die zu speichernden Daten per Queue zu dieser Schleife. Dies ist der Standardansatz, um eine Datenerfassungsschleife von allen bremsenden Einflüssen zu entkoppeln...

2.) Profil ergänzen nicht vergessen...

3.) Zu meiner Anmerkung zu den unnötigen Array-Operationen:
   

4.) Wenn man dann sieht, wieviele einzelne Daten du in in die TMDS-Datei schreibst: kann man die nicht etwas besser zusammenfassen? Erst wird ein 1D-Array zeilenweise geschrieben, dann das nächste. Warum nicht beide zu einem 2D-Array zusammenfassen? Usw. usf.

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
05.07.2013, 09:29 (Dieser Beitrag wurde zuletzt bearbeitet: 05.07.2013 09:33 von Sam789.)
Beitrag #10

Sam789 Offline
LVF-Grünschnabel
*


Beiträge: 44
Registriert seit: Nov 2012

12
-
EN


Deutschland
RE: TDMS schreiben viele Daten
[quote]4.) Wenn man dann sieht, wieviele einzelne Daten du in in die TMDS-Datei schreibst: kann man die nicht etwas besser zusammenfassen? Erst wird ein 1D-Array zeilenweise geschrieben, dann das nächste. Warum nicht beide zu einem 2D-Array zusammenfassen? Usw. usf. [\quote]

Ich will doch alle Messdaten in ein extra Channel schreiben?

Ich hab hier ein kleines VI was 12 mal Pseudowerte speichert.
Vll magst du das Programm mal 10 min laufen lassen, und siehst dabei auf die verstrichen Zeit "time".

Grüße

Danke für deine kräftige HilfeGuru1


Angehängte Datei(en)
10.0 .vi  TDMS - Write data.vi (Größe: 87,81 KB / Downloads: 395)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Question Logdatei für unregelmäßige Daten (TDMS?) TpunktN 7 5.532 23.06.2021 07:56
Letzter Beitrag: TpunktN
  TDMS-Daten direkt schreiben, nicht im RAM halten RabenFlug 2 3.794 12.04.2019 10:23
Letzter Beitrag: RabenFlug
  Speicherung von Daten via TDMS DM_94 7 6.179 30.08.2018 11:43
Letzter Beitrag: GerdW
  Daten in einem Access Datenbank schreiben galilio 10 14.219 01.05.2017 08:04
Letzter Beitrag: galilio
  DI Daten in Datei schreiben puuk! 10 13.606 15.12.2015 13:08
Letzter Beitrag: GerdW
  mySQL viele connections - schließen oder eine aufsplitten? LVT_Hiwi 2 5.522 18.02.2015 10:56
Letzter Beitrag: LVT_Hiwi

Gehe zu: