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 

geeignete Stopfunktion gesucht



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!

23.05.2008, 13:26
Beitrag #1

chilischote85 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Mar 2008

8.2
2008
kA

1239
Deutschland
geeignete Stopfunktion gesucht
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 Rolleyes

Lv82_img


Angehängte Datei(en)
Sonstige .vi  Zyklustimer_f_r_Forum.vi (Größe: 63,97 KB / Downloads: 259)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
23.05.2008, 13:47
Beitrag #2

oenk Offline
LVF-Stammgast
***


Beiträge: 361
Registriert seit: May 2005

>= 7.1
2004
EN

3018
Schweiz
geeignete Stopfunktion gesucht
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

In theory, there is no difference between theory and practice; In practice, there is.

Chuck Reid
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2008, 14:07
Beitrag #3

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.697
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
geeignete Stopfunktion gesucht
@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.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
23.05.2008, 18:53 (Dieser Beitrag wurde zuletzt bearbeitet: 23.05.2008 18:54 von Lucki.)
Beitrag #4

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
geeignete Stopfunktion gesucht
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)
Lv82_img
Sonstige .vi  Zyklustimer_f_r_Forum_1_.vi (Größe: 58,26 KB / Downloads: 257)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.05.2008, 10:59
Beitrag #5

chilischote85 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Mar 2008

8.2
2008
kA

1239
Deutschland
geeignete Stopfunktion gesucht
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?!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.05.2008, 12:33
Beitrag #6

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
geeignete Stopfunktion gesucht
Dann probier' mal eine State-Machine, die läuft auch sequentiell ab.......
Ein Reaktor?? Huh: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 :-(

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?!

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
27.05.2008, 12:35
Beitrag #7

Kvasir Offline
LVF-Freak
****


Beiträge: 642
Registriert seit: May 2006

10
2004
DE_EN

0000
Oesterreich
geeignete Stopfunktion gesucht
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


Angehängte Datei(en) Thumbnail(s)
   

A few weeks of developement and testing can save a WHOLE afternoon in the library!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.05.2008, 12:40 (Dieser Beitrag wurde zuletzt bearbeitet: 27.05.2008 15:30 von Lucki.)
Beitrag #8

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
geeignete Stopfunktion gesucht
' schrieb:Ja ok, Danke für die Mühe, aber es bleibt trotzdem immer in der Schleife hängen :-(
Da kann ich mir das mit reinem Datenfluß schlecht vorstellen?!
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!)

Lv82_img
Sonstige .vi  Sequenz.vi (Größe: 14 KB / Downloads: 267)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.05.2008, 15:17
Beitrag #9

chilischote85 Offline
LVF-Grünschnabel
*


Beiträge: 29
Registriert seit: Mar 2008

8.2
2008
kA

1239
Deutschland
geeignete Stopfunktion gesucht
' 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.

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!)

Lv82_img[attachment=39951:Sequenz.vi]


Das würd ich gern mal anguggen, is aber ne höhere Version als meine (8.2) :-(
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
27.05.2008, 15:32
Beitrag #10

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

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
geeignete Stopfunktion gesucht
' 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
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: