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 

EOF bei Read TDMS?!



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!

24.10.2007, 10:35 (Dieser Beitrag wurde zuletzt bearbeitet: 03.12.2007 22:35 von jg.)
Beitrag #1

Bärbel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 50
Registriert seit: Aug 2007

2020 64-bit / 2021 32-bit
2007
DE

52062
Deutschland
EOF bei Read TDMS?!
Hallo,

ich muss die Daten einer sehr großen TDMS-Datei umwandeln und in einer Spreadsheet-Datei abspeichern. Leider passen die Daten nicht komplett in den Speicher, so dass ich sie gerne blockweise auslesen würde. Passenderweise gibt es ja bei Read TDMS die Eingänge "Offset" und "Anzahl", die sich im übrigen auf ganze Datensätze zu beziehen scheinen und nicht auf Datenbytes, wie in der deutschen Hilfe angegeben.

Der erste Lesevorgang funktioniert gut, aber beim zweiten wird immer Fehler 4 (EOF erreicht) gemeldet. Damit ihr das nachvollziehen könnt, habe ich ein kleines VI (LabVIEW 8.2) erstellt, das diesen Fehler auch erzeugt. Damit ihr überhaupt eine TDMS-Datei zum Spielen habt, wird am Anfang eine Datei mit 100 Zeilen und 2 DBL-Spalten erzeugt. (Ändert den Pfad gegebenenfalls.) Die Werte gehen von 1 bis 1,99 bzw. 2 bis 2,99 in Hundertstel-Schritten, damit man nachvollziehen kann, welche Daten u.U. eingelesen worden sind. Vor dem eigentlichen Leseteil wird noch der TDMS-Dateimonitor aufgeblendet, um den Dateiinhalt zu verifizieren. Am besten schaut ihr euch die Wertetabelle an. Werden die Daten nicht aktualisiert, müsst ihr links im Dateiinhalt den Baum mal aufblättern und auf die einzelnen Zweige klicken. (Die heißen alle "unbenannt" oder ähnlich.) Man kann sich die Spalten nebeneinander oder auch einzeln aufblenden lassen. Der Monitor hat rechts unten einen Schalter "Beenden", den solltet ihr zum Schließen benutzen.

Danach kommt der eigentliche Leseteil mit dem Problem. Die Konstanten "Start-Index" und "Anzahl Datensätze" können innerhalb der passenden Werte beliebig eingestellt werden, der erste Lesevorgang funktioniert korrekt. Z.B. kann man 10 Datensätze ab Index 30 einlesen, dann sieht man alle Werte von 1,3 bis 1,39 bzw. 2.3 bis 2,39. Aber jedesmal wird beim zweiten Leseversuch EOF gemeldet, obwohl der EOF-Ausgang auf false steht.

Ich werde das Gefühl nicht los, dass ich irgendwo einen ganz blöden Fehler eingebaut habe, aber langsam werde ich so ein bisschen betriebsblind, wenn ich noch länger auf das Blockdiagramm starre. Vielleicht findet ihr ja was.

Bärbel


Sonstige .vi  Read_TDMS_Test.vi (Größe: 24,62 KB / Downloads: 387)
(LV 8.2)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
26.10.2007, 08:12 (Dieser Beitrag wurde zuletzt bearbeitet: 03.12.2007 22:36 von jg.)
Beitrag #2

Bärbel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 50
Registriert seit: Aug 2007

2020 64-bit / 2021 32-bit
2007
DE

52062
Deutschland
EOF bei Read TDMS?!
Hallo,

mit soooo vielen hilfreichen Antworten hatte ich gar nicht gerechnet #-)

Also arbeite ich jetzt mit einem Workaround. Das Öffnen und Schließen der TDMS-Datei habe ich in die Ausleseschleife hinein gezogen, so dass sie jedes Mal vor dem Lesen geöffnet und nach dem Lesen geschlossen wird. Dann habe ich zur Behandlung der Race Condition, die mir erst jetzt aufgefallen ist und bis jetzt auch keine Probleme bereitete, noch eine Sequenz eingeführt. In meinem Original-Blockschaltbild wird statt in ein Feld in eine Spreadsheet-Datei geschrieben, da kann ich den Fehler durchreichen und benötige die Sequenz nicht.

So komme ich erstmal weiter, aber die "Lösung" tut schon ein bisschen weh...
Wenn also noch jemand eine tolle Idee hat, würde ich mich über eine Antwort immer noch sehr freuen!

Bärbel


Sonstige .vi  Read_TDMS_Test2.vi (Größe: 25,33 KB / Downloads: 301)
(LV 8.2)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2007, 10:20 (Dieser Beitrag wurde zuletzt bearbeitet: 03.12.2007 22:35 von jg.)
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
EOF bei Read TDMS?!
' schrieb:mit soooo vielen hilfreichen Antworten hatte ich gar nicht gerechnet #-)

Offenbar hast Du Dich taktisch falsch verhalten, denn es funktioniert hier eher so:
Formuliere Deine Anliegen so ungenau wie möglich, in schwammigen Worten, schlechtem Stil, unmöglicher Ortographie, falschen Begriffen, mit geringstmöglichen Angaben zur Sache, ohne VI (Und wenn, dann bitte Spaghetti-Durcheinander auf DIN A0 und mit fehlenden SUB-VIs): dann, ja dann, wirst Du hier auf das liebevollste und mit unendlicher Geduld betreut.
Traurig das sagen zu müssen, aber das sind hier leider meine gesammelten Erfahrungen.

Die solltest Dir auch einen anderen Usernamen zulegen, "Bärbel" ist viel zu ehrlich. Beispiele für interessante, geheinmisvolle Namen gibts hier zuhauf, also z-.B sVeNve°ATh , t4b-1ve-2 oder so. Dann steigen Deine Chancen, hier geduldig betreut zu werden, weiter an.

Habe leider noch keine Erfahrungen mit TDMS. Habe etwas im Programm herummodifiziert und dabei vielleicht sogar einen Volltreffer gelandet: Mit Zuweisung eines Gruppennamens funktioniert das VI einwandfrei. Die Anzeige mußte ich ändern (hat aber nichts mit dem Fehler zu tun), da sonst nur die Daten aus dem letzten Durchlauf angezeigt worden wären.
Gruß Ludwig

(VI LV 8.2)


Angehängte Datei(en)
Sonstige .vi  Read_TDMS_Test.mod.vi (Größe: 29,37 KB / Downloads: 272)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2007, 10:55
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
EOF bei Read TDMS?!
@Lucki:
Des meinst du jetzt aber nicht alles ernst, oder?? Wink
Ich hatte mir das VI auch angesehen, war doch recht aufgeräumt (gegenüber dem, was man hier sonst schon so leider gewohnt ist Prost).
Und dass sich hier in der Männer-Domäne jemand als Frau zu erkennen gibt, kann ich nur positiv unterstützenTop1.

@Bärbel:
Du hast eher deshalb so wenig (sprich keine) Antworten erhalten, da das TDMS-Dateiformat noch recht neu ist. Somit kennt sich damit so gut wie keiner (mich eingeschlossen) aus. Ich war bei der Analyse deines VI's auch auf keinen grünen Zweig gekommen. Habe auch nur festgestellt, dass das Read-VI schon nach dem ersten Auslesen "EOF-File=TRUE" ausgibt. Wieso, weshalb, warum, keine Ahnung, deshalb auch keine Antwort von mir.

Trotz des "geballten" Know-How hier im Forum darfst du nicht erwarten, dass du immer und zu allem eine Antwort erhältst.

MfG, 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
26.10.2007, 10:57
Beitrag #5

Bärbel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 50
Registriert seit: Aug 2007

2020 64-bit / 2021 32-bit
2007
DE

52062
Deutschland
EOF bei Read TDMS?!
Hallo Ludwig,

' schrieb:Habe leider noch keine Erfahrungen mit TDMS. Habe etwas im Programm herummodifiziert und dabei vielleicht sogar einen Volltreffer gelandet: Mit Zuweisung eines Gruppennamens funktioniert das VI einwandfrei.
Na, das nenne ich mal einen brauchbaren Hinweis! Vielen Dank, die Benennung der Gruppe scheint wirklich zu helfen.

' schrieb:Offenbar hast Du Dich taktisch falsch verhalten, denn es funktioniert hier eher so:
Formuliere Deine Anliegen so ungenau wie möglich, in schwammigen Worten, schlechtem Stil, unmöglicher Ortographie, falschen Begriffen, mit geringstmöglichen Angaben zur Sache, ohne VI (Und wenn, dann bitte Spaghetti-Durcheinander auf DIN A0 und mit fehlenden SUB-VIs): dann, ja dann, wirst Du hier auf das liebevollste und mit unendlicher Geduld betreut.
Hey, da hab ich mir extra einen weiblichen User-Namen zugelegt, damit ich schnelle Hilfe ohne Ende abgraben kann, und dann erzählst du mir so was! In den meisten Foren funktioniert das Modell "Zeigt-mir-armem-Mädchen-mal-wo-es-langgeht" eigentlich recht gut ;-)

' schrieb:Die solltest Dir auch einen anderen Usernamen zulegen, "Bärbel" ist viel zu ehrlich. Beispiele für interessante, geheinmisvolle Namen gibts hier zuhauf, also z-.B sVeNve°ATh , t4b-1ve-2 oder so. Dann steigen Deine Chancen, hier geduldig betreut zu werden, weiter an.
Wer sagt, dass mein Nick ehrlich ist? Erzähl bitte nicht weiter, dass ich in Wirklichkeit Ralf-Dieter heiße und einen Vollbart trage #-)
(Just kidding...)

Beste Grüße,
R..., äh, Bärbel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2007, 11:21
Beitrag #6

Bärbel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 50
Registriert seit: Aug 2007

2020 64-bit / 2021 32-bit
2007
DE

52062
Deutschland
EOF bei Read TDMS?!
Hallo Jens,

' schrieb:Du hast eher deshalb so wenig (sprich keine) Antworten erhalten, da das TDMS-Dateiformat noch recht neu ist. Somit kennt sich damit so gut wie keiner (mich eingeschlossen) aus. Ich war bei der Analyse deines VI's auch auf keinen grünen Zweig gekommen. Habe auch nur festgestellt, dass das Read-VI schon nach dem ersten Auslesen "EOF-File=TRUE" ausgibt. Wieso, weshalb, warum, keine Ahnung, deshalb auch keine Antwort von mir.

Trotz des "geballten" Know-How hier im Forum darfst du nicht erwarten, dass du immer und zu allem eine Antwort erhältst.
War nicht böse gemeint! Ich hab nur so ein bisschen rumgewitzelt. Mir war klar, dass bei einem so brandneuen Format 1. nur wenige schon einmal damit gearbeitet haben und 2. evtl. auch noch ein paar "Unstimmigkeiten" vorhanden sein könnten.

Was mich noch interessieren würde wäre, ob das Ganze evtl. nur ein Problem mit den deutschen Hilfetexten ist. Manchmal sind die ja schon ein bisschen eigenartig übersetzt. Z.B. der Text zu TDMS Flush: "entfernt aus Gründen der Datensicherheit alle *.tdms-Daten aus dem Systemspeicher". Nun ja. Vielleicht hätte man noch erwähnen sollen, dass sie auch *gespeichert* werden. Jemandem, der noch nicht lange programmiert, wird das vielleicht nicht so klar sein. Und bei TDMS Read wird in der ausführlichen Hilfe bei Anzahl und Offset fälschlicherweise von Daten*bytes* statt Daten*sätzen* gesprochen. Vielleicht fehlt ja auch einfach irgendwo nur der Hinweis, dass alle TDMS-Gruppen benannt werden müssen?!

Aber ok, ich kann nachher erstmal zufrieden ins Wochenende gehen, da Ludwig ja den richtigen Riecher hatte.

Also, wie gesagt, nicht sauer sein! Ich bin zwar noch nicht lange Mitglied und habe auch erst zwei eigene Anfragen veröffentlicht, aber als LabVIEW-Anfänger schätze ich das Forum sehr, auch als Nachschlagewerk.

Viele Grüße,
Bärbel
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.10.2007, 11:34
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
EOF bei Read TDMS?!
' schrieb:Hallo Jens,
War nicht böse gemeint! Ich hab nur so ein bisschen rumgewitzelt.

Also, wie gesagt, nicht sauer sein!
War mit klar und war nicht sauer, dass hört sich bei mir anders an.

Ebenfalls schönes Wochenende.

MfG, 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
18.12.2007, 11:35
Beitrag #8

tobbr Offline
LVF-Neueinsteiger


Beiträge: 6
Registriert seit: Nov 2007

8.2
-
kA


Deutschland
EOF bei Read TDMS?!
Wie kann ich von einer TDMS Datei die LETZEN sagen wir 100 Daten*sätze* (schön das es datensätze sind, mit bytes hätte ich das um einiges verwunderlicher gefunden!) einlesen?

Hab das mal mit negativen Offset probiert, aber das scheint so nicht zu klappen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.12.2007, 12:56
Beitrag #9

Burnout Offline
LVF-Neueinsteiger


Beiträge: 7
Registriert seit: Dec 2007

8.2
-
de

30xxx
Deutschland
EOF bei Read TDMS?!
' schrieb:Wie kann ich von einer TDMS Datei die LETZEN sagen wir 100 Daten*sätze* (schön das es datensätze sind, mit bytes hätte ich das um einiges verwunderlicher gefunden!) einlesen?

Hab das mal mit negativen Offset probiert, aber das scheint so nicht zu klappen.


Ausser, in einer Vorabschleife die Anzahl der Durchläufe bis EOF zu zählen, fällt mir da auch nichts ein.
Alternativ (falls das File nicht groß ist) alles in ein Array auslesen, umdrehen, die ersten 100 auslesen, Rest wegschmeißen, wieder umdrehen
(alles mit Array-Operationen).

Ich hab auch noch eine Frage:
Wie lese ich aus der TDMS Datei den zum Messwert gehörigen Timestamp aus?
Er ist ja drin (sieht man im TDMS-Viewer), aber ausgegeben werden immer nur die Messwerte.
Gibt es da eine bestimmte Variable, die ich an den "format"-Eingang vom Read-TDMS VI anhängen muss?
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
  seltsame Fehlermeldung TDMS read kwakz 18 11.962 22.10.2013 07:02
Letzter Beitrag: Y-P
  Read/Write 3D/4D data: Read Write.vi Error 1 DavidK 2 6.458 30.09.2004 11:08
Letzter Beitrag: DavidK

Gehe zu: