INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen?



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!

28.10.2014, 14:24
Beitrag #1

Stefan_r Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Dec 2013

2012
2013
DE



For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen?
Guten Tag,
ich bin auf der Suche nach einer möglichst einfachen Lösung, eine For-Schleife an mehreren Punkten im Ablauf dieser Schleife zu beenden.
Im Anhang ist ein Bild zu sehen wie ich es gerne machen würde. Auf Grund des Datenflusses funktioniert es ja leider nicht so einfach.
Zum Verständnis: Der Boolean kann sich zu beliebigen Zeitpunkt ändern. Daraufhin möchte ich dann sofort die Schleife beenden

Was ich ungern möchte, mit If-Bedingungen die weitere Ausführung zu schachteln. Das würde in meinem Programm extrem Aufwendig werden und ist eher meine Notlösung.


Vielen Dank im Voraus,
Stefan


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2014, 14:49
Beitrag #2

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 241
Registriert seit: Jul 2013

LV-2019
2013
EN


Deutschland
RE: For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen?
Da gibt es theoretisch verschiedene Möglichkeiten, die mir auf die schnelle einfallen.

Die Erste: Du bastelst dir eine FGV, die du in jedem Schleifendurchlauf abfragst.
Die Zweite: Mittels Eventstruktur das Abbruchsignal abfragen und dann per lokale Variable an die Schleife übergeben

Getesetet habe ich das jetzt nicht. Mir fällt aber auch kein grund ein, warum das so nicht funktionieren sollte Tongue
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2014, 14:58
Beitrag #3

Stefan_r Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Dec 2013

2012
2013
DE



RE: For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen?
Das Problem ist nicht, den Wert der Variablen aktuell in die Schleife zu bekommen, das Problem ist, zu verschiedenen Zeitpunkten das Condition Terminal auszuwerten.

Ich suche also eine Lösung wie ich das Condition-Terminal mehrmals in einem Schleifendurchgang. (C-Analogy möchte ich an beliebiger Stelle ein Break einsetzen können) auswerten kann.

In dem Beispiel wird jeweils der korrekte Werte an das "oder" gegeben, aber leider erst ausgewertet, wenn beide Werte bereits bekannt sind.
Ich möchte aber verhindern das do x ausgeführt wird, wenn sich der Boolean schon geändert hat bis dahin. (Wie gesagt ich könte do x in eine If-Condition setzen die den Boolean abfragt, aber das ganze Programm ist etwas komplexer sodass es zum Schluss sehr groß und unschön würde)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2014, 15:17 (Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2014 15:18 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen?
Ich sag nur "State Machine", da kannst du nach jedem Schritt abbrechen! (THINK Dataflow!!!!)

Bei dem Screenshot mit der Flat-Sequence ist das nur über Umwege erreichbar. Du müsstest jeden To-Do in eine Case-Struktur packen und auswerten, ob vorher ein Fehler aufgetreten ist.

Da fährst du mit einem Umbau zur State-Machine besser.

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!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
28.10.2014, 15:22 (Dieser Beitrag wurde zuletzt bearbeitet: 28.10.2014 15:22 von NoWay.)
Beitrag #5

NoWay Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 241
Registriert seit: Jul 2013

LV-2019
2013
EN


Deutschland
RE: For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen?
Wie wäre es dann mit einer Statemachine?
Du hättest zwar dann den Aufwand gewonnen, dass du tatsächlich immer die Zustände überprüfen musst, aber das gesamte Szenario bleibt aufgrund der Struktur der Statemachine weiterhin übersichtlich.

Beispiel:
State 1: do y
next State
State 2: do x
next State
...
State n: Abbruch

Edit: Jens war schneller Big Grin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.10.2014, 14:43 (Dieser Beitrag wurde zuletzt bearbeitet: 30.10.2014 10:46 von Lucki.)
Beitrag #6

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen?
State-machine ist natürlich immer gut, aber wenn Du nur wissen wolltest, wie man genau Dein Beispiel auf einfachste Art zum funktionieren bringt, dann würde ich diese "extrem rudimentäre State-machine" vorschlagen:
   

Als Pseudocode sähe das so aus:
begin:
do y
if Stop then exit
do x
If Stop then exit
goto begin
exit:

(Hier wurde nicht mit eingearbeitet, dass es sich um eine For-Schleife handelt, die bei Erreichen von i=N auf natürliche Weise beendet wird. Gegenüber Deinem Beipiel ist N [- bei mir fehlerhafter Weise gar nicht angeschlossen -] zu verdoppeln, da die Schleife für einen vollständigen Zyklus immer zwei mal durchläuft)

Gruß Ludwig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
03.11.2014, 10:12
Beitrag #7

Stefan_r Offline
LVF-Grünschnabel
*


Beiträge: 17
Registriert seit: Dec 2013

2012
2013
DE



RE: For-Scheife zu unterschiedlichen Zeitpunkten unterbrechen?
Vielen Dank für eure Antworten.
Dann werde ich also um eine Neustrukturierung des Codes nicht herumkommen.
(Verdoppeln des Condition-Terminals wäre auch zu schön gewesen Wink )
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  2 Parallele While-Schleifen mit unterschiedlichen Timer beenden Tomate27 3 2.976 18.08.2020 13:29
Letzter Beitrag: GerdW
  Einen laufenden Task unterbrechen alex-one 1 2.913 24.04.2020 07:35
Letzter Beitrag: kpa
  DAQ Datenoutput an zwei Ziele mit unterschiedlichen Intervallen moTo 4 4.438 06.05.2016 20:05
Letzter Beitrag: GerdW
Question Y-Achse mit unterschiedlichen Farben im Label LazyBoNe 2 3.797 02.07.2014 08:28
Letzter Beitrag: LazyBoNe
  Umgang mit vielen Variablen unterschiedlichen Typs dummyuser 6 5.640 13.01.2014 12:19
Letzter Beitrag: dummyuser
  Probleme mit unterschiedlichen Datentypen Hasenfuss 4 5.232 22.04.2013 13:02
Letzter Beitrag: Kiesch

Gehe zu: