11.03.2013, 16:35
Hallo,
ich versuche derzeit 8 analoge Kanäle mit einem cRIO und zwei 9215 Modulen einzulesen, zu bearbeiten und auf einem Windows Host anzuzeigen und zu loggen.
Dabei ergeben sich mehrere Probleme, vielleicht kann mir hier einer helfen da ich gerade nicht weiterkomme.
Auf dem FPGA wird von allen Kanälen der RMS Wert und von 1-2 Kanälen noch eine FFT berechnet.
Diese Daten möchte ich jetzt zu meinem RT-VI übergeben.
Ich verwende dafür einen DMA-FIFO der in einer for-Schleife die 8 Kanäle nacheinander in den FIFO schreibt.
Auf dem Bild sind es noch 16, aber die 8 RAW-Werte würden reichen.
Bei 100kS/s und einer RT-VI Schleifendurchlaufzeit von etwa 50ms ergibt sich eine FIFO-Größe von min 40.000 Werten.
Ist das realistisch? Gibt es eine andere Möglichkeit?
Und wie kann ich diese Werte zu meinem Windows-Host übertragen? Im Moment verwende ich eine Netzwerkvariable mit FIFO.
Aber erstens scheint mein RT-VI durch das schreiben der Variable erheblich ausgebremst zu werden und zweitens scheinen mir Werte verloren zu gehen.
Sind hier TCP/IP oder Netzwerkstreams zu bevorzugen? Was ist schnell genug für mindestens 8*100kS/s?
ich versuche derzeit 8 analoge Kanäle mit einem cRIO und zwei 9215 Modulen einzulesen, zu bearbeiten und auf einem Windows Host anzuzeigen und zu loggen.
Dabei ergeben sich mehrere Probleme, vielleicht kann mir hier einer helfen da ich gerade nicht weiterkomme.
Auf dem FPGA wird von allen Kanälen der RMS Wert und von 1-2 Kanälen noch eine FFT berechnet.
Diese Daten möchte ich jetzt zu meinem RT-VI übergeben.
Ich verwende dafür einen DMA-FIFO der in einer for-Schleife die 8 Kanäle nacheinander in den FIFO schreibt.
Auf dem Bild sind es noch 16, aber die 8 RAW-Werte würden reichen.
Bei 100kS/s und einer RT-VI Schleifendurchlaufzeit von etwa 50ms ergibt sich eine FIFO-Größe von min 40.000 Werten.
Ist das realistisch? Gibt es eine andere Möglichkeit?
Und wie kann ich diese Werte zu meinem Windows-Host übertragen? Im Moment verwende ich eine Netzwerkvariable mit FIFO.
Aber erstens scheint mein RT-VI durch das schreiben der Variable erheblich ausgebremst zu werden und zweitens scheinen mir Werte verloren zu gehen.
Sind hier TCP/IP oder Netzwerkstreams zu bevorzugen? Was ist schnell genug für mindestens 8*100kS/s?