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 

Geschwindigkeit einer Schleife festlegen



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!

07.03.2011, 17:39
Beitrag #1

Moeseph Offline
LVF-Grünschnabel
*


Beiträge: 24
Registriert seit: Jul 2008

8.6
-
DE

55128
Deutschland
Geschwindigkeit einer Schleife festlegen
Hallo liebe LV Gemeinde,
ich habe zwei kleine, von Experten vermutlich leicht zu lösende Probleme. Ich habe eine Anwendung, bei der ich möglichst viele Messwerte pro Sekunde nehmen möchte. Mein Ansatz war der, dass ich mir einfach eine While-Schleife baue, die Messwerte zusammen mit der Zeit, die ich z.B. aus dem "Verstrichene Zeit"-VI bekomme, in ein Array schreibe und irgendwann in eine Datei speichere. Dabei ist mir aufgefallen, dass im fertigen Array die Zeit von Messwert zu Messwert nicht weiterläuft. Erst wenn etwa 2 Hundertstel vergangen sind, springt die Zeit im Array weiter. Das gleiche Ergebnis bekomme ich, wenn ich anstelle des "Verstrichene Zeit"-VIs das "Timer Wert (ms)"-VI benutze. Ich hätte eigentlich erwartet, dass ich zumindest hier immer dann, wenn eine Millisekunde vergangen ist, die neue Zeit im Array sehe. Stattdessen sehe ich bei z.B. 1000 Werten pro Sekunde 20 mal die gleiche Zeit, dann 20 mal die Zeit, die 2 Hunderstel später ist usw.

Um das Ganze zu verstehen, habe ich mir ein ganz einfaches Programm gebaut, in dem nur die Zeit in ein Array geschrieben wird. Als ich ein bischen damit herumspielte, fiel mir eine weitere Sache auf. Ich wollte z.B. mal genau 1000 Werte pro Sekunde haben, also benutzte ich das "Warten (ms)"-VI und stellte es auf 1 ms. Ich bekomme hier aber nur etwa 500 Werte. Wenn ich die Schleife nicht warten lasse sind es hingegen mehrere 1000 Werte pro Sekunde. Dies ist mein 2. Problem: Warum bekomme ich nur etwa 500 Werte pro Sekunde, wo ich 1000 erwarte? Am sonstigen Inhalt der Schleife sollte es nicht liegen, da die Schleife wie gesagt ohne Warten von 1 ms mehrere 1000 mal pro Sekunde läuft.

So, meine 2 Fragen nochmal kurz:

1.: Gibt es eine Möglichkeit, die Zeit millisekundengenau und nicht nur auf 2 Hundertstel genau in ein Array zu schreiben?

Viele Grüße,
Moe

2.: Warum läuft eine While Schleife, die 1000 mal pro Sekunde laufen sollte nur 500 mal pro Sekunde?


Im Anhang das einfache Test-Programm, bei dem ich mir auch die Frequenz anschaue, mit der die Schleife läuft. Ändert man im Blockdiagramm die Wartezeit auf 0 ms, so tritt der im 2. Punkt besagte Effekt auf.


Angehängte Datei(en)
8.6 .vi  test.vi (Größe: 22 KB / Downloads: 281)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
Geschwindigkeit einer Schleife festlegen - Moeseph - 07.03.2011 17:39

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Motorsteuerung (VCP) Erfassung Geschwindigkeit und Position JanM 2 3.300 15.06.2021 07:48
Letzter Beitrag: GerdW
  Drei Queues in einer While-Schleife mit case-Struktur EinVolvic 12 13.248 17.05.2017 20:25
Letzter Beitrag: EinVolvic
  Probleme seit einfügen einer For-Schleife JUON 7 5.980 14.02.2017 18:01
Letzter Beitrag: TR61
  Mehrspaltiges Listenfeld mit "Elementwerte indexweise festlegen" füllen C.Maier 3 5.275 12.01.2017 15:09
Letzter Beitrag: C.Maier
  Rechenzeit einer Schleife pro runde bekommen aidinnikoo 1 3.733 30.11.2016 13:53
Letzter Beitrag: GerdW
  Dauer einer Schleife berechnen Marius89 3 6.481 31.10.2016 09:24
Letzter Beitrag: jg

Gehe zu: