LabVIEWForum.de
Timer in While Schleife - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: Timer in While Schleife (/Thread-Timer-in-While-Schleife)

Seiten: 1 2


Timer in While Schleife - Oleg - 17.03.2010 14:43

Hallo nochmal,

Weiss jemand, wann startet der Timer ('Wait # ms'Wink in einer While Schleife ? Ganz am Anfang und läuft parallel zu anderen Operationen,
oder am Ende bevor BedingungsPrüfung ?

Danke!

Gruß
Oleg


Timer in While Schleife - Y-P - 17.03.2010 14:55

Wenn ich mich richtig erinnere, wird nach dem Abarbeiten des Codes die gesamte Zeit gewartet, die Du an "Wait (ms)" (Armbanduhr) angeschlossen hast.
Dagegen wartet "Wait until Next ms Multiple" (Metronom) so lange, bis der Schleifendurchlauf (Code und Warten) so lange dauert, wie der angeschlossene Wert.

Gruß Markus


Timer in While Schleife - Oleg - 17.03.2010 15:05

' schrieb:Wenn ich mich richtig erinnere...
Danke!


Timer in While Schleife - jg - 17.03.2010 15:12

' schrieb:Wenn ich mich richtig erinnere, wird nach dem Abarbeiten des Codes die gesamte Zeit gewartet, die Du an "Wait (ms)" (Armbanduhr) angeschlossen hast.
Dagegen wartet "Wait until Next ms Multiple" (Metronom) so lange, bis der Schleifendurchlauf (Code und Warten) so lange dauert, wie der angeschlossene Wert.
Nein, falsch, nein!

Wait wartet einfach die angeschlossene Zeit. Wann das ausgeführt wird, hängt vom Aufbau des VI ab!

Wait until Next.... wartet solange, bis der interne ms-Counter ein ganzzahliges Vielfaches des angeschlossenen Wertes ist. Es kann also sein, dass dieses VI nur 20 ms wartet, obwohl 100 als Eingang angeschlossen ist.

Gruß, Jens


Timer in While Schleife - Y-P - 17.03.2010 15:14

Das wäre mir aber neu.... O
Da les' ich doch gleich mal nach.

Gruß Markus

' schrieb:Wait wartet einfach die angeschlossene Zeit. Wann das ausgeführt wird, hängt vom Aufbau des VI ab!

Wait until Next.... wartet solange, bis der interne ms-Counter ein ganzzahliges Vielfaches des angeschlossenen Wertes ist. Es kann also sein, dass dieses VI nur 20 ms wartet, obwohl 100 als Eingang angeschlossen ist.

Gruß, Jens



Timer in While Schleife - Y-P - 17.03.2010 15:22

Es ist bei "Wait until Next ms Multiple" so, dass wenn der Code 20 ms dauert, dass dann gewartet wird, bis die 100 ms voll sind, dauert der Code z.B. 102 ms, dann wird 200 ms gewartet, weil 200 ein Vielfaches von 100 ist.

Hier der Link:
http://digital.ni.com/public.nsf/allkb/12B...6256257004DD8E2

Gruß Markus

' schrieb:Wait until Next.... wartet solange, bis der interne ms-Counter ein ganzzahliges Vielfaches des angeschlossenen Wertes ist. Es kann also sein, dass dieses VI nur 20 ms wartet, obwohl 100 als Eingang angeschlossen ist.



Timer in While Schleife - Oleg - 17.03.2010 15:26

' schrieb:Nein, falsch, nein!

Was würde dann besser zu meinem Fall passen? : Eine Schleife soll nicht kürze als 1 sekunde sein, wenn nötig kann aber länger.

Oleg


Timer in While Schleife - RoLe - 17.03.2010 15:32

Allgemein, lohnt es sich, für solches ein SubVi zu erstellen wie in dem Bild.
- durch denn Errorcluster kann genau bestimmt werden, wann gewartet werden soll.
- bei einem Fehler wird nicht gewartet, was besonders bei langen Wartezeiten sinnvoll ist.


Timer in While Schleife - Lucki - 17.03.2010 15:37

Der Timer ist ein VI wie jedes andere und niemand kann garantieren, daß bei der parallelen Verabarbeitung des Codes in der Schleife der Timer zuerst aufgerufen wird.
Andererseits kann man sich eigentlich immer darauf verlassen, daß innerhalb einer Struktur zuerst die einfachen Dinge wie Lesen von Variablen, Addieren usw. erledigt werden und erst dann die in der Struktur verschachtelten weiteren Strukturen. Und zu den einfachen Dingen gehört auch der Timer.
Also auf Dein Beipiel bezogen heißt das: Man kann nicht sagen, ob zuerst der Timer gestartet wird oder zuerst die Subtraktionen/Divisionen ausgeführt werden. Das ist auch uninteressant, weil dies Operationen weit weniger als 1µs beanspruchen. Aber auf jeden Fall wird Wait gestartet, bevor die internen Strukturen im rechten Teil des Bildes abgearbeitet werden.
Im Übrigen läßt sich die Reihenfolge mittels Einzelschrittanalyse ganz leicht feststellen.
Au keinen Fall ist es so, daß die Gesamt-Wartezeit in der Schleife die Summe von Timerzeit und Code-Bearbeitungszeit ist. Die Gesamt-Auführungszeit wird eher durch die längere der beiden Zeiten bestimmt.

@Role:
Ein mikroskopisch kleines VI mit fast genau diesem Inhalt gibt es ja bereits in der Timer-Palette, aber da dieses unter "Express-VI" firmiert, werden sich manche hier eher die Hand abhacken, bevor sie es verwenden Mellow(Und ich weiß, daß es unvornehm ist, auf die Existenz eines solchen No-GO-VI überhaupt hinzuweisen:mellow:Hoffentlich verliere ich jetz meinen "Expert"-Status nicht)


Timer in While Schleife - RoLe - 17.03.2010 16:12

' schrieb:@Role:
Ein mikroskopisch kleines VI mit fast genau diesem Inhalt gibt es ja bereits in der Timer-Palette, aber da dieses unter "Express-VI" firmiert, werden sich manche hier eher die Hand abhacken, bevor sie es verwenden Mellow
Express-Design ist nicht das Problem, sondern,
- wartet auch bei Fehler.
- Zeitangabe mit DBL (s) (wer braucht den sowas)