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
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.
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 Meinung
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
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).
' 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
' 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.
oh man
des programm hat eh das gemacht was ich wollte allerdings hab ich immer "wiederholt ausführen" gemacht
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