LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

wait until next ms multiple

Hallo,
ich möchte gerne wissen, was "wait until next ms multiple" in Betriebsystem basierte. ich meine, wenn ich die Zähler 100ms einstelle, dann wird meine Simulation wirklich jede 100ms durchgeführt, oder es hängt von der BS ab?
Können Sie mir ein Beispiel geben?
mfG
Hakan
0 Kudos
Message 1 of 3
(2,975 Views)
"Warten bis zum vielfachen von ms" wird vorallem bei Schleifen eingestezt. Es ist hilfreich bei der der Ausführung von Schleifen in festgelegten Intervallen und bei Synchronisation von Tätigkeiten. Wenn beispielweise der erste Schleifendurchlauf kürzer ist als die folgenden, wird durch diese Funktion eine feste Schleifendurchlaufzeit definiert. Dabei sollte die Zeit ver "Warten..." Funktion länger sein als die Durchlaufzeit der Schleife, da sonst die Abarbeitung noch länger dauern kann.
Dauert eine Schleifendurchlauf 25ms und die "Warten..." funktion ist auf 100ms eingestellt, wird die Schleife / das Programm erst nach einer Wartezeit von 75ms weiter abgearbeitet.
 
ThomasD 
0 Kudos
Message 2 of 3
(2,958 Views)
Hakan,

"wait until next multiple (ms)" is a vi which is normally used in loops. i these structures, this vi is the last one to be called. it defines, how much time passed from start till now and waits until the next (integer) multiple of the time connected to it. lets make an example:
preloop-code 50 ms, loopcode 10 ms, time connected to the vi: 100 ms.
1st iteration: preloop 50 + loop 10 = 60 ms already passed when the vi is called. so the vi waits another 40 ms to make the 100 ms full.
2nd and following iterations: loop 10 ms, so the vi waits 90 ms.
if the time would have been 80 ms preloop and 30 ms loop, the 1st iteration would have waited 90 ms, so the time would have been overall 200 ms. (2*100ms).
Do not make the mistake to take this vi as a substitute for hardwaretiming, since every OS except dedicated realtime-systems (linux for itself is not a realtime-os!) has a jitter depending on the systemload and running services!

"wait until next multiple (ms)" ist ein vi, das gewöhnlich in schleifen verwendet wird. in diesen strukturen wird es als letze funktion aufgerufen. es ermittelt, wieviel zeit von beginn bis zum aufruf vergangen ist und wartet bis zum nächsten ganzzahligen vielfachen der angeschlossen zeit. betrachten wir ein beispiel:
prelloop 50 ms, loop 10ms, angeschlossene zeit an dem vi: 100 ms.
erster durchlauf: preloop 50 + loop 10 = 60 ms sind bis zum aufruf des vis vergangen. es wartet also 40ms um die 100 ms voll zu machen.
zweiter und folgende durchläufe: loop 10 MS, also wartet das vi 90 ms.
wäre die preloop-zeit 80 ms und die loop 30 ms gewesen, so hätte das vi im ersten durchlauf 90 ms gewartet um die 200 ms voll zu machen.
machen sie aber nicht den fehler, dieses vi als ersatz für ein hardware-timing zu verwenden; jedes betriebssytem außer echte "echtzeitbetriebssysteme" (linux von sich aus ist KEIN echtzeitsystem!) erzeugt einen "jitter"(zeitversatz), abhängig von der auslastung und der anzahl der laufenden systemdienste!

Norbert B.
NI - Germany
Norbert
----------------------------------------------------------------------------------------------------
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.
0 Kudos
Message 3 of 3
(2,957 Views)