LabVIEWForum.de - "Unbenannt"-Spalten in TDMS-Datei

LabVIEWForum.de

Normale Version: "Unbenannt"-Spalten in TDMS-Datei
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Deine Arbeit hat sich gelohnt, Fehler ist gefunden:
Du solltest "On Error" bei Dequeue nichts mehr weitergeben oder speichern!!! Also so:
[attachment=50967]
Gruß, Jens
vielen Dank!

Was ich dann aber nicht verstehe: Bei meinen Versuchen das Ganze zu reproduzieren, habe ich nie solch eine Fehlerbehandlung verwendet. Dennoch ist das Problem nie aufgetaucht !?
Dann musst du jetzt deine Versuchs-VIs posten, dann finden wir heraus, was da geklappt hat. Glas2

Fakt ist, dass es so wie du es gepostet hast, nicht funktionieren kann! THINK Dataflow!

Machen wir nur die beiden oberen Schleifen:
  • Deine Erfassungsschleife schiebt immer wieder Daten in die Queue, die Analyse Queue holt sich die Datensätze - wenn sie da sind - und verarbeitet sie.
  • Jetzt wird die Erfassungsschleife beendet
  • Die Analyseschleife arbeitet weiterhin schrittweise die Elemente aus der Queue ab.
  • Gleichzeitig wird hinter der Erfassungsschleife immer wieder nachgeschaut, ob die Queue leer ist.
  • Wenn die Queue leer ist (d.h. die Analyseschleife hat das letzte Element abgearbeitet und startet auch wieder von vorne), zerstörst du die Queue.
  • Durch das Zerstören der Queue wird das Warten von "Dequeue Element" beendet - mit einem Fehler! Und dadurch auch deine Schleife, ABER: Es wird auch noch einmal der Default-Datentyp der Queue verarbeitet!!! Das willst du doch gar nicht.

Diesen Schrittkette hast du zweimal, ohne Error-Handling kommen also 2 eigentlich nicht existente Datenpakete am "Write TDMS" an. Welches jetzt genau die "Unbenannt" Spalten erzeugt, das habe ich mir nicht angeschaut - mglw. sogar beide.

Prinzipiell ist der Aufbau i.O. - bis auf die fehlende Fehlerbetrachtung, vor allem da du einen Fehler zur Beendung der Schleifen verwendest.

Gruß, Jens

P.S.: Ich bin selber auch schon in diese Falle getappt, das passiert dir jetzt 1x, und dann nie wieder. Wenn du es noch besser machen willst, dann beachtest du auch den "Timed-Out" Ausgang am Dequeue...
Nachtrag: In gewissen Grenzen hängt dein Problem auch mit dem Datentyp für deine Queues zusammen. Ein Cluster enthält auf jeden Fall Elemente, ein Array kann auch keine Elemente enthalten. Wobei "hole Element 0" eines leeren Arrays auch wieder den Default-Datentyp liefert.
Ah sehr schön, vielen Dank! Jetzt funktioniert es Smile


Die Test-VIs habe ich auf einem anderen Rechner und davon gibt es glaube ich auch nur noch eines... aber ich glaube, dass ich weiß warum das dort funktioniert hat: Ich hatte dort die Signalverläufe manuell mit einer For-Schleife erstellt und diese dann einmalig (also ohne While-Schleife) verarbeitet und geschrieben. Dadurch wird der von dir geschilderte Ablauf so nicht stattfinden = keine zusätzlichen Spalten.
Seiten: 1 2
Referenz-URLs