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 

was macht die zweite while-Schleife?



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!

01.02.2013, 10:23
Beitrag #11

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



RE: was macht die zweite while-Schleife?
Hallo GerdW,

danke für Deine Message.

" ... Wie lange wartet die Funktion also bei einem TimeOut von "-1"? ..." fragst Du - ok, sie wartet also garnicht. Und was passiert, wenn ich an dem timeout-Ausgang eine "0" dranschreibe - dann wartet die Funktion auch nicht. Worin besteht der Unterschied nun zwischen "0" und "-1"? 0 wäre für mich auch "kein Zeitlimit".
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.02.2013, 10:28 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 10:35 von GerdW.)
Beitrag #12

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: was macht die zweite while-Schleife?
Hallo Hasenfuss,

Zitat:Wie lange wartet die Funktion also bei einem TimeOut von "-1"? ..." fragst Du - ok, sie wartet also garnicht.
Wenn man dir eine Aufgabe gibt mit der Aussage "kein Zeitlimit", wann musst du dann Ergebnisse liefern?
Sofort (unmittelbar nach der Aufgabenstellung) oder erst dann, wenn du ein Ergebnis hast?
Wall
Vielleicht kannst du jetzt die Frage nach dem Unterschied von "-1" und "0" beim Zeitlimit selbst beantworten...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 10:29
Beitrag #13

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



RE: was macht die zweite while-Schleife?
GerdW schrieb:
"... Zitat:
wenn der timeout-Anschluss immer noch false liefert, aber noch kein Element da ist
???
Entweder "TimeOut=TRUE, weil kein Element da" oder "TimeOut=False, weil Element da"... ..."

gut - ich habe meine Frage ungeschickt formuliert. Ist kein Element in der Queue, dann liefert "Element aus Queue holen" TRUE. Wenn ich mein time-out aber nun auf 500ms setze, wartet dann die Funktion 500ms und gibt dann das Signal false- an den case weiter - oder aber gibt die Funktion andauernd das Signal an case und der case wird während der 500ms dann z.B. 1000mal durchlaufen? Weil es könnte ja passieren, dass dann während der 500ms Wartezeit dann plötzlich ein Element vorhanden ist und dann müsste es ja innerhalb der 500ms von true auf false umspringen.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 10:31 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 10:34 von GerdW.)
Beitrag #14

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: was macht die zweite while-Schleife?
Hallo Hasenfuss,

ein TimeOut gibt immer die maximale Wartezeit einer Funktion an. Wenn das gewünschte Ergebnis schon vorher bereitsteht, wird nicht länger gewartet...

Warum probierst du solche Sachen nicht einfach mal mit einem kleinen Beispiel aus?
Stelle einen TimeOut von 20s ein. Schicke nach 5s eine Element in die Queue. Wann bekommst du dein Element beim Dequeue geliefert? Manchmal kann das Leben so einfach sein - wenn man die mit LabVIEW mitgelieferten Beispiele durchspielt...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 10:37
Beitrag #15

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



RE: was macht die zweite while-Schleife?
Hallo GerdW,

herzlichen Dank für Deine Geduld, mir meine Fragen zu beantworten. Ich würde Dir jetzt gerne eine Tafel Schokolade schenken, um meine Dankbarkeit auszudrücken und um Deine Stimmung wieder etwas zu heben, weil ich nicht alles sofort kapiert hab.

Ich hatte eben in meinem Beitrag (9.52 Uhr) auch noch ein Bild mit angefügt. Wenn ich Daten von einem Gerät in eine Queue schreibe und sie dann in einer anderen Schleife aus der Queue auslesen will, um sie auf der Festplatte zu speichern, ist dann diese Lösung eine geschickte Lösung oder auch noch verbesserungswürdig? Ich habe dort versucht das mal so umzusetzen, wie Lucki es mir vorschlug.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 10:45 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 10:45 von GerdW.)
Beitrag #16

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: was macht die zweite while-Schleife?
Hallo Hasenfuss,

