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 

Signal beschleunigt ausgeben



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!

16.12.2009, 02:50
Beitrag #1

D-A-V-I-D Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Dec 2009

2009
-
de

50374
Deutschland
Signal beschleunigt ausgeben
Hallo LabVIEW Forum!

Dies ist mein erster "Beitrag" im Forum- und gleich komme ich mit Fragen.
Benutze eine aktuelle Version (2009) seit einigen Tagen. Habe diverse Tutorials gelesen, komme aber nicht so recht weiter.

Mein Problem:
Ich möchte eine LED-Anzeige (im LabVIEW) erst langsam, dann immer schneller blinken lassen. Bis zu einem Endwert.
Dabei soll die LED kurz aufblitzen und länger aus sein. Die "aus" Pausen sollen immer kürzer werden.


Zwar blinkt meine "LED", jedoch mit den zwei Problemen: entweder
a) die LED fängt langsam an, wird schneller- und schließlich viel zu schnell.
oder
b) meine Verzögerung- While Schleife arbeitet erst die Verzögerung komplett ab- und gibt erst den letzten Wert zurück. Was dann auch die End- Blinkgeschwindigkeit ist.

Wie würdet Ihr so etwas, mit möglichst einfachen Mitteln, lösen?


Die LED soll bald durch eine Schrittmotorsteuerung ersetzt werden. Das Blinken ist dann der Schrittpuls.
Den Schrittmotor muss ich etwas verzögert anlaufen lassen, daher die Umstände.
Ausgegeben werden soll das Signal an einer Data Translation DT 9800 USB Box als digitales Signal.

Besten Dank Euch!

Gruß
David
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.12.2009, 09:18
Beitrag #2

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
Signal beschleunigt ausgeben
Hi,

wenn Du schon was versucht hast, stell doch mal Deine Versuche als VI mit rein. Ich werde sie zwar wegen LV2009 nicht anschauen können, aber vielleicht der Rest - mit ein paar Anregungen denkt es sich meist leichter.

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.12.2009, 12:26
Beitrag #3

D-A-V-I-D Offline
LVF-Neueinsteiger


Beiträge: 3
Registriert seit: Dec 2009

2009
-
de

50374
Deutschland
Signal beschleunigt ausgeben
Hallo,

Du hast Recht.
Hier meine beiden Ideen:

V3:
Hier funktioniert alles, bis die Hauptschleife in´s Negative rutscht (zieht immer weiter 50 ab vom Timer). Mir ist der Fehler prinzipiell klar, jedoch finde ich keine Lösung um das Subtrahieren zu stoppen wenn das Schieberegister bei 0 angekommen ist.

V4:
Weshalb es hier nicht funktioniert verstehe ich nicht ganz. Die zweite FOR- Schleife wird von außen mit dem Wert 1000 initialisiert. Soll anschließend immer nur ein mal ausgeführt werden- Schieberegister zählt bei jedem mal 50 ab und wartet entsprechend lange. Jedoch übernimmt das Schieberegister jedes mal die 1000 neu. So dass der Timer immer mit 950 arbeitet.

Ich hab früher mit VB und C gearbeitet- irgendwie fehlt mir hier etwas.
So in der Richtung: Rufe Funktion "Warte" auf- diese verringert eine Variable und gibt diese zurück. Wenn die Variable bei 0 angekommen ist, dann kein weiteres Subtrahieren...

Danke Euch für Eure Antworten!

Gruß, David

VI mit Version 09 erstellt


Angehängte Datei(en) Thumbnail(s)
       

Sonstige .vi  Blinken_V3.vi (Größe: 9,03 KB / Downloads: 157)

Sonstige .vi  Blinken_V4.vi (Größe: 9,08 KB / Downloads: 180)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.12.2009, 12:34
Beitrag #4

unicorn Offline
LVF-Freak
****


Beiträge: 680
Registriert seit: Jul 2009

8.6.1, 2010 - 2012
1994
EN

10xxx
Deutschland
Signal beschleunigt ausgeben
' schrieb:b) meine Verzögerung- While Schleife arbeitet erst die Verzögerung komplett ab- und gibt erst den letzten Wert zurück. Was dann auch die End- Blinkgeschwindigkeit ist.

Das klingt danach dass die Verdrahtung in Blockdiagramm verkehrt ist. Aber ohne Beispiel VI lässt sich hier wenig, wie auch zu a), sagen.

Generell würde ich nicht auf die Wait-Funktion setzen. Die Wait-Funktion ist an den Systemtakt gebunden und solange Windows im Spiel ist würde ich das eher nicht für zeitkritische Angelenheiten nutzen, sondern besser den Timer der Datenerfassung und -ausgabe nutzen.

Ich würde entweder die Timer der USB Box immer wieder mit zeitlich passenden Zyklen laden oder ein Datenarray auf einen der Digitalausgänge ausgeben lassen, das entsprechen der gewünschten Pulszahl und Pulsabstände 0en und 1en enthält. Die Taktrate muss passend zur gewünschten kleinsten Zeitschrittauflösung der Periodendauer gewählt werden.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.12.2009, 11:10
Beitrag #5

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
Signal beschleunigt ausgeben
Erstmal willkommen Wink

1. Bei 50ms kannst du vergessen die Veränderung an der LED zu sehen, würd dir eher 200ms empfehlen
2. Deine beiden Wait-Funktionen arbeiten unabhängig voneinander, jedoch müsstest du die eine vor der Wertveränderung und eine nach der Wertveränderung schalten

Hier mal meine Lösung:

Sonstige .vi  LED_beschleunigung.vi (Größe: 19,79 KB / Downloads: 240)
LabVIEW 8.5


Edit: Noch zu deinen beiden Lösungsvorschlägen:

"Weshalb es hier nicht funktioniert verstehe ich nicht ganz. Die zweite FOR- Schleife wird von außen mit dem Wert 1000 initialisiert. Soll anschließend immer nur ein mal ausgeführt werden- Schieberegister zählt bei jedem mal 50 ab und wartet entsprechend lange. Jedoch übernimmt das Schieberegister jedes mal die 1000 neu. So dass der Timer immer mit 950 arbeitet."

1. Eine For-Schleife, die einmal ausgeführt wird ist sinnlos. Nimm lieber eine Sequenz die hat auch den gewünschten Effekt Wink
2. Du musst deine Initialisierung von der While-Schleife auch mit einem Schieberegister versehen, ansonsten liest er halt immer die 1000 bei jedem durchlauf der While-schleife aus!

Hier funktioniert alles, bis die Hauptschleife in´s Negative rutscht (zieht immer weiter 50 ab vom Timer). Mir ist der Fehler prinzipiell klar, jedoch finde ich keine Lösung um das Subtrahieren zu stoppen wenn das Schieberegister bei 0 angekommen ist.

Eine OR-Verknüpfung der Prüfung und des Buttons ist die Lösung. Die findest du auf der boolean-Palette


Hoffe das hilft dir weiter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.12.2009, 12:47
Beitrag #6

M Nussbaumer Offline
Zarathustra
****


Beiträge: 654
Registriert seit: Sep 2009

2009 SP1
2009
EN

6300
Schweiz
Signal beschleunigt ausgeben
Achja es ist noch wichtig einen Maximalwert und eine Beschleunigung pro Takt einzutragen!
Wobei Maximalwert>Beschleunigung pro Takt sein mussWink

Habe vergessen die Werte zu speichern, bevor ich das VI hochgelagen habe *schande über mich*Glas2
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Signal einlesen und Werte ausgeben JörgR 4 4.970 31.07.2017 14:57
Letzter Beitrag: Lucki
  Signal zeitverzögert ausgeben Tom2204 7 6.367 04.03.2014 17:08
Letzter Beitrag: jg
  Signal verzögert ausgeben tschibi 1 4.881 27.04.2012 09:18
Letzter Beitrag: jg
  Signal einzeln ausgeben XFire 7 6.094 14.11.2011 20:12
Letzter Beitrag: XFire
  Digitales Signal abhaengig von analogem Eingangssignal ausgeben Tobs 2 3.440 29.03.2011 22:51
Letzter Beitrag: Tobs

Gehe zu: