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 

Datei-I/O bei LV-Real-Time (Prioritäten, ...)



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!

06.11.2010, 11:23 (Dieser Beitrag wurde zuletzt bearbeitet: 06.11.2010 11:27 von Matze.)
Beitrag #1

Matze Offline
LVF-Team
LVF-Team

Beiträge: 1.027
Registriert seit: Apr 2010

20xx
2010
DE_EN

7xxxx
Deutschland
Datei-I/O bei LV-Real-Time (Prioritäten, ...)
Hi zusammen,

ich habe mal wieder eine Real-Time-Frage (cRIO).

Aktuell habe ich eine While-Schleife, in der Datenerfassung, Auswertung und Protokollierung erfolgen. Es handelt sich dabei um mehrere Sensoren, die teils parallel, teils nacheinander eingelesen werden.

Aktuell habe ich das sequenziell so aufgebaut:

1. Datenerfassung aller Sensoren
2. Prüfen, welche Daten relevant sind bzw. welche Sensoren auszuwerten sind
3. Messzeit abwarten
4. Messende: Alle aufgezeichneten Messdaten auf einmal in eine Binärdatei schreiben

Es kann folgendes sein: Messzeit 5 Sekunden und z.B. nach 1 Sekunde beginnt die Messung von Sensor 1, nach 2 weiteren Seunden die von Sensor 2. Wenn die Messung von Sensor 1 dann zu Ende ist und die Daten protokolliert werden, läuft die Messung von Sensor 2 noch weitere 3 Sekunden und wird dann protokolliert. In der Zeit kann aber die Messung von Sensor 1 wieder beginnen.

Mein Problem ist nun, dass das Speichern der Datei sehr lange dauert (ca. 100 - 500 ms), auch wenn das nur ca. 300 Bytes sind.
Die Messwerte vom FPGA werden zwar gepuffert und gehen auch bei Verzögerungen nicht verloren, aber die Messzeit variiert, wenn der Speichervorgang zu lange dauert. Und deterministisch bin ich auch nicht mehr (klar, Dateizugriffe sind es nunmal nicht).
Mit dem Real-Time Execution Trace Toolkit konnte ich sehen, dass das Speichern alles ausbremst.

Ich speichere pro Messung übrigens ein Cluster ab (Messdaten, Bewertungsergebnisse etc).

Nun dachte ich mir, ich nehme eine zeitkritische Schleife für Erfassung und Bewertung und eine parallele While-Schleife, die die Protokollierung übernimmt.
Die Daten gelangen parallel über mehrere RT-FIFOs von der zeitkritischen Schleife in die Datei-I/O-Schleife. Meherere RT-FIFOs deshalb, weil ein RT-FIFO nur einen Datentyp aufnehmen kann, ich aber mehrere habe (2 Dbl-Arrays, 1 boolsches Array, ... pro Sensor).
Die Anzahl der RT-FIFOs ist vermutlich nicht kritisch. Es könnten bis zu ca. 36 sein (mehrere Sensoren, von denen u.U. die Daten gleichzeitig protokolliert werden müssen, wenn das Messende gleichzeitig erreicht ist).

In der zeitkritischen Schleife würde ich z.B. alls 100 ms meine Messwerte aus dem DMA-FIFO (vom FPGA) auslesen und dann auswerten. In der Zeit, in der auf die Messwerte gewartet wird, könnten eventuelle Speichervorgänge in der parallelen Schleife durchgeführt werden. Die zeitkritische Schleife hat natürlich eine höhere Priorität.

Ist dieses Vorgehen sinnvoll oder kennt ihr Alternativen?
Ich glaube, es gibt auch das TDMS-Format im RT-System, nur weiß ich nicht, ob das schneller ist, da auch hier die Datei geöffnet und wieder geschlossen werden muss, was langsam ist. Ich würde die Datei dann wohl beim Messbeginn öffnen, während der Messung streamen und bei Messende schließen. Nur Öffnen und schließen ist garantiert auch langsam.

Über Tipps aus der Praxis, eure Erfahrungen oder Anregungen würde ich mich wirklich freuen.

Grüße
Matze

Grüße
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Datei-I/O bei LV-Real-Time (Prioritäten, ...) - Matze - 06.11.2010 11:23

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Real Time Probleme Joachim 4 8.734 18.09.2020 06:48
Letzter Beitrag: GerdW
  Unterschied: Real Time Debug Deployment und Real-Time Development Felix777 10 34.670 18.10.2017 17:44
Letzter Beitrag: Felix777
  Brauche ich LabVIEW FPGA zu installieren für Real-Time CAN Felix777 5 15.536 03.10.2017 17:58
Letzter Beitrag: Felix777
  Welche Strukturen sind unter LabVIEW Real Time erlaubt/nicht erlaubt? Design Pattern. Felix777 7 21.560 12.10.2015 11:19
Letzter Beitrag: jg
Sad Real Time, mehrere Ports, Problem Hattorii 32 35.569 01.05.2014 16:53
Letzter Beitrag: Hattorii
  Real-Time OS: ph_exec.exe nicht gefunden! El_Hefe84 0 6.609 06.03.2013 15:05
Letzter Beitrag: El_Hefe84

Gehe zu: