ok, dann nehm ich halt ne case-struktur. dann hab ich das Prinzip der While-Schleife in LV falsch interpretiert.
d.h eine While-Schleife macht in LV ohne Benutzung des Schleifenzählers keinen Sinn. Da muss man ja auch erst mal drauf kommen
Hallo fluffi,
eine While-Schleife ist halt eine While-Schleife, ist in jeder anderen Programmiersprache, die mir bekannt ist auch eine While-Schleife (manchmal mit einem anderen Namen)
und oh Wunder sie funktioniert auch wie eine While-Schleife (auch in LV .... wirklich

)
Beweis, das eine While-Schleife auch ohne Benutzung des Schleifenzählers einen Sinn macht?
[
attachment=17853]
[
attachment=17852]
[
attachment=17851]
es kommt halt darauf an, was man

will... LV ist eine Programmiersprache!
' schrieb:Wie kann man eine While-Schleife nach Rücksetzen der Abbruchbedinung wieder weiterlaufen lassen ?
Geht die Bedinung auf True dann hält die Ausführung der Schleife an,
Es liegt ja hier schon ein falsche Terminologie vor, die dann zwangsläufig zu falschen Vorstellungen über die Programmausführung führt.
Die Schleife hält nicht an, sondern wird unwiderruflich beendet. Überhaupt wird alles was im BD steht nach dem Start nur ein einziges Mal ausgeführt.
Um das zu ändern, muß der Code in einer Schleife stehen. Hier bei Dir heißt das: Damit die Schleife mehrere mal ausgeführt wird, muß sich innerghalb in einer anderen Schleife befinden - siehe die Beispiele.
ihr habt mich überzeugt. die while schleife in LV ist ne eindeutige While-Schleife. Ich hab mich nur blöd angestellt und das Programm immer im Wiederholen-Modus ausgeführt.
Aber mein grundsätzliches Problem besteht immer noch.
Mein Ziel ist es mehrere Teilberreiche eines Programms jeweils in While-Schleifen zu packen die nur beim setzen eines bestimmten Schalters ausgeführt werden bzw gestoppt werden aber auch wieder weiter ausgeführt werden können. Jede Schleife die aktiv ist soll parallel zu den anderen aktiven mit einem bestimmten Takt ausgeführt werden.
zum Beispiel: Schleife A soll dann anhalten werden wenn Stop1 gedrückt ist aber wieder loslaufen wenn Stop1 nicht mehr aktiv ist. (genauso für Schleife B)
Wie macht man das ? Der Stop Button befindet sich ja in der Schleife und wird ja nicht mehr aktualisiert wenn die schleife abbricht. Verschiebe ich den Button nach außen dann wird er grundsätzlich erst gar nicht überprüft auch wenn ich um alles wieder eine while schleife mache.
Mache über die beiden schleifen eine andere schleife und lasse sonst alles so wie im bsp dann funtktioniert es auch nicht wie ich es will, denn es werden die schleifen nur dann fortgesetzt nachdem beide auf stop waren.
Wie gesagt, dann nimm' 'ne Case-Struktur und beende die Whileschleife mit Stop erst, wenn Du sie auch wirklich beenden und nicht nur "anhalten" willst.
Gruß Markus
ich hab das ganze jetzt so gemacht, dass ich jeden parallel laufenden Prozess in eine eigene while schleife gepackt habe die unendlich lang läuft und dazu noch in der while schleife eine case schleife erstellt habe um den prozess gegebenenfalls mal anzuhzalten und weiterlaufen zu lassen. Alles aber ohne die alles vernichtende While-schleife über das gesammte Projekt.
So und nicht anders scheints genau so zu funktionieren wie ichs will.
Sorry für den Thread aber als LV-Neuling ist es ersmtal schwer herauszufinden wie LV es denn sich so vorstellt seinen Code abzuarbeiten. Da drauf zu kommen ist nicht wircklich trivial.
@ImExPorty
ne, Ereignisse lass ich lieber erstmal weg, sonst dreh ich noch total am Rad.
Hallo
mmmh April das Problem ist sicher schon gelöst aber ich bin gerade über den Beitrag gestolpert und wollte auch noch was dazu sagen^^
Also im Prinzip sollte man doch eine Whileschleife anhalten können in dem man sie durch eine andere Schleife blockiert. In dem Fall könnte man den Zähler sogar weiter nutzen. Ok wenn man das bei mehreren Schleifen machen will müsste man irgendwo parallel eine Schleife laufen lassen die über Lokale oder Globale Variablen die Schleifen beendet und das ist alles andere als Ressourcen sparend aber sonst müsste das gehen?
Hier mal ein Blid wie ich das meine.
[
attachment=19407]