Labview Daten aufnehmen, speichern und verarbeiten

Gast #5574933
Hallo

Ich habe eine Frage, die sicherlich schon x mal perfekt beantwortet 
wurde, aber die LV Foren sind irgendwie so unübersichtlich, dass ich die 
Antwort nicht finde.

Ich habe eine National Instruments Karte, die Daten mit einigen kS/s 
aufnimmt. Die sollen kontinuierlich in eine Datei gestreamt werden. 
Gleichzeitg will ich aber eine fft machen und bei Überschreitung einer 
Schwelle einen digitalen pin toggeln. Es müssen nicht immer alle Samples 
prozessiert werden, es reicht die fft zweimal pro Sekunde über die 
letzten 2 Sekunden zu machen. ms kritisch ist das ganze auch nicht. 100 
ms delays sind völlig ok.

Wie gehe ich das Problem am besten an?
Das ist schwierig. Du hast Echtzeit Anforderungen (Echtzeit bedeutet 
nicht schnell, sondern garantierte maximale Latenzzeiten).
Ganz normal unter windows kann es sein, das Windows.der Meinung ist 
jetzt mal 1s fuer sich selbst zu brauchen, wenn z.B. Software gestartet 
wird.

Es gibt LabView Realtime Umgebung, braucht eine extra Lizenz. Oder Du 
machst das auf fpga (compactrio) oder so, braucht glaube ich auch eine 
Lizenz.

Oder Du laesst die Anforderung fallen und klickst Dir das Programm 
zusammen.
Gast
Ist nicht Echtzeit. Wenn es mal ne Sekunde dauert ist das kein Problem. 
So schnell wird der Reaktor nicht kritisch. Meine Frage ist nur mit 
welchen Strukturen ich das generell angehen soll. Bisher haben wir immer 
2 Sekunden gemessen, ausgewertet, getriggert, weggeschrieben und neu 
gemessen. Der neue Ansatz soll nur die Totzeit eliminieren und parallele 
Messung, Speichrung und Auswertung erlauben.
Gast
Ich habe es jetzt so hinbekommen, dass ich einen task kreire, und dann 
immer n samples aus dem Puffer lese, speichere und auswerte. Das wäre 
das Minimum aktuell. Gut wäre aber, wenn man samples mehrmals nutzen 
könnte, sozusagen um überlappende ffts machen zu können.
Kurt schrieb:
> Queue geht doch eigentlich nicht, dafür muss ich die Elemente doch
> entnehmen, oder?

Naja,
Zum Zwischenspeichern musst du ja keine Queue nehmen. Stattdessen eben 
besagtes Schieberegister auf Basis eines Arrays.
Die Queue soll nur zur Kommunikation zwischen den Schleifen sein.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 8 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.