' schrieb:Besteht trotzdem nicht die Möglichkeit, die while-Schleife an jeder beliebigen Stelle sofort zu unterbrechen?
Natürlich.
Der Inhalt deiner While-Schleife ist ja ein Ablauf in dem Sinne, dass "mehrere Sachen nacheinander gemacht werden". Diese Sachen kann man eben in eine Statemachine (<= wichtiges Programmier-Konzept, das ist eine Case-Sequenz mit Enumerator-Selector in einer While-Schleife). Nach jedem State kann man z.B. was machen, nämlich auf Abbruch testen. Also: S1:Pumpe links, testen, S2:Warten, testen, S3:Pumpe rechts, testen ....
Zitat:Wenn ich das richtig sehe, schlägst du vor, daß die while-Schleife mindestens einmal fast komplett abgearbeitet wird?
Wann du auf Abbruch testet, hängt von der Applikation ab. Wenn mehrere Sachen hintereinander gemacht werden müssen, kann man das auch genau so programmieren.
Zitat:Ich glaube sogar, daß diese Stop.vi vielleicht nicht mal in der Autofill_v6_LV_2009.vi sitzen muss.
Von LabVIEW aus gesehen bist du da völlig frei. Wie's sein sollte, gibt lediglich die Applikation vor.
Zitat:In der Experiment.vi gibt es ja schon einen Stop-Button, der dort die innere Schleife abbricht und somit die Pumpe anhält. (Ich wollte ja viele Stop-Buttons vermeiden).
Richtig. Doppelt vorhanden sollte nichts sein. Funktioniert zwar, gibt aber Probleme.
Zitat:Die Schleife bricht ab und wegen Datenfluß wird die Pump via Stop.vi angehalten. Ist das korrekt?
Hm.
Die Pumpe wird nicht wegen Datenfluß angehalten. Die Pumpe wird angehalten, weil es der Algorithmus so will. Das hat mit dem Datenfluß als solches nichts zu tun. Wegen des Datenflusses wird die Pumpe erst nach der While-Schleife angehalten. (Hinweis: In "Datenfluss" steckt immer auch ein zeitlicher Aspekt.)
Zitat:Außerdem könnte ich ja diese Referenz vielleicht mit dem anderen Stop-Button aus der Main.vi verknüpfen. Wie du sagst, von außen abbrechen ...
Das ist eben eine Möglichkeit.
Zitat:Grundsätzliche Frage: Ich dachte, ich kann Sub.Vis mehr oder weniger unabhängig von Main.vis bauen und diese dann in die Main.vi einfügen. Das erscheint mir jedoch nun eine schlechte Idee, weil man viel zu viel ändern muss. Richtig?
Nein, nein. Die Idee ist sogar sehr gut. Sie fördert nämlich die Modularisierung.
Problem ist nur, wie bekommst du dann Daten in das SubVI. Das SubVI selbst ist ja nicht mehr in einen expliziten Datenfluss eingebunden. Lösung: Queues, Melder, Benutzerereignisse.
Zitat:Das hatte ich zuvor auch gemacht, aber dann dachte ich mir, ich könnte ja mal die event structure benutzen
Der Gedanke war richtig. Für die Ausführung musst du dann aber Benutzerereignisse (das ist was anderes als der Knoten Wert(signalisierend)) nehmen.
Zitat:Wäre das eigentlich auch mit diesen "Filmstreifen" aka Sequenz gegangen?
Ja.
Zitat:Warum hast du diese error-case struktur aus der Autofill.vi herausgenommen? Wann sollte man diese besser einsetzen?
Welche Error-Case-Struktur? Meinst du den IF-Case? Der war einfach nicht notwendig.
[Zitat]aber welche Wartezeiten meinst du bitte?[/Zitat]
Im Prinzip die Wartezeit zwischen Pumpe umschalten.
********************************************************************
Blöder Computer, wegen dem einen Zitat.