LabVIEWForum.de - Analog Output

LabVIEWForum.de

Normale Version: Analog Output
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe folgendes Problem und hoffe, daß mir jemand helfen kann:

An einer DAQ-Karte soll der Analog Output innerhalb von 10sek
von 0V auf 2V möglichst linear ansteigen.

Wie ist das zu realisieren?
Also ich bin selber noch blutiger Anfänger und habe mich bisher nur mit Digitalen Signalen beschäftigt.Aber da hier leider nicht viele Leute antworten versuche ich dir mit meinem beschränkten Wissen zu helfen.
Du könntest vieleicht eine Sequenzstructur nehmen und läst von Sequenz zu Sequenz den Analogausgang um 0,2 Volt steigen .Also in der ersten Seq 0,2 Volt ,dann 1sec Wartezeit und dann auf 0,4 Volt in der nächsten Seq. ,wieder 1sec Wartezeit usw. .dann hättest du nach 10 sec. 2 Volt.Das kann man bestimmt auch ganz elegant mit Variabeln lösen.Ansonsten scheint mir noch das Buch LabVIEW für Studenten ganz gut zu sein .Wie gesagt ,ich bin auch nur Anfänger und hoffe dir wenigstens etwas geholfen zu haben.Um den Analogausgang anzusprechen gibt es extra Vi´s .
hallo,
ja das wäre sicher eine möglichkeit die man in betracht ziehen könnte,
aber ich denke es muss doch einen "eleganteren" weg geben.

das problem ist nämlich, dass man immer ein ganzes array als data sendet
und es damit wahrscheinlich sehr schwer wird ein möglichst lineares
verhalten zu erzeugen.

aber vielen dank erstmalSmile

p.s.
ich denke aber ich bin nicht der erste mit diesem problem und es gibt
bestimmt schon subvi'sSmile
Zunächst mal eine Bitte an alle Teilnehmer des Forums:
Schaut erst mal in die Beispiele. Dort sind fast immer Lösungen zu finden.

In diesem Fall:
Gen Mult Volt Updates-Int Clk.vi
Desired Frequency: 0,025
Waveform: Triangle
Samples: 1000
Amplitude: 2
Cycles per Buffer: 0,25

Gruss

Manfred
hallo,
ich habe mein problem mit hilfe von while-loop und shift registern
gelöst.
das mit den sequenzen schien mir doch sehr aufwenig für mindestens
20 "stufen".
aber trotzdem danke an alleSmile

p.s.
das besagte file schau ich mir auch gleich noch an...
hallo malef,
ich habe mir das beispiel angeschaut.
leider nützt es mir nichts, da es sich um daqmx handelt, ich aber
in traditional daq programmieren muss. (daq-karte)
(das hatte ich leider nicht dazugeschrieben - sorry)

grüsse
Ich warne vor einem Timing per Software.
Das geht ist aber nie genau da von der Prozessorauslastung abhängig.

Ändere "Generate N Updates.vi" aus Traditional DAQ für deine Bedürfnisse.

"Generate N Updates writes a specified number of values to one or more analog output channels. This is timed signal generation, meaning that a hardware clock is used to control the update rate for fast and accurate timing."

Gruss

Manfred
Für eine möglichst lineare Ausgabe würde ich gebufferte Ausgabe nutzen, d.h. man beschreibt ein FIFO/Buffer auf der Hardware und lässt diese die Ausgabe selber timen.
In der While-Loop würde man nur die generierten Daten nachschieben, sofern man nicht alle direkt auf einmal übertragen kann (Abhängig von der Kanalzahl, der Ausgaberate, etc.)
Dadurch kann man sehr saubere, hochgenaue und lineare Ausgaben erreichen.

Ein Softwaretiming ist weder genau noch bekommt man "weiche" Linien, da es maximal bis 100Hz unter Windows auflösbar, realistische Auflösungen sind jedoch nur 10Hz.
Und eine Rampe mit 10Hz bei 10 Sekunden entsprächen 100 Werten, also 0,2V-Sprüngen. Bei der kartengetakteten Lösung kann man z.B. mit 1000 Hz ausgeben und erreicht dadurch bei 10s 10k Werte, bei einem 16-Bit-Wandler also dann eine mögliche Stufung von 2mV (12Bit-Wandler bei einem entsprechenden Ausgabebereich natürlich auch)
Referenz-URLs