LabVIEWForum.de
Signalerfassung unter 0,1ms. - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Signalerfassung unter 0,1ms. (/Thread-Signalerfassung-unter-0-1ms)



Signalerfassung unter 0,1ms. - HuFe95 - 24.01.2017 19:37

Hallo,

Frage 1:
an einem Prüfstand muss ich ein Signal von einem Hallsensor kommend laufend überprüfen. Übersteig dieses einen bestimmten Wert, so soll an einem Ausgang verzögert ein kurzer Sprung ausgegeben werden.
Zuerst habe ich das Programm aufgebaut und mir das Eingangssignal simuliert. Das Programm ist ausreichend schnell gelaufen. Danach habe ich mittels DAQ(Analog) mein Signal einglesen. Dadurch wird mein Prgramm jedoch nur mehr ca. alle 3ms durchgerechnet.

Ohne irgendetwas anzuhängen habe ich zum Testen einen Digitalen Eingangan in ein leeres VI gelegt und lies mir die Anzahl der Programmdurchläufe anzeigen. Dabei wurde das leere Prgramm alle ca, 0,8ms durchlaufen.

Meine Frage ist jetzt, ob es überhaupt möglich ist mit einem DAQ-Assistenen ein Programm alle 0,05ms durchzulaufen. Wenn ja -> wie könnte ich dies realisieren?

Frage 2:

Ein Programm funktionierte einwandfrei wenn ich einen DAQ verwende. Wenn ich jedoch einen zweiten hinzufüge, jedoch nicht mehr. Meine Vermutung: Labview rechnet immer nur in einem DAQ bis der Buffer voll ist und wechselt danach in den zeiten DAQ und kann nicht in zwei gleichzeitig Messwerte aufnehmen?

Lg Hubert


RE: Siganlerfassung unter 0,1ms. - jg - 24.01.2017 20:04

(24.01.2017 19:37 )HuFe95 schrieb:  Frage 1:
an einem Prüfstand muss ich ein Signal von einem Hallsensor kommend laufend überprüfen. Übersteig dieses einen bestimmten Wert, so soll an einem Ausgang verzögert ein kurzer Sprung ausgegeben werden.
Zuerst habe ich das Programm aufgebaut und mir das Eingangssignal simuliert. Das Programm ist ausreichend schnell gelaufen. Danach habe ich mittels DAQ(Analog) mein Signal einglesen. Dadurch wird mein Prgramm jedoch nur mehr ca. alle 3ms durchgerechnet.

Ohne irgendetwas anzuhängen habe ich zum Testen einen Digitalen Eingangan in ein leeres VI gelegt und lies mir die Anzahl der Programmdurchläufe anzeigen. Dabei wurde das leere Prgramm alle ca, 0,8ms durchlaufen.

Meine Frage ist jetzt, ob es überhaupt möglich ist mit einem DAQ-Assistenen ein Programm alle 0,05ms durchzulaufen. Wenn ja -> wie könnte ich dies realisieren?

Das hatten wir doch schon in deinem ersten Thread: 50 µs kannst du unter Windows knicken. Das schreit nach einer Lösung per FPGA.

(24.01.2017 19:37 )HuFe95 schrieb:  
Frage 2:

Ein Programm funktionierte einwandfrei wenn ich einen DAQ verwende. Wenn ich jedoch einen zweiten hinzufüge, jedoch nicht mehr. Meine Vermutung: Labview rechnet immer nur in einem DAQ bis der Buffer voll ist und wechselt danach in den zeiten DAQ und kann nicht in zwei gleichzeitig Messwerte aufnehmen?

Mal schauen, ob die Glaskugel mir verrät, was du wirklich sagen willst. Glas1 Du hast zwei DAQ-Assi angelegt, jeder liest einen Analog-Eingang ein (natürlich verschiedene AI), aber auf derselben DAQ-Hardware?! Korrekt?! Das geht bei fast keiner NI-Hardware wirklich schnell. Lösung: den DAQ-Assi so definieren, dass er 2 AI erfasst.

Noch besser natürlich: Verzichte ganz auf DAQ-Assi und eigne dir das Wissen an, das selber mit den DAQmx Funktionen zu programmieren.
Einstieg hierzu: Rechtsklick auf DAQ-Assi -> In DAQmx Code umwandeln.
Weiterführend: https://www.labviewforum.de/Thread-Getting-Started-with-NI-DAQmx und die Bsp im NI Example Finder.

Gruß, Jens


RE: Signalerfassung unter 0,1ms. - HuFe95 - 24.01.2017 20:53

Okay, danke Jens!

Kenn ich nocht gar nicht mit FPGA aus. Aber damit ist es nicht möglich "normal" in LabView zu bauen, im FrontPanel zu Steuern und verschiedenes angezeigt bekommen oder...?

Weißt du eventuell auch warum Labview eine "hohe" Abtastrate schafft, wenn man sich das Eingangsignal sofort in einem GaphIndicator anzeigen lässt, aber nich gleichzeitig nebenbei schnell Berechnungen durchführen kann?


RE: Signalerfassung unter 0,1ms. - jg - 25.01.2017 14:58

(24.01.2017 20:53 )HuFe95 schrieb:  Kenn ich nocht gar nicht mit FPGA aus. Aber damit ist es nicht möglich "normal" in LabView zu bauen, im FrontPanel zu Steuern und verschiedenes angezeigt bekommen oder...?
Jein. Du kannst mit dem FPGA-Modul mehr oder weniger normal LabVIEW programmieren. Eine FPGA-Karte oder der FPGA-Teil eines cRIO hat natürlich nicht direkt eine Visualisierung. Ein HMI muss man extra erstellen, und dann mit dem cRIO oder der FPGA-Karte kommunizieren.
(24.01.2017 20:53 )HuFe95 schrieb:  Weißt du eventuell auch warum Labview eine "hohe" Abtastrate schafft, wenn man sich das Eingangsignal sofort in einem GaphIndicator anzeigen lässt, aber nich gleichzeitig nebenbei schnell Berechnungen durchführen kann?
Da ich weder dein VI noch Hardware noch etc. pp. kenne, kann es dafür keine konkrete Antwort geben. Und was meinst du mit "gleichzeitig schnell Berechnung durchführen"? Ganz allgemein: Es ist nicht gut für die Performance, Daten hochfrequent zu visualisieren. Erstens kann dein TFT-Monitor sowieso max. 60 Hz, und Graphen sind zwecks Autoskalierung u.ä. nochmal langsamer.

Gruß, Jens


RE: Signalerfassung unter 0,1ms. - BNT - 30.01.2017 08:53

Mit NI DAQmx-kompatibler Hardware ist fast immer auch eine ganz direkte Lösung möglich, an der die CPU nicht beteiligt ist.

Mit den DAQmx-VIs kannst Du eine analoge Triggerschwelle für die Akquisition definieren. Das Trigger-Ereignis kannst Du all Trigger für die analoge Ausgabe verwenden. Das Trigger-Signal kannst Du direct auf der Karte, ohne externe Verkabelung routen.

Such mal nach DAQmx-Beispielen mit analoger Triggerung.

Gruß Holger