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
30
Antwort schreiben 


Nachrichten in diesem Thema
Zeitgesteuerte Schleife konstant halten - labrat - 12.12.2011 20:04

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.086 13.03.2013 14:08
Letzter Beitrag: Golan

Gehe zu: