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 

Zeitgesteuerte Schleife konstant halten



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!

12.12.2011, 20:04
Beitrag #1

labrat Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Oct 2011

2011 DS2
2008
DE



Zeitgesteuerte Schleife konstant halten
Hallo zusammen,

Ausgangssituation: Bei meinem Programm nehme ich ein Laserprofil mit einer Kamera auf. Im Prinzip wird eine Schleife durchlaufen, wobei pro Durchlauf 1 Bild aufgenommen wird. Anschließend werden die Koordinaten des Schwerpunktes des Bildes berechnet.
Damit die Framerate (25fps = 40ms pro Iteration) möglichst konstant ist, habe ich mich für eine zeitgesteuerte Schleife entschieden. Ich habe bereits hier im Forum gelesen, dass die Iterationszeit abhängig von der CPU-Auslastung ist. Nachdem ich die Priorität der Schleife und des VIs auf den höchsten Wert gesetzt habe, bleibt die Framerate (vorerst) auch einigermaßen konstant. Nicht perfekt, aber es ist OK.

Das eigentliche Problem: Ich führe Langzeitmessungen durch, weswegen die Arrays - in die ich die Daten (Schwerpunktskoordinaten) über Schieberegister schreibe - schnell sehr groß werden. Das führt dazu, dass die Framerate bei einer sehr großen Anzahl an Messwerten einbricht.

Die Lösung: Anstelle der Schieberegister möchte ich die Daten bei jedem Schleifendurchlauf direkt in eine Datei auf der Festplatte zu schreiben. Es werden immer nur die aktuellen Messwerte an die Datei angehängt. Das funktioniert soweit ganz gut, es kommt zu keinem Einbruch in der Framerate - egal wieviele Messwerte.

Das neue Problem: Auch wenn die Framerate auf Dauer nicht mehr einbricht, schwankt sie doch deutlich stärker als zuvor. Ich nehme an, dass das Schreiben auf die Festplatte die CPU zusätzlich belastet, wodurch es zu unregelmäßigkeiten in der Iterationsdauer kommt.

Weiß jemand Rat? Wie bekomme ich eine möglichst konstante Framerate? Kann man die zeitgesteuerte Schleife irgendwie unabhängig von der CPU-Last machen? Vielleicht mit dem Real-Time-Modul? Gibt es eine bessere Alternative eine große Anzahl an Messwerten zu verwalten, als das direkte Speichern auf der Festplatte?

Ich weiß, dass sind viele Fragen und viel Text. Aber umso dankbarer bin ich für eure Hilfe.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.12.2011, 20:21
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Zeitgesteuerte Schleife konstant halten
Übergib deine Daten per Queue in ein weiteres parallel laufendes VI/Schleife. Hier machst du das Schreiben auf die HDD, nicht in der kritischen Timed-Loop.
Und natürlich möglichen Overhead wie dauerndes Öffnen und Schließen einer Datei vermeiden.

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
12.12.2011, 22:29
Beitrag #3

labrat Offline
LVF-Grünschnabel
*


Beiträge: 30
Registriert seit: Oct 2011

2011 DS2
2008
DE



RE: Zeitgesteuerte Schleife konstant halten
Super, vielen Dank!

Muss zugeben, dass ich bisher noch nichts mit den Queues gemacht habe. Was ich bis jetzt allerdings gelesen habe, stimmt mich zuversichtlich. Werd mich gleich morgen dran setzen.

Und du hasst natürlich Recht, die Sache mit dem dauernden Öffnen/Schließen der Datei kann auch nicht gut sein für die Framerate.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Zeitgesteuerte Schleifen martinkrimsh. 1 3.772 26.07.2016 08:14
Letzter Beitrag: GerdW
  Analyse Array ob Werte konstant grantiger 2 3.754 28.04.2016 22:06
Letzter Beitrag: Lucki
  Signal für 10 Minuten halten TenaciousTim 24 16.987 20.04.2016 13:49
Letzter Beitrag: BNT
  Enum Konstant lola2014 6 5.541 04.11.2014 10:11
Letzter Beitrag: Lucki
  Schwellenwert, Wert "halten" Hattorii 3 5.091 18.05.2014 12:23
Letzter Beitrag: Hattorii
  Button entweder drücken oder gedrückt halten Golan 16 15.080 13.03.2013 14:08
Letzter Beitrag: Golan

Gehe zu: