LabVIEWForum.de
cRIO 9074 - FPGA, RT, Host Kommunikation - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: cRIO 9074 - FPGA, RT, Host Kommunikation (/Thread-cRIO-9074-FPGA-RT-Host-Kommunikation)



cRIO 9074 - FPGA, RT, Host Kommunikation - Troy.mc.Lure - 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?


RE: cRIO 9074 - FPGA, RT, Host Kommunikation - Troy.mc.Lure - 11.03.2013 18:14

Das erste Problem konnte ich mittlerweile lösen. Ich habe nicht gewusst das man die FIFO-Grösse in dem RT-VI gesondert einstellen kann.
Diese habe ich jetzt auf dem FPGA auf 2047 und innerhalb des RT-VIs auf 85.000 gestellt. Jetzt funktioniert es wie es soll.

Mein zweites Problem konnte ich noch nicht lösen. Sobald ich versuche die Netzwerkvariable innerhalb des RT-VIs zu schreiben (Boolesch 2 auf dem Bild), geht
die CPU-Auslastung auf 100% und die Durchlaufzeit ist nicht mehr gewollte 50ms, sondern eher 250.

Nochmal meine Frage: Gibt es einen effektiven/verlustfreien Weg die Daten vom RT-VI zum Windows Host zu übertragen?
Pro Schleifendurchlauf werden max. etwa 80.000 Werte aus dem FIFO gelesen.
Das RT-VI soll unabhängig vom Windows Host laufen können.
Von der Funktion wäre eine Netzwerkvariable schon optimal. Aber das scheint bisher nur bis etwa 10kS/s zu funktionieren.


RE: cRIO 9074 - FPGA, RT, Host Kommunikation - GerdW - 11.03.2013 18:24

Hallo Troy,

dir ist schon klar, dass du da 80k*8byte = 640kB alle 50ms übers Netzwerk schieben willst? Und das der kleine cRIO nur einen 266MHz Prozessor hat? (Oder waren es 400MHz, bin zu faul zum nachgucken...)

- Probier doch mal, nur die Daten eines Sensors zu übertragen. Wenn das funktioniert, nimmst du 2 Sensoren usw.
- Neben Netzwerkvariablen könntest du auch Netzwerkstreams ausprobieren...


RE: cRIO 9074 - FPGA, RT, Host Kommunikation - jg - 11.03.2013 19:05

Offtopic2
(11.03.2013 18:24 )GerdW schrieb:  Und das der kleine cRIO nur einen 266MHz Prozessor hat? (Oder waren es 400MHz, bin zu faul zum nachgucken...)
Zur Klarstellung, 9074 hat einen 400 MHz Prozessor. Ein 9073 hat nur 266 MHz.

Gruß, Jens