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!
Weiss jemand, wann startet der Timer ('Wait # ms' in einer While Schleife ? Ganz am Anfang und läuft parallel zu anderen Operationen,
oder am Ende bevor BedingungsPrüfung ?
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Timer in While Schleife
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
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
' 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
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Timer in While Schleife
Das wäre mir aber neu....
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
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
17.03.2010, 15:22 (Dieser Beitrag wurde zuletzt bearbeitet: 17.03.2010 15:23 von Y-P.)
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Timer in While Schleife
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.
' 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.
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
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.
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
17.03.2010, 15:37 (Dieser Beitrag wurde zuletzt bearbeitet: 17.03.2010 15:54 von Lucki.)
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 (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)
' 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
Express-Design ist nicht das Problem, sondern,
- wartet auch bei Fehler.
- Zeitangabe mit DBL (s) (wer braucht den sowas)
.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.