Hallo Alle zusammen,
ich habe mal ne Frage: Ich möchte folgendes machen... Ich möchte zwei Signale (Waveforms) mit zeitlichen versatz jeweils Signal1 auf AO0 und Signal2 auf AO1 ausgeben. Meine Idee ich erstelle zwei Tasks. Einmal Dev1/Ao0 und einmal Dev1/Ao1. und jede dieser Tasks kommt in eine Flache sequenz strucktur und in der ersten Sequenz warte ich dann die Zeit die ich möchte für jeden Kanal ab bis dann der Task gestartet wird. Aber irgendwie bekomme ich eine Fehlermeldung dass die angegebene Ressorce reserviert wurde, wenn ich das Programm starte. Kann es sein das man nicht zwei mal einen Task für jeden Kanal erzeugen kann????
Weiss jemand wie ich zwei Task für zwei Kanäle anlegen kann, damit ich für jeden kanal eine bestimmte wartezeit angeben kann bis der Task startet????Und zwar soll die Wartezeit für jeden Kanal Also Dev1/ao0 und Dev1/ao1 getrennt angebbar sein????
Bitte um hilfe...falls jemand um diese zeit überhaupt noch lust hat lv zu programieren...
hier ein ausschnitt aus meiner misslungenen lösung...
[
attachment=14791]
' schrieb:Kann es sein das man nicht zwei mal einen Task für jeden Kanal erzeugen kann????
Ja, in bestimmten Fällen ist das so. Und zwar dann, wenn die Kanäle auf der selben (!) Karte liegen.
Zitat:Bitte um hilfe...falls jemand um diese zeit überhaupt noch lust hat lv zu programieren...
Du bist ein Scherzkeks. Um diese Zeit arbeiten nur Freaks (guckst du etymologisches Wörterbuch), Workaholics, Studenten, die ihre Arbeit falsch eingeschätzt haben ...
Ich würde das wie folgt machen: Eine Task mit zwei Kanälen. Die Daten der Kanäle sind gegenseitig verschoben. Wenn ein Kanal später beginnen soll, bekommt er halt solange keine Daten - respektive 0.
' schrieb:Ich würde das wie folgt machen: Eine Task mit zwei Kanälen. Die Daten der Kanäle sind gegenseitig verschoben. Wenn ein Kanal später beginnen soll, bekommt er halt solange keine Daten - respektive 0.
Wie meinst du das? Kann ich den nicht Daten für einen bestimmten Kanal schicken?? Also in Matlab kann man zwei kanäle erstellen und jedem Kanal getrennt und wenn man will mit einer wartezeit etwas schicken. Geht das bei LV nicht???? muss man den Umweg über deinen Oben beschriebenen weg gehen????
ABER TROTZDEM VIELEN DANK FÜR DIE HILFE! Ich hoffe jemand hat ne andere Idee.....
Schau' mal
hier.
Da werden zwei Kanäle auf dieselbe Art eingelesen, wie Du sie ausgeben musst. Du musst statt AI-Input und DAQmx_Read einfach nur AO-Output und DAQmx_Write verwenden.
Gruß Markus
' schrieb: Wie meinst du das? Kann ich den nicht Daten für einen bestimmten Kanal schicken?? Also in Matlab kann man zwei kanäle erstellen und jedem Kanal getrennt und wenn man will mit einer wartezeit etwas schicken. Geht das bei LV nicht???? muss man den Umweg über deinen Oben beschriebenen weg gehen????
ABER TROTZDEM VIELEN DANK FÜR DIE HILFE! Ich hoffe jemand hat ne andere Idee.....
Das hat nichts mit LV oder Matlab zu tun, sondern damit, dass die meisten DAQ-Karten von NI nur einen AD- und einen DA-Wandler besitzen. Somit muss beim Einlesen/Ausgeben mehrerer Kanäle immer zwischen diesen hin- und hergeschaltet werden. Und somit gehören dann alle Kanäle in einen Task, sonst gibt es Ärger mit der SampleClock.
Gruß, Jens
Hallo und Danke erstmal für eure Hilfe,
@Y-P: so wie du das gemeint hast lief das bei mir nicht, habe dann bei NI angerufen und die haben mir gesagt die einzigste möglichkeit die ich habe ist die Daten wirklich gelichzeitig zu schicken. Anders geht es nicht. Wenn der eine AO später als der andere ausgegeben werden soll dann geht das nur dadurch das man einfach solange auf die andere Leitung eine NULL schickt...(wie auch von "IschSelbst" beschrieben).
Nicht wirklich elegant, aber wenn NI sagt es geht nicht anders dann geht das wohl wirklich nicht anders. Ich habe von NI ein Beispiel bekommen, ich lade es mit Hoch falls jemand vor dem gleich problem steht..
Version LV8.5
[
attachment=14812]
Da du ein VI in Version 8.5 hochlädst, würde ich mal sagen,
Schau Dir auch mal
diesen Link an, ich hatte mal das gleiche gefragt, es ging nicht und geht nicht. Das einzige was mit 2 AO-Tasks funktioniert ist, mit einer Task eine Waveforms auszugeben und mit einer zweiten (natürlich auf dem anderen AO-Kanal) Einzelwerte.
Ich schau mir aber mir morgen mal das Beispiel von NI an