Problem bei TDMS lesen - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenbank & File IO (/Forum-Datenbank-File-IO) +---- Thema: Problem bei TDMS lesen (/Thread-Problem-bei-TDMS-lesen) Seiten: 1 2 |
Problem bei TDMS lesen - Neska - 10.07.2013 13:55 Hallo, im angehängten VI erstelle oder ersetze ich eine TDMS-Datei, schreibe mit einer for-Schleife die Zahlen 0 ... 9 rein und schließe sie wieder. Im Anschluss defragmentiere ich die Datei. Nun zum Problem: Im false-Fall öffne und schließe ich die TDMS 9 mal innerhalb der for-Schleife und lese jeweils den Wert aus. [attachment=45339] Das funktioniert einwandfrei und führt zu dem Ergebnis [attachment=45340] Im true-Fall öffne und schließe ich die TMDS jeweils außerhalb der for-Schleife, also nur einmal, und will mit der Referenz den Wert in der for-Schleife 9 mal auslesen. [attachment=45338] Dies führt allerdings zu dem Fehler [attachment=45341] Da ich mir aber mit dem true-Fall erhebliche Zeitersparnisse erhoffe, tendiere ich zu dieser Vorgehensweise. Ich kann auch nicht auf Arrays oder Text-Dateien ausweichen, da ich es mit großen Datenmengen zu tun habe und auf einzelne Kanäle zugreifen muss. Kann sich jemand die Ursache für diesen Fehler erklären und weiß eine Maßnahme? Gruß Neska RE: Problem bei TDMS lesen - Trinitatis - 10.07.2013 13:59 Hallo Neska, das sagt doch schon die Meldung EOF. Du versuchst, am Ende der Datei weiterzulesen, d.h. der Lesepointer steht am Ende und du möchtest weiterlesen - da ist aber nix mehr zu lesen. Also entweder du nimmst den automatischen Fehlerbehandler raus (VI-Einstellungen) oder du sorgst dafür, dass du nix mehr liest, wenn das Dateiende erreicht ist. Gruß, Marko RE: Problem bei TDMS lesen - Neska - 10.07.2013 14:31 Sehr hilfreicher Beitrag... Fehlerbehandler rausnehmen hat nichts geändert. Und nichts mehr lesen auch sehr sinnvoll... Kann man den Lesepointer nach einem Lesen der TDMS auch wieder auf den Anfang setzen, ohne dass man diese schließt und wieder öffnet? RE: Problem bei TDMS lesen - Trinitatis - 10.07.2013 14:44 bist du dir sicher, dass du auch den automatischen Fehlerbehandler deaktiviert hast? ansonsten speicher mal <= 2011. RE: Problem bei TDMS lesen - Neska - 10.07.2013 14:48 2010er RE: Problem bei TDMS lesen - jg - 10.07.2013 14:58 Lösende Maßnahme: Vergib mal einen Gruppennamen, bzw. falls nicht, schließe "Untitled" beim Lesen an. Das fehlt dir nämlich zur vollständigen Lokalisierung der Messwerte in der tdms-Datei. Gruß, Jens RE: Problem bei TDMS lesen - Trinitatis - 10.07.2013 15:06 @Jens ist das ein Bug in LV oder kannst du dir dieses Verhalten erklären. Ich hätte ja glatt gedacht, LV vergibt selbst das untitled, wenn nötig. @Neska Sorry für meine erste pampige Antwort - da waren wohl die Finger schneller, als das Hirn Gruß, Marko RE: Problem bei TDMS lesen - Holy - 10.07.2013 19:37 Scheinbar ist das ein Bug. RE: Problem bei TDMS lesen - Neska - 11.07.2013 09:29 Top, Jens. So gehts. Es ist eine deutliche Verbesserung hinsichtlich der Laufzeit bemerkbar. Allerdings, wenn man es mit Arrays laufen lässt, also einfach in ein Array Schreiben und ausgeben lassen, ist es mit TDMS immernoch etwa um den Faktor 10000 langsamer... Mir ist schon klar, dass es schneller geht, wenn man direkt auf dem Arbeitsspeicher schreibt und liest, als auf der Festplatte, aber so gravierend? Gibt es noch andere Möglichkeiten, wenn die Datenmengen die Arbeit mit Arrays untersagen? Gruß Neska RE: Problem bei TDMS lesen - Holy - 11.07.2013 18:58 Festplattenzugriffe sind langsam. Typischerweise im einstelligen ms-Bereich. Wenn du es aufgrund der Datenmenge nicht komplett im Arbeitsspeicher halten kannst dann könntest du es vielleicht auf die relevanten Bereiche reduzieren oder ggf. eine SSD verwenden. Diese haben erheblich kürzere Zugriffszeiten. |