LabVIEWForum.de
Detektion Hall Impuls / Interrupt - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Detektion Hall Impuls / Interrupt (/Thread-Detektion-Hall-Impuls-Interrupt)



Detektion Hall Impuls / Interrupt - HardiFlanders - 08.03.2015 13:36

Moin Leute,

Im Rahmen meiner Abschlussarbeit habe ich mit folgender Problematik zu tun. Ich habe eine Pumpe an deren Achse sich ein Hallgeber befindet. Die Pumpe dreht sich mit einer Drehzahl von 2000 U/min. Das bedeutet alle 30 ms erhalte ich einen neuen Impuls vom Hall Geber. Diesen muss ich möglichst schnell erfassen um danach eine Reihe von Messungen und Ventil-Ansteuerungen vor zu nehmen. Normalerweise hätte ich das über einen Hardware Interrupt realisiert, jedoch unterstütz LabView RT sowas wohl nicht. Die Messwerterfassung und die die Messwerte Ausgabe zu triggern geht in diesem Anwendungsfall nicht (eine Erklärung warum würde den Rahmen sprengen). Da ich ein Neuling bin hätte ich folgende Frage: Gibt es eine Möglichkeit den Impuls sehr schnell zu erfassen und danach dann eine Sequenz zu starten, welche durchläuft und nach dem Durchlauf erneut vom Impuls ausgelöst wird.

Folgende Systemkomponenten habe ich zur Auswahl:

NI PXI-8840 Core i5-4400E 2.7GHz, Dual Core, RT Embedded SW
ADC mit 100 kS/s
NI PXI-6602Counter/Timer mit 8 Digital-I/O-Kanäle (Maximale Referenzfrequenz von 80 MHz)
LabView RT + Professional

Wichtig wäre für mich, dass der Impuls vor allem möglichst schnell erfasst wird (Am besten innerhalb der ersten 20µs bis 100 µs, falls das denn ohne Interrupt überhaupt möglich ist). Ich könnte natürlich analog den Wert aufnehmen und jeden einzelnen Wert mit einem Referenzwert vergleichen und falls dieser größer ist ein Event starten … was denke ich mal sehr zeitfressend ist.
Jedoch würde ich gerne direkt über die Hardware (wenn möglich) das Event starten, ohne erst zeitfressende Datenanalyse betreiben zu müssen.
Schönen Sonntag euch!

Ps: Ich erwarte natürlich keine Lösungen nur vlt. ein paar hilfreiche Tipps.

Gruß 2hands


RE: Detektion Hall Impuls / Interrupt - Holy - 08.03.2015 17:16

Falls du wirklich innerhalb von 20 bis 100 µs auf den Impuls reagieren musst, wäre hier eine FPGA-Karte eine gute Wahl. Deine Counter/Timer-Karte kann deinen Impuls sehr gut extrem schnell auswerten. Leider musst du diese Information noch in dein Programm bringen. Mit der Forderung nach einer Reaktionszeit von 20 bis 100 µs macht das Abfrageraten zum aktuellen Zählerstand des Counters von 10 bzw. 50 kHz. Damit gehst du aber in einen Grenzbereich in dem dies nicht mehr zwingend zuverlässig unter Einhaltung des vorgegebenen Zeitregimes funktionieren muss.

Aussehen könnte es aber prinzipiell folgendermaßen:

1. gepufferte analoge Erfassung mit 100 kHz
2. Verwendung der AI sample clock für eine gepufferten Countererfassung mit 100 kHz
3. Auslesen von 2 Samples (20µs Daten) und Prüfung auf Auftreten deines Impulses
4. Bei Auftreten des Impulses dann deinen spezifischen Code ausführen
5. Auslesen der nächsten 2 Samples...

Aufgrund der daraus resultierenden Schleifenrate von 50 kHz musst der Inhalt minimal und möglichst optimal sein.


RE: Detektion Hall Impuls / Interrupt - HardiFlanders - 08.03.2015 19:47

Abend,

danke erst einmal für die Idee Angel_not .

Wie meinst du das mit der analogen Eingangsspannung, das Counter/Timer Modul wertet doch eigtl. digitale Werte aus? Ich mein, ich könnte entweder die Spannung mit 100 kHz abtasten und dann mit einem Wert vergleichen, oder sowas wie Flankenzählung mit dem Counter machen und die Counts zählen.

Noch eine ergänzende Frage, die nicht wirklich mit obiger zu tun hat: Die Geschwindigkeit der Read-Function hängt doch auch davon ab, ob evtl. nebenbei noch andere Threads ablaufen oder (sprich je niedriger die CPU Auslastung, desto schneller kann ich au Werte einlesen) ?

Gruß


RE: Detektion Hall Impuls / Interrupt - Holy - 08.03.2015 20:33

Für die Erfassung der Impulse kannst die Counter nehmen, wie ich auch schrieb. Meine anderen Hinweise beziehen sich auf die Annahme, dass der genannte ADC eine NI-Karte für analoge Erfassung ist und "Messungen durchführen" für Messungen damit steht.