LabVIEWForum.de - Frage zu Timerfunktionen

LabVIEWForum.de

Normale Version: Frage zu Timerfunktionen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

Kann mir jmd den genauen Unterschied zwischen den beiden Funktionen "Warten (ms)" und "Bis zum nächsten Vielfachen von ms warten" (die Uhr und das Metronom) erklären?

Wichtig ist mir dabei vor allem, ab wann die beiden Funktionen ihre ms warten.

Danke schon mal,

Snoop
Hi,

solange du nur eine (While-)-Schleife mit einer der beiden Funktionen "ausbremst", d.h. CPU-Zeit "freimachst", ist kein Unterschied. Laufen aber zwei While-Schleifen parallel in einem Blockdiagramm, werden diese bei Verwendung des Metronoms (in beiden Schleifen) miteinander synchronisiert, d.h. sie können zwar unterschiedlich schnell durchlaufen, ein neuer Durchlauf beider Schleifen startet aber gleichzeitig.

Gruss
Achim
Warten = Wartet genau die angegebenen ms

Bis zum nächsten Vielfachen von ms warten = wenn 100 daran angeschlossen ist wird gewartet bis der interne msTimer einen genau durch die Zahl teilbaren wert erreicht hat. aners ausgedtückt steht 100 dran wird bis z.B. 100, 200, 300,....1000,1100 usw gewartet. also wenn das programm an die stelle kommt und der interne timer hat z.B. 125666 wartet die funktion bis 125700 also 34ms.

Ich hoff ich hab das am hellichten morgen schon vernünftig erklärt.
Danke schon mal für die schnellen Antworten.

Noch eine Frage dazu:
Wird die Zeit bei Warten am Anfang der Schleife gestartet oder wenn die Schleife durchgelaufen ist?
Da Alles in LV parallel läuft wird (wenn Du nichts dagegen unternimmst) am Anfang die "Stoppuhr" gestartet.

Gottfried
Hier siehst Du noch mehr zu diesem Thema.

Gruß Markus

' schrieb:Hallo zusammen,

Kann mir jmd den genauen Unterschied zwischen den beiden Funktionen "Warten (ms)" und "Bis zum nächsten Vielfachen von ms warten" (die Uhr und das Metronom) erklären?

Wichtig ist mir dabei vor allem, ab wann die beiden Funktionen ihre ms warten.

Danke schon mal,

Snoop
' schrieb:Noch eine Frage dazu:
Wird die Zeit bei Warten am Anfang der Schleife gestartet oder wenn die Schleife durchgelaufen ist?
Vor einiger Zeit hätte ich auch noch so geantwortet wie Gottfried: Die Wartefunktion wird zuerst gestartet, und nach meinen bisherigen Erfahrungen ist es auch so. Johnson und Jennings weisen aber darauf hin, daß das ein Irrglaube ist. Das Warte-VI ist ein Vi wie jedes andere auch, und enthält keinerlei magische Funktion, wonach es bevorzugt abgearbeitet wird. Wenn man also in der Schleife einen Timer von 10 ms hat und etwas anderes, was 5 ms dauert, dann kann es entweder passieren, daß das Warte-Vi zuerst aufgerufen wird- in diesem Fall ist die Gesamtzeit 10ms, da während der Wartezeit das andere Zeugs in der Schleife abgearbeitet wird. Es kann aber auch passieren, daß das Warte-VI nicht zuerst aufgerufen wird - in diesem Fall beträgt die Gesamt-Zeitdauer 15ms.
Mit zeitgesteueren Schleifen und zeitgesteuerten Sequenzen ist man vor solchen Überraschungen sicher - die habe ich allerdings selbst noch nicht verwendet.
Hallo zusammen.

Danke für die Infos zum Thema Warte Funktionen.

Meine Beobachtung spricht auch dafür, dass die Funktionen eben nicht paralel arbeitet. Ich hatte eine Schleife mit der Warte funktion mit 10ms ausgebremst. In der Auswertung der Daten stellte sich dann aber herraus, dass z.B. ein 30s durchlauf 32,2s dauert. Dacht zunächst, dass die Rechenleistung nicht reicht und hab es auf 100ms geändert, aber mit dem gleichen Ergebnis. Ich nehm mal an das hier ganau das passiert ist, was Lucki auch beschreibt.
Bin daraufhin auf die "Warten bis..." Funktion umgestiegen mit 10ms... wieder das gleiche... Aber ich weiß ja auch nicht genau, wann diese Funktionen ausgeführt werden. Ich dachte, das diese Funktionen mit der Schleife zusammen laufen, also genau am Ende starten... Aber das kann ja wohl leider nicht angenommen werden.
Ich werd das jetzt so machen wie in dem Artikel den Markus vorgeschlagen hat. Mit einer Sequenzstruktur die "Warten bis..." Funktion nach der Abbarbeitung der Schleife laufen lassen.
In zwei Wochen bin ich wieder am Prüfstand und werd es versuchen. Danach werd ich dann hier Posten, was dabei herraus gekommen ist.

Gruß Snoop
Mal ein Nachtrag zum Beitrag:

Habe die Timerfunktion inzwischen über eine Sequenzstruktur umgestellt und jetzt funktioniert das Timing so wie ich es wollte. Leider war es nur nicht möglich das ganze mit 10ms laufen zu lassen, vermutlich ist dafür der Computer zu schlecht. Mit 100ms funktioniert es aber.

Danke mal an alle die geholfen haben.

Gruß,
Snoop
Referenz-URLs