LabVIEWForum.de
While-Schleife - Nach einem Durchlauf nie mehr starten - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: While-Schleife - Nach einem Durchlauf nie mehr starten (/Thread-While-Schleife-Nach-einem-Durchlauf-nie-mehr-starten)

Seiten: 1 2 3


While-Schleife - Nach einem Durchlauf nie mehr starten - LV_Newbie - 05.05.2006 13:06

@Azmodan:
Wenn ichs so mache wie du, dann stopt die While-Schleife gar nicht mehr. Wenn ich statt dem "Stop if True" ein "Continue if True" mache dann hört er nach 1 mal auf. Allerding geht er nächstes mal erneut in die While.

Gibt es in LabVIEW ein "richtiges" While. Das ist ja eher ein Do-While was mir da NI als While verkauftWink


While-Schleife - Nach einem Durchlauf nie mehr starten - Azmodan - 05.05.2006 13:17

:oops:

Ooops, hast Recht; du musst TRUE und FALSE vertauschen damit es klappt...

Zum Thema "While"/"Do While":
So weit ich das beurteilen kann, sind die While-Schleifen in LabVIEW grundsätzlich erstmal fußgesteuerte Schleifen, d.h. wenn sie ausgeführt werden wird erst am Ende (="Fuß") geprüft ob eine Abbruchbedingung vorliegt. Wenn du kopfgesteuerte While-Schleifen möchtest, musst du dir sowas selber konstruieren. Wink

Gruß, Niko


While-Schleife - Nach einem Durchlauf nie mehr starten - LV_Newbie - 05.05.2006 13:18

[quote=Azmodan]:oops:


While-Schleife - Nach einem Durchlauf nie mehr starten - oppossom - 05.05.2006 13:29

Zitat:Habs jetzt so gemacht, dass das 1malige ein While und das 2te ein Case ist!

Das innere Case muss immer wieder abgearbeitet werden (sobald halt die entsprechende innere Bedingung erfüllt ist).
Die while-SChleife (grün) soll nur 1mal durchlaufen werden.
Das ist imho genau verkehrt. Wiederkehrende Programmteile werden in Schleifen verpackt, einmalige kannst du in ein Case verpacken, musst aber nicht.

Kannst du vielleicht noch mal erklären, was du genau machen willst?

Ich hab es so verstanden (nach deinem Bild):
Du hast ganz außen eine Schleife. Darin fragst du einen Button ab -> große Case-Struktur.
In dieser Case Struktur soll jetzt was passieren? Der grüne Bereich 1x und der Case daneben öfter?
Genauso wenig Sinn macht übrigens die kleine Schleife innerhalb der Grünen. hat genau den selben Effekt, wenn du sie weglässt.

Lg Stefan


While-Schleife - Nach einem Durchlauf nie mehr starten - Azmodan - 05.05.2006 13:31

@Newbie:

Öhm... Also bei mir tut es so... Er zählt die Zahl in meinem Test-VI genau einmal hoch und beendet die Schleife dann...

Gruß, Niko


While-Schleife - Nach einem Durchlauf nie mehr starten - oppossom - 05.05.2006 13:36

einfacher so?


While-Schleife - Nach einem Durchlauf nie mehr starten - LV_Newbie - 05.05.2006 13:36

oppossom schrieb:
Zitat:Habs jetzt so gemacht, dass das 1malige ein While und das 2te ein Case ist!

Das innere Case muss immer wieder abgearbeitet werden (sobald halt die entsprechende innere Bedingung erfüllt ist).
Die while-SChleife (grün) soll nur 1mal durchlaufen werden.
Das ist imho genau verkehrt. Wiederkehrende Programmteile werden in Schleifen verpackt, einmalige kannst du in ein Case verpacken, musst aber nicht.

Kannst du vielleicht noch mal erklären, was du genau machen willst?

Ich hab es so verstanden (nach deinem Bild):
Du hast ganz außen eine Schleife. Darin fragst du einen Button ab -> große Case-Struktur.
In dieser Case Struktur soll jetzt was passieren? Der grüne Bereich 1x und der Case daneben öfter?
Genauso wenig Sinn macht übrigens die kleine Schleife innerhalb der Grünen. hat genau den selben Effekt, wenn du sie weglässt.

Lg Stefan

JA genau.
1 Button steuert das große Case.
In diesem soll zuerst die Grüne Schleife/Case 1 mal ausgeführt werden.
Dann sobald der Button 2 aktiv ist und Knob ungleich 0 dann wird das innere Case aktiv.

Bsp:
1 Button = 1 :arrow: geht in Case True
2 Button = 0 :arrow: geht in False (im false steht nichts)
Daher wird zuerst das While abgearbeitet, dann erkannt das inneres Case False ist und dann gehts wieder von vorne los.
1 Button aktiv ja => wieder ins Case => while startet erneut, inneres case immer noch false, ...


@Azmodan: ja das macht er bei mir auc. Allerdings sobald er am Ende ist gehts wieder von vorne los und dann ist der Schleifenzähler wieder auf 0, d.h. die Schleife wird wieder 1 mal durchlaufen

@oppossum: SChaut mich gut an. Werds gleich mal testen!


While-Schleife - Nach einem Durchlauf nie mehr starten - LV_Newbie - 05.05.2006 13:53

Ein Problem gibts noch!

Das ganze ist ein SubVI.
Der Schalter für das äußere Case ist ein Schalter der im Hauptprogramm gesetzt wird.
Hab mir das Ganze mit Hilfe der Glühbirne angesehen und der Schalter im SUbVi schaltet nach 1 mal aus obwohl er im Hauptprogramm noch immer gesetzt ist.
Wieso?


While-Schleife - Nach einem Durchlauf nie mehr starten - oppossom - 05.05.2006 13:58

Ich nehm mal an du hast dann in deinem Sub-Vi auch einen Button, an den der Wert (true) übergeben wird.
Wenn der Schalter im Sub-Vi auf Latch gestellt ist, schaltet er nur kurz auf true und dann auf false zurück.


While-Schleife - Nach einem Durchlauf nie mehr starten - LV_Newbie - 05.05.2006 14:01

oppossom schrieb:Ich nehm mal an du hast dann in deinem Sub-Vi auch einen Button, an den der Wert (true) übergeben wird.
Wenn der Schalter im Sub-Vi auf Latch gestellt ist, schaltet er nur kurz auf true und dann auf false zurück.

Ich habs auf "Switch when pressed" (sowohl im Main als auch im SubVI)
Ist das das richtige :?: