Analoge Ausgänge - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: Analoge Ausgänge (/Thread-Analoge-Ausgaenge) Seiten: 1 2 |
Analoge Ausgänge - WolfiB - 11.10.2007 08:34 Hallo, hab 4 analoge Ausgänge an denen ich eine Spannung vorgeben möchte. Hab mal 3 davon in ein VI gehängt. Jetzt bringen mir aber immer 2 davon einen Fehler. Was fehlt mir hierbei? Oder muss ich die ganz anders verschalten? Danke Gruß Wolle (VI LV 8.5) Analoge Ausgänge - monoceros84 - 11.10.2007 12:35 Siehe http://www.LabVIEWforum.de/index.php?showtopic=7375&hl= Analoge Kanäle müssen bei gleichzeitiger Messung in EINEM Task sein. Du hast drei parallele Tasks laufen... Analoge Ausgänge - WolfiB - 12.10.2007 14:49 Kannst du mir auch sagen bzw. zeigen wie ich die in einen Task bekomme? Hab es nicht hinbekommen. Danke Analoge Ausgänge - monoceros84 - 12.10.2007 15:04 Siehe dazu meinen Post + Screenshot hier: http://www.LabVIEWforum.de/index.php?showt...amp;#entry37052 Analoge Ausgänge - Lucki - 12.10.2007 18:08 ' schrieb:Kannst du mir auch sagen bzw. zeigen wie ich die in einen Task bekomme? In Deinem Fall würde das so aussehen (Anm: Es gibt noch etliche Varianten, wie man es auch machen kann): [attachment=9145] Es ist aber auch so noch viel Nonsens in dem VI. Du gibst 100mal (Standard) mit Rate 1000 ein und denselben Wert aus. Für den Ausgang ist das aber dasselbe, als wenn ich nur einen einzigen Wert ausgegeben hätte und den eine Sekunde lang stehen lasse. (Daß er dann auf Null rückgesetzt wird, ist auch jetzt nicht sicher) Monoveros hat übrigens nur teilweise Recht: Wenn es sich nicht um Waveforms handelt (Damit meine ich alle mit eine Rate getakteten Datenfolgen), sondern nicht getaktete echte Einzelwertausgaben, dann sind durchaus mehrere Tasks möglich. Auch mehrere Tasks mit Waveforms sind unter gewissen Umständen möglich, sie dürfen dann nur nicht gleichzeitig laufen. Ich würde das VI auf echte Einzelwertausgabe ändern, so wie jetzt funktioniert es vielleicht, aber es steckt letztlich zu viel Nonsens drin. Analoge Ausgänge - WolfiB - 15.10.2007 07:24 Danke für eure Antworten. Find ich auch gut von dir Lucki, dass du mich auf Fehler hinweist. So ne Art Einzelauswertung hatte ich eigentlich vorgesehen. Durch die wiederholung (While-Schleife) bekomme ich dann aber solange diese läuft die aktuellen Werte ausgegeben, oder? Die "Rate" muss ich dann auf 1 setzen, richtig? Die Spannungen können, so ist es bis jetzt vorgesehen, ständig an den Ausgängen anstehen. Sie werden über zusätzliche Relais abgeschaltet, falls die Spannung freigeschaltet werden sollte. Hoffe ich habe dann ein VI mit weniger nonsens wenn ich die Änderungen mache. Analoge Ausgänge - monoceros84 - 15.10.2007 07:35 ' schrieb:Monoveros hat übrigens nur teilweise Recht: Wenn es sich nicht um Waveforms handelt (Damit meine ich alle mit eine Rate getakteten Datenfolgen), sondern nicht getaktete echte Einzelwertausgaben, dann sind durchaus mehrere Tasks möglich. Was meinst du mit mehreren Tasks? Hintereinander? Ich mein, logisch ist es möglich, einen Wert zu schreiben, dann Task schließen, neuen Task öffnen, Wert schreiben, Task schließen usw. Aber das ist ja langsam ohne Ende... Oder funktioniert das auch irgendwie, wenn beide Tasks gleichzeitig geöffnet sind, aber zu unterschiedlichen Zeiten schreiben? Wäre ja spitze, nur glaub ich das noch nicht so richtig. LV meckert ja schon rum, wenn man den zweiten Task erstellen will... Analoge Ausgänge - monoceros84 - 15.10.2007 07:41 ' schrieb:So ne Art Einzelauswertung hatte ich eigentlich vorgesehen. Durch die wiederholung (While-Schleife) bekomme ich dann aber solange Ein AO-Ausgang behält nach meiner Erfahrung immer den letzten geschriebenen Wert bei. Selbst, wenn du den Task wieder beendest. Das bedeutet, du brauchst keine Schleife, sondern nur den DAQmx Write dann ausführen, wenn ein neuer Wert anliegen soll. Ob das ebenfalls für DO gilt, kann ich nciht sagen. Ich denke aber schon. Hätte ja sonst wenig Sinn, wenn der nach einer Weile automatisch zurückgesetzt wird. Aus dem Verhalten ergibt sich aber ein ganz anderes Problem (besonders dann, wenn man wie in deinem Fall mit Hochspannung arbeitet): Dadurch, dass der Wert am Ausgang so lange anstehen bleibt, bis du wieder einen neuen Wert setzt, muss ein Programmabbruch oder -beenden NICHT bedeuten, dass dein Ausgang wieder auf Null ist. Mann muss also den AO spätestens beim Beenden des Programms wieder auf Nul setzen! In einem Hochspannungslabor ist zwar alels 100x gesichert, aber wohl wäre mir trotzdem nicht dabei, wenn trotz offener sichtbaren Trennstrecke mein PC versucht, mich klein, schwarz und hässlich zu machen Analoge Ausgänge - Lucki - 16.10.2007 10:11 ' schrieb:Was meinst du mit mehreren Tasks? Hintereinander? Ich mein, logisch ist es möglich, einen Wert zu schreiben, dann Task schließen, neuen Task öffnen, Wert schreiben, Task schließen usw. Aber das ist ja langsam ohne Ende...Also ich zeige das an einem funktionierendem Beispiel. Das Beispiel ist aus einem Programm herausgerissen und so wie es ist macht es keinen Sinn, es soll nur zeigen, daß es möglich ist, mehrere Tasks hintereinander abzuarbeiten. Die Sinn das Programms, aus dem es herausgelöst ist, ist folgender: Es geht darum, mehreres Kanäle abzutasten, und zwar beinhalten die Analogsignale die Reaktion eines externen Gerätes auf ein an dessen Signaleingang angelegtes Stimulus-Signal. Dieses Signal wird mit Analog-Output erzeugt, und ist z.B eine Sprungfunktionen. AI ist mit AO synchronisiert. (Was hier im Beispiele alles unter den Tisch gefallen ist) Die herkömmliche Methode ist, einen 8 kanaligen AI-Task zu verwenden, was aber zwei Nachteile hat: (i) sind die Kanäle wegen Multiplexing untereinander phasenverschoben, und (ii) verringert sich die maximal mögliche Sampling-Rate um den Faktor 8. Deshalb habe ich es anders gemacht: Ich erzeuge 8 gleiche AI-Tasks mit ja enem AI-Kanal, und arbeite die hintereinander ab.(Die Stimulus-Funktion ist bei jedem Task dieselbe). Dadurch verringert sich natürlich die Refreshrate pro Kanal, aber die oben genannten Nachteil fallen weg. Abgeschaut ist die Methode von den alten analogen Mehrkanal-Oszilloskopen (Mit Einstrahl-Bildröhre). Dort gab es auch immer die beiden Betriebsarten "gechoppert" und "alternierend". Die einzelnen Task müssen jeweils gestartet und gestoppt werden. Das das zu merklichen Zeitverlusten führt, kann ich nicht bestätigen, es ist vielmehr so, daß sich die Abtastung bei Taskwechseln nahezu kontinuierlich fortsetzt. Ganz großer Wermutstropfen an diese Sache: Man sollte meinen, das gleiche Prinzip funktioniert auch mit AO. Also: 2 Tasks erzeugen, Task 1 starten, warten bis beendet, dann stoppen. Dann Task 2 starten, warten bis beendet, dann stoppen. Funktioniert aber aus unerklärlichen Grünen nicht, es geht nur mit AI. (VI LV 8.2) Analoge Ausgänge - monoceros84 - 16.10.2007 10:51 Ok, hatte ich bisher noch nicht gewusst. Aber klar, wieso sollte es auch nicht funktionieren. Dass es nicht mehr Zeit benötigt, wundert mich etwas, aber umso besser Wieso geht das nicht mit AO...? Ich vermute, dass bei AO der DA-Wandler nicht mit dem Stoppen des Tasks freigegeben wird. Denn wie ich bereits erwähnt hatte, liegt der zuletzt eingestellte Wert auch danach noch am Ausgang an. Kann das damit zusammenhängen? |