Case-Wechsel innerhalb einer For-Schleife

Anfängerfragen, die mit LabVIEW zu tun haben
Правила форума
In unserem Forum ist es möglich Foren zu verbergen. Für jede Sprache gibt es eine Gruppe:

hide XXX forums

Wenn du also ein Forum in einer Sprache nicht sehen möchtest, dann musst du einfach in die richtige Gruppe(n) eintreten. Das kannst du in den Profileinstellungen machen.
Ответить
thorfinn
interested
interested
Сообщения: 7
Зарегистрирован: 30 май 2012, 11:33
Версия LabVIEW: 2011
Контактная информация:

Case-Wechsel innerhalb einer For-Schleife

Сообщение thorfinn »

Hallo,

ich hab erst vor kurzem angefangen mich mit labview zu beschäftigen und hab schon gleich mein erstes Problem.

Ich hab ein VI, das entweder eine steigende oder eine fallende e-Funktion als Diagramm ausgibt.
Dafür hab ich eine Casestruktur in eine For-Schleife gepackt, und die einzelnen Iterationsschritte sind meine Eingangsgröße für die beiden e-Funktionen.

Mit einem Schalter will ich jetzt zwischen der fallenden und steigenden e-Funktion hin und her schalten können, und zwar während meine Schleife weiterläuft, d.h. meine Iteration nicht immer wieder von neu anfängt, sondern beim Schalten mit dem aktuellen Iterationswert weitergemacht wird.

Mein Problem ist jetzt, dass ich den Schalter nur betätigen kann (bzw. das VI nur dann reagiert), wenn das Programm noch nicht gestartet ist. Ich kann also nicht, z.b. bei der 473ten Iteration von meiner steigenden auf meine fallende Funktion wechseln.

Hat jemand eine Idee wie ich das machen könnte?

Ich hoffe ich hab mein Problem verständlich geschildert, ich häng zum bessern Verständnis noch ein Anhang dran.

Grüße an Alle
Вложения
beispiel.vi
(13.54 КБ) 252 скачивания
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Case-Wechsel innerhalb einer For-Schleife

Сообщение Eugen Graf »

Hi!

Kann leider dein Beispiel nicht öffnen, aber 2 theoretische Ideen:

1. Schalter soll in der Schleife liegen, nicht ausserhalb
2. Die Schleife soll zeitlich lange laufen, damit du die Möglichkeit bekommst den Schalter umzulegen

Gruß, Eugen
thorfinn
interested
interested
Сообщения: 7
Зарегистрирован: 30 май 2012, 11:33
Версия LabVIEW: 2011
Контактная информация:

Re: Case-Wechsel innerhalb einer For-Schleife

Сообщение thorfinn »

1. Schalter soll in der Schleife liegen, nicht ausserhalb
das hat funktioniert, also dass ich da nich selber draufgekommen bin :super:

vielen dank :thank:
thorfinn
interested
interested
Сообщения: 7
Зарегистрирован: 30 май 2012, 11:33
Версия LabVIEW: 2011
Контактная информация:

Re: Case-Wechsel innerhalb einer For-Schleife

Сообщение thorfinn »

Hallo,

jetzt hab ich ein neues Problem:

Ich will, dass beim Schalten der letzte Wert, den meine Funktion davor hatte, gespeichert wird. So dass bei einem Case-Wechsel dieser Wert als neuer Startwert hergenommen wird.

Ich hab versucht den aktuellen Wert über ein Schieberegister zurückzuführen, allerdings ändert er sich dann weiter mit, und nach jeder Schleifeniteration bekomm ich dann ein neuen Startwert, so dass die Funktion dann viel zu schnell konvergiert.

Gibt es eine Möglichkeit den Wert so zu speichern, bzw festzuhalten, ohne dass er sich weiter ändert?

Grüße
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Case-Wechsel innerhalb einer For-Schleife

Сообщение Eugen Graf »

Hi!

Mach mal ein Screenshot deines Block Diagramms, so kann ich leider nichts dazu sagen.
thorfinn
interested
interested
Сообщения: 7
Зарегистрирован: 30 май 2012, 11:33
Версия LabVIEW: 2011
Контактная информация:

Re: Case-Wechsel innerhalb einer For-Schleife

Сообщение thorfinn »

klar, hier der Screenshot und des VI, ich hab den false-case drunter kopiert, der ist natürlich beim Ausführen des VIs nicht dort unten.

Beim Wechsel von steigend auf fallend, soll nach dem Start nicht mehr der Startwert (von im Beispiel 20) hergenommen werden, sondern der Funktionsgraph soll ohne Sprünge beim alten Wert weitermachen.
Вложения
beispiel.jpg
beispiel.vi
(15.36 КБ) 237 скачиваний
Аватара пользователя
Eugen Graf

Activity Professionalism Silver Black
guru
guru
Сообщения: 6502
Зарегистрирован: 13 ноя 2007, 02:20
Награды: 4
Версия LabVIEW: 2009
Откуда: Saarbrücken
Контактная информация:

Re: Case-Wechsel innerhalb einer For-Schleife

Сообщение Eugen Graf »

Mache dir nur ein Schieberegister, anstatt wie jetzt zwei. Plus und Minus (z.Z. vor der Case-Struktur) mach je in das richtige Case.
thorfinn
interested
interested
Сообщения: 7
Зарегистрирован: 30 май 2012, 11:33
Версия LabVIEW: 2011
Контактная информация:

Re: Case-Wechsel innerhalb einer For-Schleife

Сообщение thorfinn »

Meinst du mit dem Plus und Minus ein Inkrement und Dekrement? Aber des meinte ich gar nicht. Die beiden Schieberegister lassen ja nur meine Zeitvariable durchlaufen, des funktioniert schon so wie ich es wollte.

Lass mich mein Problem nochmal anders formulieren.

Im Moment sieht mein Funktionsverlauf aus, wie in bsp1. Die Funktion macht hier beim Umschalten einen Sprung. Den will ich aber nicht haben. Die Funktion soll, hier im Beispiel, bei ca. 13,9 weitermachen, und nicht zurück auf den Startwert von 20 springen.

Mein Versuch das zu lösen, war ein Schieberegister einzubauen, dass mir meinen aktuellen Funktionswert beim Umschalten als neuen Startwert ausgibt (wie in bsp2 mit dem roten Kreis markiert).
Jedoch will ich dass beim Umschalten der EINE aktuelle Wert für jede weitere Iteration hergenommen wird. So wie es jetzt ist wird bei jedem neuen Schleifendruchlauf mein Startwert auf den aktuellen Funktionswert geändert und so konvergiert meine Funktion, wie in bsp2 zu sehen, viel zu schnell.
Вложения
bsp1.jpg
bsp2.jpg
Ответить

Вернуться в «Für Anfänger»