LabVIEWForum.de - Gepulste Funktion

LabVIEWForum.de

Normale Version: Gepulste Funktion
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen,

bin nicht nur neu hier sondern auch recht unerfahren mit LabView.

Deshalb ist das Problem das ich habe hoffentlich auch recht einfach zu lösen, aber ich werd noch verrückt damit:
Ich muss (bis Mittwoch Abend Wink eine Funktion gepulst asugeben, per USB-6289.

Soll heißen: z.B. eine Sinus Vollwelle (ca. 10Hz) gefolgt von etwa 5ms Pause bzw. Ausgabe von 0V.
Ideal wäre es wenn ich die Funktion selber verändern kann (also wie mit Signalverarbeitung -> Signalverlauf erzeugen), die Frequenz der Funktion, die Anzahl der "Wellenzüge" (also z.B. wieviele Sinus Vollwellen ich setze bevor wieder eine Pause kommt) und die Dauer der Pause.

Hat für mich eigentlich nicht so schwierig geklungen, aber ich checks einfach nicht.

Vielen Dank schon mal für euer Nachdenken Wink
Moin,

Wo genau steckst du fest?
Ich würde halt die zu setzenden Werte in einem Array vorbereiten. Dieses Array wird zusammengesetzt aus zB. 1Sinuswelle mit 1000 Werte, dann 500 Werte mit 0, dann wieder 2000 Werte Sinus mit halber Amplitude usw. Das kannst du doch zusammenbauen wie du willst.
Das fertige Array wird dann per while/for-Schleife ausgelesen und an das Ausgabegerät geschickt (zB. AO)

Hilft das?
Gruß
Ah daran hatte ich noch garnicht gedacht.

Für den Anfang ist das echt evtl. nicht schlecht, aber in der Praxis brächte ich ein Programm in dem du einfach die Funktion als mathematische Gleichung eintippen kannst, bzw. später mal automatisiert verschiedene Funktionen einspeisen lassen kannst und deine 4 Parameter (Frequenz, Amplitude, Zahl der "Wellenzüge" und Zeit zwischen den Wellenzügen) setzen kannst, bzw. später wieder mal automatisiert verschiedene durchspielen kannst und eine Art fitting durchführen lassen kannst.

Aber wie siehts da mit der Zeit aus, ich hatte gelesen dass im Millisekunden Bereich die Schleifen sehr ungenau werden, denn z.B. 3ms sind schon sehr knapp oder?

Wenn die doch in dem Bereich gut arbeiten:
Funktioniert es nicht auch so, dass ich einfach in der Schleife den Wert für die Amplitude zwischen z.B. 1 und 0 alterniereund als Eingangsgröße für einen normalen "Signalverlauf aus Formel" nehme?
-> also z.B. bei 10Hz Sinus: 100ms "1" und dann 5ms "0" dann wieder 100ms "1" dann eine Sekunde lang 0 (hab vergessen, dass ich nach ner Doppelpulsfolge auch noch eine längere Pause brauche)?

Vielen Dank für deine schnelle Antwort,
Gruß Hell
Hallo Hell,

Ja, Software-Timing wird ungenau unter 10ms. Besser eine Echtzeitebene nehmen (FPGA, Realtime) oder die Hardware gleich ganz selbst machen lassen.
Ich habe im Example Finder ein gutes Beispiel gefunden: Es heißt "Cont Gen Voltage Wfm-Int Clk-On-Board Regeneration", such einfach in der Struktur unter "Hardware Input and Output" -> "DAQmx" -> "Analog Generation" -> "Voltage".

Genauso würde ich es machen. Mit der Erweiterung, dass das verwendete Waveform und das Schreiben desselben mehrfach ausgelöst werden kann. Vielleicht per Eventstruktur oder eben Polling.


Was sagst du dazu?
Gruß
das klingt nicht schlecht, werd ich mir für den Endversuch ansehen, wenn ich mehr Zeit hab.

Für übermorgen werd ich den ARBITRARY WAVEFORM FUNCTION GENERATOR (Siehe Bilder) verwenden
-> kann das sein dass der im Millisekunden Bereich genau eine Millisekunde länger braucht als das was ich angebe? Wenn ja wärs ja ganz ok?

Ach übrigens ich hab auch genau das gefunden was ich brauche, aber ich befürchte dass mir dafür sogar um nachbauen die Fähigkeiten fehlen. Der Artikel der es beschreibt heißt "ARBITRARY WAVEFORM GENERATOR based on Labview" von Yue-qin und Jin-ping in "2009 International Conference on E-Learning, E-Business, Enterprise Information Systems, and E-Government"
-> Wobei da auch das Problem mit der Ungenauigkeit im ms Bereich aufauschen könnte.

Grüße,
HEll
Referenz-URLs