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 

Größe von noch nicht fertig erstellter TDMS bestimmen



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!

14.09.2013, 15:29 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2013 11:54 von jg.)
Beitrag #1

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
Größe von noch nicht fertig erstellter TDMS bestimmen
Hallöchen mit meinem cRIO nehme ich Messwerte imFPGA Modus auf und speichere diese in einer TDMS nach diesem Schema: http://www.ni.com/white-paper/11198/de/

Nun möchte ich in Abhängigkeit der Dateigröße der TDMS eine neue Datei beginnen.
Eine ähnliches Problem wird hier http://www.labviewforum.de/Thread-TDMS-i...n-anfangen schon gelöst.
Allerdings ist die Bedingung für den Beginn einer neuen Datei hier der Schleifenindex.
Anstatt diesen zu verwenden suche ich nach einer Möglichkeit die Größe einer Datei vor dem "TDMS Close" zu bestimmen. Mit get File Size kann man leider nur Dateigrößen bestimmen, bei denen die "Dateibildung" schon abgeschlossen ist.

Gibt es hierfür eine Lösung?

Über die Größe des freien Speichers des cRIO zu gehen ist bei mir nicht möglich, da neben dieser Aufgabe weitere Daten entstehen und andere wieder gelöscht werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
15.09.2013, 12:14
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Größe von noch nicht fertig erstellter TDMS bestimmen
Die Größe einer TDMS-Datei vorherzusagen, ist ein schwieriges Unterfangen, da neben den eigentlichen Daten auch eine ganze Menge Overhead wie Kanalnamen, Attribute etc. pp. geschrieben wird. Die Größe hängt auch davon ab, ob z.B. nur Einzelwerte oder immer wieder gesamte Arrays/Waveforms geschrieben werden. Jeder Schreibvorgang erzeugt weiteren Overhead.

Führt man am Ende nach dem Schließen der Datei noch ein TDMS Defragment aus, wird die Dateigröße in der Regel danach deutlich kleiner ausfallen.

Entgegen deiner Aussage müsste es trotzdem möglich sein, immer wieder per Filesize oder "File/Directory Info" möglich sein, die aktuelle Größe der tdms-Datei zu bestimmen. Es ist möglich, dass du nicht immer die exakte Größe zurückbekommst, da aus eigener Erfahrung das Betriebssystem VxWorks immer nur komplette Blöcke wegschreibt solange die Datei nicht geschlossen ist, aber einen Anhaltspunkt bekommst du auf jeden Fall.

Alternativ musst du einige Versuche machen und ermitteln, wie groß deine TDMS-Dateien nach einer bestimmten Anzahl von Schreibvorgängen ist. Dann kannst du wieder auf die Lösung "Anzahl Schleifendurchgänge" gehen. Gerne werden auch Dateien nach bestimmter Laufzeit (z.B. jede Stunde / jeder Tag) neu angelegt.

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
15.09.2013, 22:33 (Dieser Beitrag wurde zuletzt bearbeitet: 15.09.2013 22:37 von Mietzekatze.)
Beitrag #3

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
RE: Größe von noch nicht fertig erstellter TDMS bestimmen
Über deinen zweiten Vorschlag habe ich auch schon nach gedacht. Dieser ist dann leider aber nicht so flexibel.

Wenn ich die Größe der noch nicht beendeten Datei mit "Get File Size" herausbekommen möchte, bekomme ich den Fehler 1430 zurück: The path is empty or relative. You must use an absolute path.

Die Größenanzeige bleibt auf Null.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 07:26
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Größe von noch nicht fertig erstellter TDMS bestimmen
(15.09.2013 22:33 )Mietzekatze schrieb:  Über deinen zweiten Vorschlag habe ich auch schon nach gedacht. Dieser ist dann leider aber nicht so flexibel.

Wenn ich die Größe der noch nicht beendeten Datei mit "Get File Size" herausbekommen möchte, bekomme ich den Fehler 1430 zurück: The path is empty or relative. You must use an absolute path.

Die Größenanzeige bleibt auf Null.

Was genau übergibst du an das VI "Get File Size"? Laut Fehlermeldung stimmt da was nicht.

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
16.09.2013, 11:35
Beitrag #5

Mietzekatze Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 118
Registriert seit: Nov 2011

2014 SP1
2011
DE


Deutschland
RE: Größe von noch nicht fertig erstellter TDMS bestimmen
Das übergebe ich ( Anhang). Sollte der aktuelle Pfad der Datei sein.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.09.2013, 12:11 (Dieser Beitrag wurde zuletzt bearbeitet: 16.09.2013 12:15 von GerdW.)
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.465
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: Größe von noch nicht fertig erstellter TDMS bestimmen
Hallo Mietze,

dort, wo der rote Kreis gezeichnet ist, erstellst du einen neuen Dateinamen für den Fall, das die Referenz nicht existiert. Und du fragst uns, warum für eine neue Datei, die noch nicht existiert, die Dateigröße Null ausgegeben wird?

Im zweiten Case gibst du den Pfad "D:\x" an die FileSize-Funktion - und wunderst dich, warum ein Verzeichnis die Dateigröße Null hat?

Was sagt Homer? Doh...

Zitat:Sollte der aktuelle Pfad der Datei sein.
Hast du einfach mal rudimentäres Debugging mit Sonden und Highlighting probiert? Dann bräuchtest du nicht im Konjunktiv sprechen, sondern wüßtest Bescheid... Hmm

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.09.2013, 09:54
Beitrag #7

Morpheus Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 205
Registriert seit: Jul 2009

2019 SP1, 2020 SP1
2005
EN

8000
Schweiz
RE: Größe von noch nicht fertig erstellter TDMS bestimmen
Hallo Mietzekatze

Ich sehe es genau so wie Gerd... Da hat sich wohl ein Programmierfehler eingeschlichen.

Vor einiger Zeit hatte ich ein Projekt, bei welchem ich die Funktion "Get File Size" verwendet habe, um die Grösse eines offenen TDMS-File auszulesen.
Dies hat funktioniert (allerdings unter Windows).
Gehe davon aus, dass dies unter RT auch geht....

Gruss
Chris
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Gehe zu: