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!
auch ich gehöre zu den Anfängern und schon hänge ich an der ersten Frage:
Ich möchte eine While-Schleife nur einmal durchlaufen.
Das ist mir nicht recht gelungen. Deshalb habe ich mir ein Versuchs-VI gebaut. Dort habe ich ein Verhalten festgestellt, das ich mir nicht recht erklären kann.
Schalte ich die While-Schleife auf Stopp, so wird der Zähler i auf 0 gesetzt. Er merkt sich seinen Wert also nicht.
Der Zähler innerhalb der While-Schleife läuft jedoch weiter (x + 1), obwohl die Schleife durch Stopp angehalten ist. Warum ist es dem Zähler egal, ob die While-Schleife läuft oder nicht?
(04.06.2012 12:38 )messbuchse schrieb: Schalte ich die While-Schleife auf Stopp, so wird der Zähler i auf 0 gesetzt. Er merkt sich seinen Wert also nicht.
i ist auch der Iterationszähler, dieser beginnt bei Neustart immer wieder bei 0.
(04.06.2012 12:38 )messbuchse schrieb: Der Zähler innerhalb der While-Schleife läuft jedoch weiter (x + 1), obwohl die Schleife durch Stopp angehalten ist. Warum ist es dem Zähler egal, ob die While-Schleife läuft oder nicht?
Der Zähler ist über einen FeedbackNode (gleiches Verhalten wie mit Schieberegister) gespeichert. Dieser ist solange gültig, solange das VI offen (also im Speicher) liegt.
(04.06.2012 12:38 )messbuchse schrieb: auch ich gehöre zu den Anfängern und schon hänge ich an der ersten Frage:
Eine While-Schleife, die nur einmal durchlaufen werden soll: Das braucht man in LabVIEW nur bei einem FGV (Funktionales globales VI), ansonsten ist die Schleife überflüssig. Schließlich soll sie nur einmal durchlaufen werden, da kannst du sie gleich weglassen.
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!
Der Hintergrund ist eine Ini-Routine, die bei einem Kaltstart einmalig das System initialisieren soll und anschließend abgeschaltet wird.
In anderen Systemen nehme ich dazu eine if-Abfrage auf ein ini-Bit und schalte damit die Initialisierung ab, während das Script, bei LV VI, weiterhin durchlaufen wird.
Anstatt über eine While-Schleife zu gehen, habe ich es jetzt über eine CASE-Anweisung realisiert, die über ein ini-Bit abgeschaltet wird.
(04.06.2012 18:40 )jg schrieb: Eine While-Schleife, die nur einmal durchlaufen werden soll: Das braucht man in LabVIEW nur bei einem FGV (Funktionales globales VI), ansonsten ist die Schleife überflüssig.
Ganz so ist es aber nicht, die nicht-initialiseirte, einmal durchlaufene Schlefe wird doch nicht nur für FGV gebraucht. Beispielsweise braucht man sie in jedem SubVI mit sequentieller Logik, also beispielsweise in einem Flip-Flop-SubVI, oder einem VI zur Flankenerkennung (von dem Du selbst neulich mal gesagt hast, das wäre Dein Lieblings-VI )
(05.06.2012 08:56 )Lucki schrieb: Ganz so ist es aber nicht, die nicht-initialiseirte, einmal durchlaufene Schlefe wird doch nicht nur für FGV gebraucht. Beispielsweise braucht man sie in jedem SubVI mit sequentieller Logik, also beispielsweise in einem Flip-Flop-SubVI, oder einem VI zur Flankenerkennung (von dem Du selbst neulich mal gesagt hast, das wäre Dein Lieblings-VI )
Das gehört für mich auch in die Gruppe der FGVs.
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!
(05.06.2012 08:59 )jg schrieb: Das gehört für mich auch in die Gruppe der FGVs.
Aha, und alle Punkt-zu-Punkt-Funktionen zur Signalverarbeitung ( -erzeugung, -operation, Filter, Spekrumalnalyse, Transformation, lin. Algebra, Apassung, Interpolation, Integral, Differential, Wahrscheinlichkeit und Statistik .. und weitere 15 P2P-Funktionenarten im Funktionsmenü) sind demnach auch FGV. Aber was ist mit dem Rest der Welt, wird er akzeptieren, daß Du die Definitionshoheit über FGVs beansprucht?
Ja, ich weiß, es wird haarspalterisch, aber gerade die Punkt-Zu-Punkt VIs haben in der Regel IMMER einen Init-Fall. Somit haben wir ein VI mit mind. 2 Funktionalitäten, "Init" & "neuen Wert verarbeiten", kann man also als FGV ansehen.
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!
Ich selbst verwende ja FGVs auch nur - und würde sie trotzdem noch so bezeichnen - , wenn es sinnoll ist, darin etwas mehr Funktionalität unterzugringen als nur die globale Speicherung eines Wertes. Für das Letzgenannte eignet sich besser die globale Variable. Jahrelang habe ich mich hier im Forum dahingehend ver**schen lassen, das Globale Variblen generell schlecht sind, weil langsam. Bis ich dann mal selbst nachgemessen habe - das stimmmt einfach nicht. Wahrscheinlich war das bei der Version 0.9 von Labview mal wirklich so, aber jetzt bei der V11 kann davon wirklich keine Rede mehr sein. Aber festgefahrene Meinungen sind eben kaum auszurotten.