geeignete Stopfunktion gesucht - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +--- Thema: geeignete Stopfunktion gesucht (/Thread-geeignete-Stopfunktion-gesucht) |
geeignete Stopfunktion gesucht - chilischote85 - 23.05.2008 13:26 Moin, mei Problem: ich kann mein Programm nur mit der Stop-Taste oben links beenden. Eigentlich gibt es schon einen Button um das Programm nach dem momentanen Durchlauf zu beenden. Allerdings startet das Programm trotz gedrücktem Button lustig den nächsten Schleifendurchlauf :-( Aufgrund des Beendens durch die Stoptaste wird das Programm nur bei jedem zweiten Aufruf ordnungsgemäß gestartet, bei den restlichen kommt es zu einem Fehler beim Loggen in die Datei... Ich danke schonmal im Voraus für jede kleine neue Idee, die mir weiterhilft!!! Ich hoffe mein Blockdiagramm ist nicht zu verwirrend geeignete Stopfunktion gesucht - oenk - 23.05.2008 13:47 Leider doch, dein Programm ist sehr verwirrend. Das Problem das du hast sind sogenannte "race conditions". LabVIEW ist datenflussabhaenging. Wenn du mit lokalen Variablen arbeitest werden die "zufällig" (in Ermangelung besseren Wissens nenn ich das mal so) abgerufen. Es ist nicht definiert wann genau eine innerhalb einer Schleife/Frame abgerufen wird. Und da du so viele Schleifen parallel am Laufen hast, passiert das schnell mal....Dh deine Hauptschleife ist schon fertig und sendet "Alles aus", deine parallelen arbeiten jedoch gerade noch und fangen einen neuen Durchlauf, kurz bevor "Alles aus" auf TRUE gesetzt wurde, an. Somit erhälst du einen neuen durchlauf der paralellen Schleife. Ein neuer Ansatz wäre ein Consumer/Producer-Pattern... Schaue mal in der Hilfe nach.. Ich denke da musst du noch etwas Energie reinstecken, um das Problem in den Griff zu bekommen.... Gruss, Christian geeignete Stopfunktion gesucht - IchSelbst - 23.05.2008 14:07 @chilischote85 <!--quoteo(post=51131:date=23.05.2008 , 14:47:22:name=<<oenk>>)--><div class='quotetop'>ZITAT(<<oenk>> @ 23.05.2008 , 14:47:22) [url=index.php?act=findpost&pid=51131][/url]</div><div class='quotemain'><!--quotec-->Ein neuer Ansatz wäre ein Consumer/Producer-Pattern...[/quote]... was natürlich zu bevorzugen wäre ... Du kannst aber vorerst mal mit einer ganz ordinären Sequenzierung arbeiten. Das IF-Statement ganz recht neben der Haupt-While-Schleife ist längst abgearbeitet, noch bevor die While-Schleife überhaupt richtig gestartet ist. Daher wird "alles aus" niemals gesetzt, wenn diese Haupt-While-Schleife beendet wird. In Folge laufen natürlich alle anderen While-Schleifen weiter. Mach mal alles, was nicht mittels Datenfluß sequenziert ist, in eine Sequenz-Struktur hinein. geeignete Stopfunktion gesucht - Lucki - 23.05.2008 18:53 Habs mal notdürftig abgeändert (Mußte die SubVis und was Fehlermeldungen macht löschen). Der Stop funktioniert aber auch jetzt nur, wenn das Proogramm nicht in einer Schleife innerhalb der Haupschleife oder bei einem Sub_VI hängen bleibt. Das kann ich jetzt nicht beurteilen. Bemerkung: Den Anfänger erkennt man regelmäßig auch an der exzessiven Verwendung von Sequenzen, so wie hier bei Dir. Es geht nicht immer ohne, aber bei Anfängern stellt es meistens den Versuch dar, die natürliche Datenflußsteuerung von LV außer Kraft zu setzen, zugunsten eine sequentiellen Abarbeitung, wie man sie von den textorientierten Sprachen her kennt. (Und dann kommen hier die Anfragen, wie man es machen kann, in einer solchen solchen Multi-Sequenz auch mal rückwärts zu gehen) [attachment=12662] geeignete Stopfunktion gesucht - chilischote85 - 27.05.2008 10:59 Ja ok, Danke für die Mühe, aber es bleibt trotzdem immer in der Schleife hängen :-( Ich würde ja auch gerne die Sequenz umgehen, aber die Steuerung soll halt wirklich Schritt für Schritt ablaufen, weil ich ja später mal einen Reaktor dranhängen habe, bei dem biologisch was läuft...sprich nach dem Wachstum in der Zykluszeit muss wirklich erst der Inhalt halbiert werden und dann frisches Medium reingepumpt werden! Da kann ich mir das mit reinem Datenfluß schlecht vorstellen?! geeignete Stopfunktion gesucht - Y-P - 27.05.2008 12:33 Dann probier' mal eine State-Machine, die läuft auch sequentiell ab....... Ein Reaktor?? :oDann probier' ja schön genau, damit uns das Ding nicht um die Ohren fliegt. Gruß Markus ' schrieb:Ja ok, Danke für die Mühe, aber es bleibt trotzdem immer in der Schleife hängen :-( geeignete Stopfunktion gesucht - Kvasir - 27.05.2008 12:35 Es gibt neben den Sequenzen einige Möglichkeiten den Datenfluß zu steuern. Eine Funktion kann ja z.B. nur arbeiten, wenn alle Eingangsgrößen anliegen. Alleine dadurch erhältst du schon viele Bedingungen für den Ablauf. Was ich mir bei deiner Aufgabenstellung sehr hilfreich vorstelle ist eine StateMaschine. Wurde schon oft hier im Forum beschrieben. Such mal danach und schaue, ob dir das hilft. Eine andere beliebte Methode sequentielle Abarbeitung sicherzustellen ist das Durchverbinden eines Fehlerclusters (schematisch siehe Screenshot). Dadurch stellst du neben der geordneten Abarbeitung auch noch eine Fehlerabfrage sicher. Grüße geeignete Stopfunktion gesucht - Lucki - 27.05.2008 12:40 ' schrieb:Ja ok, Danke für die Mühe, aber es bleibt trotzdem immer in der Schleife hängen :-(Wenn es innerhalb der großen Sequenz noch Schleifen mit Hängern gibt, dann mußt Du die entsprechenden boolschen Anschlüsse für die Schleifenstops alle noch mit den lokalen Veraiablen des endgültigen Stops verodern. Hier mal ein Beispiel wie man es besser macht, wenn eine bestimmte Reihenfolge einzuhalten ist. Du kannst hier jederzeit abstoppen, ohne alle Sequenzen durchlaufen zu müssen, und kannst gegebenenfalls entscheiden, welcher Case als nächster drankommt. Das muß nlcht unbedingt der nächste sein. (Zusätzlicher Vorteil: Dein Blockbild passt auf den Schirm!) [attachment=12703] geeignete Stopfunktion gesucht - chilischote85 - 27.05.2008 15:17 ' schrieb:Wenn es innerhalb der großen Sequenz noch Schleifen mit Hängern gibt, dann mußt Du die entsprechenden boolschen Anschlüsse für die Schleifenstops alle noch mit den lokalen Veraiablen des endgültigen Stops verodern. Das würd ich gern mal anguggen, is aber ne höhere Version als meine (8.2) :-( geeignete Stopfunktion gesucht - Lucki - 27.05.2008 15:32 ' schrieb:Das würd ich gern mal anguggen, is aber ne höhere Version als meine (8.2) :-(Das war ein Versehen, habe es oben ausgetaucht gegen 8.2 |