LabVIEWForum.de
VI stoppt trotz Stoppbutton nicht - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: VI stoppt trotz Stoppbutton nicht (/Thread-VI-stoppt-trotz-Stoppbutton-nicht)



VI stoppt trotz Stoppbutton nicht - DrHoas - 19.10.2007 11:05

Hallo,

beim angehängten VI habe ich um mein ganzes Programm eine Schleife gezogen um es mehrmals hintereinander auszuführen. Stoppen soll es nachdem ich auf den Stoppbutton gedrückt hab. Klar ist, dass er den aktuellen Schleifendurchgang erst abschließt und dann stoppt. Warum funktioniert das manchmal aber nicht? Das Programm hält nicht an und der Stoppbutton deaktiviert sich von selbst wieder.

Außerdem wird manchmal die Schleife nur einmal ausgeführt. Danach stoppt das Programm. Wenn ich es gleich danach nochmal (ohne etwas geändert zu haben) ausführe funktioniert's. Woran könnte das liegen?

Danke für eure Hilfe.

Gruß,

Philipp

[attachment=9228](LV 8.2)
[attachment=9229](LV 8.2)
[attachment=9230](LV 8.2)


VI stoppt trotz Stoppbutton nicht - jg - 19.10.2007 13:37

Großteil deiner Probleme dürfte daher rühren, dass in deinem Code nicht 100% feststeht, wann genau im Ablauf dein Stopp-Button ausgelesen wird, da er parallel zu deiner Sequenz liegt.

Verschiebe den Stopp-Button einfach mal in den letzten Teil deiner Sequenz und versuche es dann noch mal.

MfG, Jens


VI stoppt trotz Stoppbutton nicht - Lucki - 19.10.2007 17:57

Habe mir das VI mal angesehen. Der Stop-Button wird ja nur einmal pro Schleifendurchlauf gelesen. Zum Code in der Schleife gehören z.B. 2 innere Schleifen mit je 2.5s Wartezeit pro Durchlauf.
Ich weiß nun überhaupt nicht, wie oft die inneren Schleifen durchlaufen werden, bis die Bedingungen erfüllt sind. Wenn es z.B je 50 Durchläufe sind, dann würde ein vollständiger Zyklus 100*2.5s = 250s dauern. D.h der Stop-Button wird nur alle 250sec abgefragt. Die Zeitdauer zwischen Drücken des Stop-Button und Abbruch des Progs ist ein Zufallswert im Bereich 0..250s.
Der Vorschlag von Jens ändert in dieser Hinsicht nicht Grundsätzliches, denn es ändert nichts daran. daß es einen vollständigen Zyklus (250s) dauern kann bis es zum Abbruch kommt.
Eine einfache Sofortmaßnahme, die allerdings keine Heilung, sondern nur Linderung verspricht, wäre die: Bei den drei inneren Schleifen mittels lokaler Variablen des Stop-Buttons den Abbruch herbeizuführen. Dann dauert es nur noch 0..10sec von Drücken des Stop-Buttons bis zum Stop. (Ohne Garantie für Nebenwirkungen, die entstehen können, wenn die Schleifen vorzeitig abgebrochen werden)
Wenn Dir das nicht genügt, müßte die ganze Struktur grundlegend geändert werden. Stichwort State-machine statt Sequenzen. Bei dieser kann man, im Gegensatz zu Sequenz, bei der immer gnadenlos alle Zustände durchlaufen werden müssen, bei jedem Zustand abbrechen.

(VI LV 8.2)