dunkle Schokolade, 70-80%, bitte. Adresse kann ich dir per PN zukommen lassen Big Grin

Je nachdem, wie du die Queue wieder löschst (mit QueueFreigeben), würde ich noch den Fehlerstatus vom Dequeue auswerten und als Abbruchkriterium der Schleife verwenden. Ansonsten ist das aber der empfohlene Weg...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
01.02.2013, 11:42
Beitrag #17

Hasenfuss Offline
LVF-Stammgast
***


Beiträge: 331
Registriert seit: Dec 2012

2012
2012
DE



RE: was macht die zweite while-Schleife?
Hallo !

Ich hab das jetzt mal versucht so umzusetzen. Ich habe als Abbruchkriterium für die Schleife zum Schreiben den Schleifenknopf mit dem Fehlercluster verbunden (analog auch dem Beispiel Queue-Grundlagen.VI aus Labview. Ich habe vorher mit der Bubblefunktion getestet bzw. mit der einfachen Errormessagefunktion - wenn ich die Queue freigebe, dann kommt ein Fehler in der while-Funktion Daten speichern und die Schleife wird beendet.

Um sicherzustellen, dass die Queue erst freigegeben wird, wenn keine Elementen mehr vorhanden sind, habe ich eine dritte Schleife nach der Schleife "Daten lesen/erzeugen" für die Queue erstellt. Dort wird ermittelt, ob alle Elemente ausgelesen wurden (sorry, in dem Bild fehlt das Warten in der while-Schleife). Ist die Queue leer, dann wird die Queue freigegeben, in der while-Schleife "Daten speichern" kommt dann der Fehler, dass die Queue nicht mehr da ist, da sie freigegeben wurde, und die Schleife wird auch beendet.

Würdet Ihr sagen, dass dies so eine saubere Lösung ist oder sollte ich an diesem Ansatz auch mit dem Beenden etwas verbessern? Für Vorschläge bin ich immer dankbar.


Angehängte Datei(en) Thumbnail(s)
   
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 11:49
Beitrag #18

Trinitatis Offline
LVF-Guru
*****


Beiträge: 1.694
Registriert seit: May 2008

7.1 / 8.0 /2014-1, 18
2002
DE

18055
Deutschland
RE: was macht die zweite while-Schleife?
wenn du es so machen möchtest, gehört beim Schließen der Queue noch ein wait rein.

Gruß, Marko
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
01.02.2013, 11:50 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2013 11:50 von GerdW.)
Beitrag #19

GerdW Offline
______________
LVF-Team

Beiträge: 17.469
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: was macht die zweite while-Schleife?
Hallo Hasenfuss,

so würde es auch funktionieren...

Ich präferiere einen anderen, hier im Forum schon oft genannten Ansatz: Man schickt nicht nur Daten, sondern einen Cluster aus Befehl + Daten. Die Consumer-Schleife wertet den Befehl mitsamt Daten aus - und diese Schleife löscht die Queue! Mögliche Befehle in deinem Fall wären: "Daten schreiben" und "Quit"...

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Was macht das Express VI Messung von Frequenzkomponenten bachatero18 9 4.905 17.09.2020 07:56
Letzter Beitrag: Martin.Henz
  Timer macht was er will :-) Natalie1984 6 4.037 04.07.2019 12:49
Letzter Beitrag: IchSelbst
  Funktion Diagramm aufräumen macht komische Sachen Hasenfuss 5 5.944 01.02.2013 12:19
Letzter Beitrag: Kiesch
  State Machine macht mit selben Funktionen jedesmal etwas anderes anuller 6 6.580 10.04.2012 12:42
Letzter Beitrag: Lucki
  Inverser Tangens 2 Eingänge macht nicht das was ich mir denke Neil 5 5.420 07.04.2012 07:06
Letzter Beitrag: Lucki
  VI macht auf anderer Maschine "Blödsinn" gottfried 0 2.960 17.03.2012 10:01
Letzter Beitrag: gottfried

Gehe zu: