LabVIEWForum.de
Eigenschaften von TDMS-Dateien - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Eigenschaften von TDMS-Dateien (/Thread-Eigenschaften-von-TDMS-Dateien)

Seiten: 1 2


RE: Eigenschaften von TDMS-Dateien - schrotti - 01.02.2012 23:26

Noch zwei Tipps am Rande:
1) Verzichte wenn möglich auf gestapelte Sequenzen, denn die Übersichtlichkeit leidet extrem darunter. Insbesondere hier ist eine Forloop prädestiniert.
2) Ich kenne deine Applikation natürlich nicht im Detail, aber das Autoindex der Whileloop sieht nach einer Schwachstelle in deinem Code aus. Je nachdem wie lange "stop data log" false ist und wie groß "log rate" ausfällt stürzt Labview im besten Fall mit der Fehlermeldung "Speicher zu klein" ab. In weniger guten Fällen kommt es zu eigenartigem Verhalten, wobei der Schuldige mitunter schwer aufzufinden ist. Hier wäre zyklisches Speichern der Daten angebracht, zB bei Arraylänge >1000 und Pufferzeit > 5 Sekunden. Dafür steht auch streaming in TDMS Wink


RE: Eigenschaften von TDMS-Dateien - W-C - 02.02.2012 05:57

Hallo schrotti,

Zu 1. --> Vielen Dank für die Tips und das Beispiel. Habs umgesetzt und mich über das Ergebnis gefreut Dance

Zu 2. --> Der Gedanke kam mir auch schon, dass der Datenoutput doch irgendwann zu groß sein könnte (Ok, gestern ist das Program im Hintergrund weitergelaufen lassen und es haben sich 250 Mb Daten mit insgesamt 35 Mio Datenpunkten angesammelt ... Probleme gabs nicht Smile ). Würde es aber doch gerne ändern, bin aber noch zu unerfahren, wie ich das anstelle. Momentan hat er mittels Events (Start/Stopp) und shared variables in der Mainloop das "data log" VI aufgerufen und dann wieder geschlossen.
Bin jetzt zu dem Schluss gekommen, dass eine Producer/Comsumer-Konzept mit dem Datalog als Consumer besser geeignet ist. Der Consumer kriegt dann einen "idle"-state und je nach start und stop übergibt er die Daten.
-->> Ich würde auch gerne das Konzept der Paketübergabe umsetzen, würde mich aber freuen, wenn du mir vielleicht ein Beispiel zeigen/schicken könntest, wie ich das intelligent umsetze (Queue??)

Danke im Voraus Guru1


RE: Eigenschaften von TDMS-Dateien - schrotti - 05.02.2012 14:28

Wenn du deinen vorhandenen neuen Code in LV2010 hochlädst zeige ichs dir gerne.


RE: Eigenschaften von TDMS-Dateien - W-C - 05.02.2012 16:08

Hallo Julius,

hier mal mein "komplettes" Projekt in 2010'er Version. Alles, was mit der Datenerfassung nicht zu tun hat, hab ich rausgeschmissen. Kurze Erklärung dazu, was es bis jetzt macht:

- Main-RT ist auf dem cRIO (zugriff per Scan-Mode), der die Daten mit 100 Hz aus den Modulen ausliest und dann in der gewählten Rate als shared variable veröffentlicht
- im Auswahlmenü Manual Control der Main-Host (da hängt noch ne Steuerung dran Smile) sollen die Messdaten als Stream bzw. einer passenden Rate angezeigt werden und die Datanaufzeichgnung aktiviert bzw. deaktiviert werden können
- zusätzlich soll wahlweise eine Aufzeichnung der Daten gestartet und gestoppt werden können
--> bis jetzt öffnet er dazu das Unterprogram log data bei "start log data" und beendet die enthaltene Schleife bei "stop data log"

Probleme, die aus der Struktur entstehen sind:
- scheinbar veränderte Messrate bei aktiviertem 2. Signalkverlaufsdiagramm
- neues verteilen, wenn "log data" gestoppt wird

Liegt alles an einer falschen Grundstruktur, denke ich. Hab es aber bis jetrzt nicht anders hingekriegt. Die Daten habe ich bis jetzt vom Hauptprogramm auf dem Host (PXI-Chassis) verarbeiten lassen, weil dort ein weiteres Gerät angeschlossen ist (DMM), dessen Daten auch mit aufgezeichent werden müssen.

Bin für jede Hilfe und - viel wichtiger - Erklärung meiner (vermutlich) vielen Strukturfehler überaus dankbar.

Christoph


RE: Eigenschaften von TDMS-Dateien - schrotti - 07.02.2012 19:12

1. Das Projekt ist LV2011.
2. Du solltest die Daten bereits Paketweise vom cRIO holen, denn so:
2.1 ist sichergestellt, dass nichts verloren geht
2.2 sinkt die Auslastung des Rechners und damit ist die Wahrscheinlichkeit unangenehmer Seiteneffekte geringer.
3. Die Datenspeicherung sollte als SubVI verwendet werden
4. Die Datenspeicherung mittels Queued-Statemachine verwirklichen

http://www.google.com/search?q=Queued-Statemachine&ie=utf-8&oe=utf-8&aq=t&rls=org.mozillaBig Grine:official&client=firefox-a


RE: Eigenschaften von TDMS-Dateien - W-C - 07.02.2012 19:21

OK, dann noch mal zur Sicherheit in Lv10 und Lv09_img2 als zip Sad

Wenn jetzt nichtgeklappt hat, istr was technisches Smile


RE: Eigenschaften von TDMS-Dateien - schrotti - 07.02.2012 19:34

1. die Ereignisstruktur in eine eigene Schleife
2. Die Sequenz weg
3. Datenspeicherung als SubVI rein
4. EIN VI nimmt die Daten (siehe oben) vom cRIO entgegen und verteilt sie an GUI und Datenspeicherung.
5. Zum Verteilen Queues verwenden, wobei die GUI auch mittels globaler Variablen per Polling versorgt werden darf (5-10Hz). Je nach Bedarf nur jeden n-ten Datenpunkt oder alle Daten.