LabVIEWForum.de
FIFO Datenverlust - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Module (/Forum-LabVIEW-Module)
+---- Forum: LabVIEW FPGA (/Forum-LabVIEW-FPGA)
+---- Thema: FIFO Datenverlust (/Thread-FIFO-Datenverlust)



FIFO Datenverlust - B.Buerkert - 07.01.2014 11:45

Hallo zusammen,
ich hab da ein Problem mit den FIFOs.

Und zwar schreibe ich auf FPGA Ebene nach auftreten eines bestimmten Ereignisses die nächsten 10 Werte in einen Host to Target FIFO.
Tritt dieses Event nicht auf, dann wird einfach auf das nächste Eintreten gewartet und nichts in den FIFO geschrieben.

Auf dem Host VI hole ich die Daten in ~10ms Takt ab, speichere sie in ein Array und verarbeite die ganzen Messwerte nach Beendigung der Messung.

Nun kommt das für mich seltsame. Vor ca. 2 Wochen hat das ganze noch problemlos funktioniert, heute wieder frisch zur Arbeit gekommen und
es funktioniert natürlich nicht mehr. Auf Host Ebene sind die Daten durcheinander bzw. es fehlen auch markante Messpunkte die regelmäßig auftreten.
Wenn ich mir die "aktuellen" Daten auf FPGA Ebene anzeigen lasse so, stimmen alle Werte. Rein optisch gibt es keine Ausreißer.

Ich nutze den FPGA auf dem CRIO9076, die Real Time Funktion wird nicht verwendet.

Das einzigste was sich für mich erkennbar am System geändert hat ist, dass der Testzeitraum des Real Time Moduls abgelaufen ist.
Das dürfte aber kein Problem sein da ich ja ausschließlich den FPGA auf dem CRIO benutze.


FPGA VI:
[attachment=47916]

Host VI
[attachment=47915]


RE: FIFO Datenverlust - GerdW - 07.01.2014 11:54

Hallo B.,

Zitat:Und zwar schreibe ich auf FPGA Ebene nach auftreten eines bestimmten Ereignisses die nächsten 10 Werte in einen Host to Target FIFO.
Wo?
Ich sehen einen FIFO, der Timestamp-Werte getriggert von einem DIO0 bekommt. Und einen (den selben?) FIFO, der wieder gelesen wird. Dessen Werte werden dann in einem Array gesammelt - und zwar hier dann wohl 10 Werte.

Im RT-Host-VI wird lesend auf einen FIFO zugegriffen, wahrscheinlich den selben (?) wie im FPGA-VI. Ich sehe aber keinen Zugriff auf das Array mit den 10 Werten...

(Wenn das zugehörige Projekt fehlt, verliert man auch die FIFO-Zuordnungen etc. Es ist also schwerer, dein VI zu verstehen...)


RE: FIFO Datenverlust - B.Buerkert - 07.01.2014 12:10

Hy,
das Projekt ist nun im Anhang.

Nochmal kurz zur Software, es wird nur das FPGA Modul genutzt. RT Modul wird nicht genutzt!

Das Ereigniss ist ein Timestamp Wert der innerhalb einer Vorgabe sein muss.
Jeder Timestamp wird in ein Target Scoped FIFO geschrieben, da jeder Wert ausnahmelos erfasst werden muss.
In der zweiten Schleife werden dann die geschriebenen Timestamps überprüft.
Wird der Timestamp erkannt so wird der erkannte Timestamp sowie die 9 darauf folgende Werte (also ingesamt 10) in den Target to Host FIFO geschrieben.

[attachment=47917]


RE: FIFO Datenverlust - GerdW - 07.01.2014 13:01

Hallo B.,

ein FPGA-Host war für mich bisher immer das zugehörige cRIO-RT. Wenn es bei dir auch ohne (direkte) Zuhilfenahme des RT-Teils funktioniert, dann habe ich wieder etwas neues gelernt...

Allerdings glaube (glauben, nicht wissen!) ich, dass der RT-Teil trotzdem beteiligt ist: irgendjemand muss ja den Netzwerk-Zugriff handhaben - und das ist definitiv nicht der FPGA. Also kann die abgelaufene Test-Lizenz durchaus ihren Teil zum Problem beitragen.

Was sagt der NI-Support dazu?


RE: FIFO Datenverlust - B.Buerkert - 07.01.2014 13:48

Warte noch auf Rückmeldung.

Ich halte euch auf dem Laufenden...


RE: FIFO Datenverlust - B.Buerkert - 08.01.2014 10:11

So nun ein Update:
Also es ist möglich den CRIO FPGA ohne das RT Modul zu nutzen.
Ich habe es nun auch schon getestet und kann die Aussage von NI bestätigen.

Das Problem mit dem Datenverlust hat sich auch erledigt. Die FIFOs waren an einer Stelle im Programm falsch zugeordnet, deshalb wurden an verschiedenen
Stellen Daten in den FIFO geschrieben.

Vielen Dank! Smile