LabVIEWForum.de
While Schleifen Problem - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: While Schleifen Problem (/Thread-While-Schleifen-Problem)



While Schleifen Problem - bolle - 03.12.2008 16:58

Hallo miteinander

Beschäftige mich gerad erst seit ein paar Tagen mit LabVIEW und hab mich heute ein bisschen mit Schleifen beschäftigt.

Dazu habe ich mir ein kleines VI gebaut das auf eine Sekunde getaktet ist. Nach 5 durchläufen sollte es eigentlich Stoppen.
Kurzzeitig macht es dies auch aber überläuft dann einfach die Abbruch Bedingung und zählt weiter.
Es ist ein ziemlich einfaches Porgramm.
Was jemand die Lösung zu meinem Verständnisproblem???
(LabVIEW 8.6)

MFG Bolle


While Schleifen Problem - Lucki - 03.12.2008 19:29

Das liegt an dem nicht initialisierten Schieberegister. Beim ersten Aufruf beginnt die Zählung mit Null, bei den folgenden Aufrufen wird die Zählung dort fortgesetzt, wo sie aufgehört hatte.
Also: Null auf der linken Seite anschließen.
Ein weitere Unsicherheit, die hier aber wohl nicht relevant ist: der Vergleich zweier Reeller Zahlen auf Gleichheit kann schief gehen, und zwar wegen ihrer Machinenungenauikeit in einer Kommastelle ganz weit hinten.


While Schleifen Problem - jg - 03.12.2008 19:30

Das kommt durch das nicht-initialisierte Shift-Register.

Beim zweiten Durchlauf steht da Wert vom ersten kompletten Durchlauf des Programms (also 5) und somit funzt es nicht.

Mach mal so:

[attachment=15703]

Ach ja, und es ist gefährlich, bei Fließkomma auf Gleichheit zu vergleichen. Nimm lieber eine Integerzahl.

Gruß, Jens

EDIT: @Lucki: Und wieder mal sind wir einer MeinungLol


While Schleifen Problem - bolle - 04.12.2008 09:17

Danke@jens und lucki =)

okay also das mit dem schiebe register hab ich jetzt verstanden. Dadurch das ich keine 0 an den linken orangen Anschluss(weiss den ausdrcuk dafür jetzt nicht) gesetzt habe, wird also das schiebe register nicht zurückgesetzt und er zaehlt einfach da weiter wo er aufgehört hat bei erneuter Initialisierung der while schleife.
Allerdings war meine Intention fuer dieses kleine VI das er die Schleife 5 mal, im Sekundentakt durchläuft und dann aufhört bzw. stoppt.

Bin mir nicht ganz sicher aber liegt mein Denkfehler darin das er nach dem 5. durchlauf zwar hinter dem Vergleicher ein True ausgibt aber durch den eingefügten 0er ,der das ganze rücksetzt beim nächsten Durchlauf wieder ein False sieht und daher wieder weitermacht?

Was muesst ich denn machen um ihn nach dem 5ten Durchlauf stoppen zu lassen???

Habe nach einem Flip Flop ähnlichem Baustein gesucht der sich das ganze merkt, allerdings habe ich nix gefunden.

Wie würdet ihr das machen???

Gruss Bolle


While Schleifen Problem - macces - 04.12.2008 09:53

Es gibt ja nach einem True am Vergleicher keinen nächsten Durchlauf, da die Schleife verlassen wird und das vi beendet wird (es sei denn, Du startest das vi im "wiederholt ausführen" modus, da wirds dann immer wieder neu ausgeführt).


While Schleifen Problem - Ice Lord - 04.12.2008 10:12

' schrieb:Hallo miteinander

Beschäftige mich gerad erst seit ein paar Tagen mit LabVIEW und hab mich heute ein bisschen mit Schleifen beschäftigt.

Dazu habe ich mir ein kleines VI gebaut das auf eine Sekunde getaktet ist. Nach 5 durchläufen sollte es eigentlich Stoppen.
Kurzzeitig macht es dies auch aber überläuft dann einfach die Abbruch Bedingung und zählt weiter.
Es ist ein ziemlich einfaches Porgramm.
Was jemand die Lösung zu meinem Verständnisproblem???
(LabVIEW 8.6)

MFG Bolle

Also wenn du grad erst angefangen hast, dann solltest du dich lieber durch die ganzen Examples kämpfen. Du schaust sie dir an, und versuchst sie auf deine Wünsche nach zu bauen. NICHT kopieren, sondern selber versuchen.
So lernst du am schnellsten und effektivsten.

Mfg


While Schleifen Problem - Lucki - 04.12.2008 11:42

' schrieb:Allerdings war meine Intention fuer dieses kleine VI das er die Schleife 5 mal, im Sekundentakt durchläuft und dann aufhört bzw. stoppt.
Mit dem Sekundentakt ist auch nicht ganz korrek: Der Metronom warte nicht 1 sec, sondern er wartet bis zum nächsten Sekunden-Tic der PC-Uhr. Diese Zeit ist beim ersten Durchlauf ein zufälliger Wert zwischen 0 und 1 sec. Für die darauffolgenden Durchläufe ist es dann OK. Ansonsten Wait statt Metronom verwenden.


While Schleifen Problem - bolle - 04.12.2008 12:40

oh man
des programm hat eh das gemacht was ich wollte allerdings hab ich immer "wiederholt ausführen" gemacht Dry

trotzdem was gelernt ^^

@ Ice Lord

genau des mach ich gerade
allerdings nicht die Bsp sondern das schulungshandbuch und da ich gerad beim Kapitel Schleifen bin und mir diese Schieberegister nicht ganz klar waren, wollt ichs einfachs mal ausprobieren.

Danke an alle fuer die Tipps