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 

While-Schleife sofort beenden ?



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!

03.10.2019, 20:09
Beitrag #4

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: While-Schleife sofort beenden ?
(03.10.2019 14:21 )RobertRoth schrieb:  Mein Problem ist nun, dass ich z.B. in der einen Schleife einen Schrittmotor ansteure, der soll bis zu einem Endschalter fahren. Breche ich nun die Schleife ab, so geht das erst, wenn die Schleife ihre endbedingung erzielt hat, Endschalter gedrückt. Die Schleife sollte aber sofort beenden. (in einem weiteren Schritt kann ich den Motor dann stoppen, dies ist kein Thema.)

Dieses Problem zieht sich natürlich über mehrere Schleifen. Bricht die eine ab, sollen die anderen nicht mehr ausgeführt werden. Ich müsste also den Weg umleiten können.

Hallo Robert,
das ist ja dann das von mir schon skizzierte und erwartete Problem. Ich nehme an, du "sagst" dem Schrittmotor, fahre zu Position 100.000 und pollst dann mit Hilfe einer Ist-Positionsanfrage, ob er schon da ist. Zumindest solltest du das so tun und nicht eine Totzeit abwarten, nach der er wahrscheinlich da ist. Wenn du das so machst, könntest du ja in deiner NotAus-Schleife ein Stopkommando senden. Wenn du aber nur auf den Endschalter wartest, dann hast du ja keine Info über die Istposition - dann bleibt dir ja nur, mit einem Stop-Kommando dazwischenzuhacken...

In jedem Fall musst du eine abzuarbeitende Prozedur in abbrechbare Stücke zerhacken. Wenn ich beispielsweise ein Programm dazu bringen will, dass es 60s wartet, dann setze ich keine 60000 an die Wait-Funktion, sondern lasse das Programm in einer Schleife von 100-200ms - Waits warten, die ich jederzeit abbrechen könnte.
Die nachfolgenden Programmschritte kannst du dann mit Hilfe der NotAus-Info umgehen - dazu eignet sich eben die Statemachine besonders gut.


Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Nachrichten in diesem Thema
RE: While-Schleife sofort beenden ? - Trinitatis - 03.10.2019 20:09

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Asynchrone VIs mit Event Struktur sofort beenden Kiesch 4 780 Gestern 10:29
Letzter Beitrag: Kiesch
  Case Struktur 2 Schleifendurchläufe verzögert True setzen aber sofort auf False bachatero18 4 4.623 07.11.2020 14:08
Letzter Beitrag: Martin.Henz
  Schleife sofort beenden mprocket 9 5.807 19.01.2018 23:26
Letzter Beitrag: mprocket
  While Schleife durchläuft ein zweites mal nach beenden p4tti 5 4.371 15.09.2016 10:34
Letzter Beitrag: jg
  Schleife nach Pop-Up beenden TDO 6 5.158 16.02.2016 09:59
Letzter Beitrag: TDO
  While Schleife mit Mausklick beenden eincremerle 3 3.481 10.11.2015 07:53
Letzter Beitrag: eincremerle

Gehe zu: