Synchronisation (Triggern) von Countern und AI/O bzw. DI/O
Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Synchronisation (Triggern) von Countern und AI/O bzw. DI/O
Liebe LabView-Gemeinde,
ich habe hier im Forum schon gesucht, aber nichts passendes zu folgendem Problem gefunden:
Es soll ein analoges Ausgangssignal geschrieben werden und parallel ein Zähler (Counter) Ereignisse zählen (beides gepuffert). Diese beiden Tasks sollen synchronisiert werden, also gleichzeitig durch einen Trigger ausgelöst starten. Genau dies bekomme ich aber nicht hin. Im Einsatz ist eine NI USB-6212-Karte, der Counter sendet die kommulierten Ereignisse mit einer Rate von 100kHz, der Schreibtask kann ebenfalls mit 100kHz oder auch langsamer betrieben werden.
Da ich beim Schriebtask keine Probleme habe, sondern eigentlich nur beim zeitgesteuerten Starten des Counters, gehe ich hier auch nur darauf näher ein.
Normale AI/O oder auch DI/O-Tasks lassen sich ja einfach mit dem "DAQmx - Start Trigger" getriggert starten, was bei mir auch prima funktioniert.
Allerdings kann ich keinen Counter getriggert starten, da bekomme ich immer eine Fehlermeldungen. Zur Illustration habe ich das VI "Counter-Modus" angehängt (als LabView Version 8.5 gespeichert). Damit habe ich versucht, den Zähler getriggert zu starten. Man erhält jedoch die Fehlermeldung:
"Die angegebene Eigenschaft wird vom Gerät nicht unterstützt oder steht für den Task nicht zur Verfügung.
Eigenschaft: Start.Trigger-Typ"
Heißt das, dass man Counter überhaupt nicht triggern kann, oder mache ich etwas falsch?
Welche andere Möglichkeit gibt es denn, den Counter getriggert zu starten oder irgendwie anders mit dem Schreibtask (oder einem anderen AI/O bzw. DI/O-Task) zu synchronisieren?
RE: Synchronisation (Triggern) von Countern und AI/O bzw. DI/O
Habe jetzt nicht Zeit ausführlich zu antworten, hier nur ein Hinweis:
Zum Thema Synchronisation von DAQ-Tasks gibt es ca 20 Beispiele in:
--> Signalerfassung und -ausgabe mittels Hardware
--> DAQmx --> Synchronisation
Es ist anzunehmen, daß Dein Problem in einem Beispiel (oder einem ähnlichen) behandelt ist.
Ich selbst habe mehrere Tage diese Beispiele variiert und damit experimentiert, bis ich das Thema einigermaßen beherrschte. Auf jeden Fall würde ich raten, nicht ganz von vorn auf eigenes Risiko zu beginnen, sondern ein ähnliches Beispiele aus der Sammlung zu nehmen und das für den eigenen Zeck zu modifizieren.
Also: Suche mal und experimentiere, und wenn Du Fragen hast, melde Dich wieder.
RE: Synchronisation (Triggern) von Countern und AI/O bzw. DI/O
Hallo Lucki,
vielen Dank für deine Anmerkung. Die Beispiele bin ich tatsächlich auch schon alle durchgegangen. Dort steht auch einiges zum Triggern und zur Synchronisation, allerdings nie für Counter und die Mechanismen funktionieren für Counter so nicht, wie man an meinem Beispiel oben sehen kann. Deswegen konnte ich dort nirgendwo etwas passendes finden. Vorher lief meine Anwendungen nur mit analogen inputs und outputs, da war es kein Problem, die lassen sich gut getriggert starten. Aber beim Counter bekomme ich es wie gesagt leider nicht hin.
Hat jemand noch eine andere Idee?
Mir erscheint ein Counter, der sich nicht synchronisieren lässt und der im Edge Counting Mode auch keine Zeitinformationen mitsendent ehrlich gesagt ziemlich wertlos (man weiß ja nie, wie lange er lief).
RE: Synchronisation (Triggern) von Countern und AI/O bzw. DI/O
Ich habe nun eine Lösung gefunden. Momentan bin ich nicht mehr im Labor und kann nicht auf meine Daten zugreifen, aber im Laufe der nächsten Woche werde ich sie hier für alle bereitstellen, falls noch mehr Leute das gleiche Problem haben sollten.
RE: Synchronisation (Triggern) von Countern und AI/O bzw. DI/O
Im Anhang die Lösung. Man muss einfach nur eine andere Funktion verwenden, um den Start-Trigger (bzw. Bereitschafts-Trigger) zu setzen.
Wenn man mehrere Schreib- und Lesetasks damit synchron starten will, kann man den Bereitschaftstrigger für den Counter nehmen und diesen mit den anderen Starttriggern über das "Get Terminal Name with Device Prefix" verbinden. Letzteres findet sich in den bei LabView mitgelieferten Beispielen zur Synchronisierung verschiedener Tasks von DAQmx.
Vielleicht hilft das ja noch jemandem!