LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Messdaten in mehrere Dateien schreiben

Hallo Frankentaler,

da ich 7.0 nicht installiert habe (die Punkt-Nuller-Versionen sind im Normalfall unbrauchbar), kann ich's nur mit blinden Tipps versuchen:

 

Wenn ich Dich recht verstanden habe, willst Du alle Messdaten in eine gemeinsame Datei schreiben solange der Schalter "Aktivieren" betätigt ist. Jedesmal wenn der Schalter "Aktivieren" eingeschaltet wird soll dazu eine neue Datei mit eindeutigem Namen angelegt werden. Richtig?

 

Ich denke Du solltest den Dateinamen, jedesmal wenn der Schalter den Zustand von Aus nach An wechselt, einfach selbst neu generieren. Hast Du das mal ausprobiert? Im Übrigen, wenn ich so drüber nachdenke, müsste das Express-VI eher im Modus "append to File" laufen, denn die Daten sollen ja in einer gemeinsamen Datei landen solange der Schalter "Aktivieren" an ist, wenn ich Dich richtig verstanden habe.

 

Also, probier doch mal aus ob das Express-VI erwartungsgemäß reagiert wenn Du den Dateinamen selbst generierst. Einen Eingang für einen Dateinamen gibt's ja hoffentlich.

 

Grüße,

Thomas

0 Kudos
Message 11 of 21
(1,854 Views)

Ja, einen Dateinamen-Eingang gibt es, zumindest in LV 8.6 und 2009.

Das mit dem selber benennen muss dann ja funktionieren, wenn man eine entsprechende Struktur aufbaut.

Du kannst ja entweder warten bis ThHagel ein Beispiel erstellt hat oder es selber versuchen, sollte nicht zu schwer sein.

Wenns mit der Methode dann letztendlich doch auch nicht klappt dann bin ich echt Ratlos.

 

Hoffe es klappt!

 

Pattos

LabVIEW Gretchin
0 Kudos
Message 12 of 21
(1,842 Views)

Danke euch beiden für eure Antworten!

 

@ ThHagel: Ja, du hast alles Sachen genau richtig verstanden! Smiley Wink

 

Folgendes hab ich ausprobiert: Ich habe im Express-VI gesagt, dass der Benutzer bei jeder Iteration die Datei wählen soll und dass eben der nächste verfügbare Dateiname ausgewählt wird, falls es diese schon gibt. Dann hab ich den Dateinamen-Eingang mit nem Bedienelement verbunden.

Wenn ich jetzt bei dem Bedienelement die zuletzt erstellte Datei auswähle und dann die Messung neu starte und dann nochmals diese zuletzt erstellte Datei auswähle (es kommt noch ein "Öffnen-PopUp"), DANN klappt es und es wird tatsächlich eine neue Datei erstellt...

Damit bin ich schon sehr zufrieden! Danke für die Tipps!

Woran liegt es aber, dass ich diese Auswahl 2mal machen muss?? Smiley Tongue 

 

Viele Grüße! 

 

0 Kudos
Message 13 of 21
(1,833 Views)

Hallo nochmal! Da das Problem jetzt behoben scheint - vielen Dank dafür nochmal, habe ich noch eine Frage an ThHagel:

 

Du hast etwas weiter vorher geschrieben, ob es wirklich nötig sein, die DAQmx-Konfiguration bei jedem Schleifendurchlauf aufs neue zu initialisieren und zu schließen. Was genau meinst du damit und wie kann ich es besser machen?

 

Dankeschön und Gruß! 

0 Kudos
Message 14 of 21
(1,822 Views)

Hallo Frankentaler,

 

leider kann ich Dir kein VI schicken weil ich kein 7.0 zur Verfügung hab.

Aber was ich meinte ist, dass Du die Initialisierung und den Start der DAQmx-Datenerfassung (also die ersten drei VI's in der DAQmx-Kette) erledigen solltest bevor das Programm in die Schleife läuft. Den DAQmx-Task reichst Du dann einfach in die Schleife weiter (per Tunnel auf der linken Seite der Schleife). Darin befinden sich dann nur noch das Read-VI, die Express-VI's und deine Bedien-/Anzeigeelemente. Das DAQmx-Close VI solltest du erst ausführen wenn die Schleife beendet wird. Dazu kannst du einfach den DAQmx-Task aus dem Schleifeninneren wieder nach draußen weiter reichen (per Tunnel an der rechten Seite der Schleife) und dann als letztes VI das DAQmx-Close ausführen.

 

So in etwa wie auf dem angehängten Screenshot zu sehen (bin ich jetzt erst drauf gekommen)...

 

Grüße,

Thomas

Message 15 of 21
(1,821 Views)

Hey Thomas! Danke für deine schnelle Antwort und Hilfe!

Es klappt - wie sollte es anders sein?! - natürlich nicht auf Anhieb! Smiley Mad

Ich bekomme mit dieser "Methode" immer nichts zu sehen in der Grafik und nach dem Stoppen der While-Schleife kommt "Fehler 200278 ist bei DAQmx Read aufgetreten"... Ähm was auch immer!? 

0 Kudos
Message 16 of 21
(1,817 Views)

Hallo Frankentaler,

 

kannst du einfach mal dein vi anhängen? Dann bräuchten wir keine Glaskugel...

Best regards,
GerdW


using LV2016/2019/2021 on Win10/11+cRIO, TestStand2016/2019
0 Kudos
Message 17 of 21
(1,813 Views)
0 Kudos
Message 18 of 21
(1,810 Views)

Hallo Frankentaler,

 

hab nicht aufgepasst. Bei meinem Screenshot gings mir in erster Linie um's Prinzip für die Verbesserung deines VI's.

 

Was ich aber übersehen habe ist, dass du es jetzt mit einer countinous acquisition zu tun bekommst. Bei der Initialisierung mit dem Timing VI musst Du jetzt umstellen auf "Continuous Samples" statt "Finite Samples".

 

So... das verändert dann aber die Bedeutung des "Samples Pro Kanal" Einganges am DAQmx Timing VI. Du gibst nun damit vor wie groß ein Ringpuffer ist in dem die Messwerte zwischengespeichert werden bevor Du sie mit einem Read ausließt. Da musst Du dir überlegen was für deine Anwendung Sinn macht. Du kannst ja der Einfachheit halber den Wert einfach offen lassen, dann kümmert sich DAQmx automatisch um einen brauchbaren Puffer (ließ dazu mal die Hilfe).

 

Beim Auslesen der Daten wird jetzt der Eingang "Samples per Channel" am Read-VI wichtig. Ich vermute mal, dass du immer ein Paket von gleich vielen Messwerten wegschreiben willst und zwar so viele wie in Deinem Bedienelement "Samples pro Kanal" eingestellt sind. Du musst also dieses Bedienelement jetzt mit dem Read-VI verbinden.

 

Bei der ganzen Sache muss man immer schauen, dass man auch schnell genug die Messdaten erfasst und verarbeitet damit der Puffer nicht überläuft.

 

Das hört sich jetzt alles sehr kompliziert an, aber es ist die einzige Möglichkeit eine Lückenlose Aufzeichnung  zu realisieren. Dein bisheriges VI ist in den Zeiträumen in denen die Initialisierung druchgeführt wird blind und es gehen auf jeden Fall eine unbekannte Anzahl an Messwerten verloren. Wenn es Lückenlos werden soll, dann musst Du es wie oben beschrieben machen.

 

Hoffe es klappt so... diesmal hab ich ein sozusagen "getesteten" Screenshot für Dich.

 

Grüße,

Thomas

0 Kudos
Message 19 of 21
(1,794 Views)

Noch was, Frankentaler,

 

die Schleife in deinem VI sollte vielleicht auch anhalten wenn ein Laufzeitfehler aufläuft. Wie das geht hab ich Dir in meinem ersten Screenshot gezeigt (Unbundle by name auf den Error-Cluster Anwenden und den Status rauspicken). Bei dem zweiten Screenshot hab ich's so gelassen wie Du es implentiert hast (deine Schleife stoppt nicht wenn ein Fehler auftritt).

 

Für die Funktion deines Express-VI's kann ich keine Aussage machen ob das so gut ist, weil ich ja kein 7.0 hab. Die Screenshots sind deshalb mehr als Skizzen zu verstehen.

 

Grüße,

Thomas

 

 

0 Kudos
Message 20 of 21
(1,789 Views)