Getimter Digitaler Output - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ) +---- Thema: Getimter Digitaler Output (/Thread-Getimter-Digitaler-Output) |
Getimter Digitaler Output - thomasth - 30.10.2015 19:43 Hallo zusammen, ich bräuchte mal wieder euere Hilfe. Ich habe einen USB-6343 DAQ, der (unterschiedliche) digitale Signale auf mehreren lines gleichzeitig erzeugen soll. Ein Beispiel für einen gewünschten Output habe ich angehängt, die Pulsdauern und-Zeiten sollen dabei möglichst genau eingehalten werden. Bleiben wir für den Anfang mal bei einem Beispiel mit nur einem Signal, wie kann ich das folgende ausgeben? (trigger)->100ms warten->Signal HIGH-> 5ms halten-> Signal LOW-> auf nächsten trigger warten. Ich bin zwar schon länger am lesen und probieren, aber den richtigen Durchblick habe ich noch nicht... Welche DAQmx-Funktionen muss man dafür benutzen? Ist das ganze echtzeitfähig? Ist es möglich, das ganze mit zB 8 lines zu implementieren? PS: Ein einfaches digitales Signal ausgeben klappt bereits. Mir geht es hier tatsächlich nur um die timing- und triggerfunktionen. Vielen Dank schon mal für euere Hilfe! Thomas RE: Getimter Digitaler Output - thomasth - 01.11.2015 01:02 Hat keiner eine Starthilfe für mich?... RE: Getimter Digitaler Output - IchSelbst - 01.11.2015 10:18 (01.11.2015 01:02 )thomasth schrieb: Hat keiner eine Starthilfe für mich?...Ein erster Ansatz ist immer folgender: Nimm den MAX (Measurement & Automation Explorer) und erstelle eine Task, die genau das macht, was du willst. Diese Task kannst du dann entweder in LV verwenden oder importieren. Verwenden würde heißen: Wenn jemand im MAX die Task löscht, funktioniert auch dein LV-Programm nicht mehr. Vorteil: Kaum Aufwand im LV-Programm. Importieren würde heißen: Das LV-Programm ist dann unabhängig von der im MAX erstellten Task. Außerdem kannst du genau nachvollziehen, was du gemacht hast. Außerdem gilt: Was du im MAX nicht einstellen kannst bzw. hingekommst, geht höchstwahrscheinlich auch nicht in LV. z.B. konnte ich mit einer simulieren USB-6343 keinen automatischen Trigger setzen. Umgekehrt gilt natürlich: Wenn's im MAX geht, muss es auch in LV gehen ... "Ausgang-Tasks" haben ein strukturellen Problem: nämlich die Länge des Ausgangspuffers, die aus gegebenen Gründen (Speicherplatz auf dem Ausgabegerät) beschränkt ist. (im Gegensatz zu Eingang-Tasks: dort werden die Daten einfach an die Applikation weitergegeben, sodass ein (theoretisch) unendlich langer Eingangspuffer entsteht). Wenn der interne Puffer (ob sich der im MAX befinden oder auf der Ausgabeeinheit ist von LV aus gesehen egal, siehe beim Erstellen der Task im MAX) für deine Anwendung groß genug ist, dann kannst du den verwenden. Ich habe (analoge, nicht statische) Ausgaben bisher immer im LV auf Anwenderebene gemacht: Zuerst die Ausgangsdaten berechnen (das können theoretisch dann auch Mengen bis zu einer Stunde sein). Dann werden die Daten in einer eigenen While-Schleife (= Programm-Task) im gewünschten Raster ausgegeben. Bisher (unter XP und Win7, 5 bis LV2014) hat das immer gut funktioniert. Ich würde mal sagen, auch deine Anwendung müsste mit einer eigenen Ausgabe funktionieren. RE: Getimter Digitaler Output - thomasth - 02.11.2015 03:36 Hey, Zitat:Ein erster Ansatz ist immer folgender: Nimm den MAX (Measurement & Automation Explorer) und erstelle eine Task, die genau das macht, was du willst. Wow, das erstellen und umwandeln in "Code" hat ja wirklich geklappt. Ich werde mir mal anschauen wie weit ich damit komme und gegebenenfalls nochmal nachfragen! Vielen Dank! |