INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

DMA FIFO auf RT System auslesen --> Hängt manchmal



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

06.06.2014, 07:30 (Dieser Beitrag wurde zuletzt bearbeitet: 06.06.2014 07:32 von B.Buerkert.)
Beitrag #1

B.Buerkert Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Dec 2013

2013 DeveloperSuite
2013
DE


Deutschland
Question DMA FIFO auf RT System auslesen --> Hängt manchmal
Hallo,
das ganze Real Time System bringt mich langsam an den Rand der Verzweiflung.

Ich lese Werte vom FPGA mittels eines DMA FIFOs und schreibe die gelesenen Werte in einen RT FIFO
der die Daten in weitere Verarbeitungsprozess übergibt.

Nun passiert es, warum auch immer das der DMA Puffer auf der Seite vom RT schlagartig vollläuft.
Das System läuft z.B. 5min, dabei sind die Elemente im Puffer immer in einem bestimmten Rahmen.
Nun "hängt" irgendwas kurz und der Puffer füllt sich bis zum Überlauf.
Ich habe den Puffer natürlich schon in seiner Größe verändert, nun passiert der Overflow nicht mehr ganz so häufig.
Aber das kann ja auch nicht die Lösung des Problems sein.

Das RT System sollte ja in der Lage sein deterministisch Daten aus dem DMA FIFO abzuholen und dem RT FIFO zu übergeben.
Wir sprechen hier von ca. 10000 Elementen alle 500ms.

   

Jemand ne Idee woran es liegen kann?


Die Anzeigeelemente sind nur zum "aktuellen" Puffestand anzeigen und werden im fertigen Programm entfernt Smile

Danke euch Smile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.06.2014, 09:53
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: DMA FIFO auf RT System auslesen --> Hängt manchmal
Da ich deine früheren Fragen schon kenne:
Von welchem RT-System und welchem FPGA reden wir jetzt? Beides auf dem cRIO?

Und hatten wir nicht schon darüber gesprochen, dass Speicher-Allozierung nichts in einer Timed-Loop verloren hat? Du arbeitest ja immer noch mit "Insert Into Array"...

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2014, 13:02
Beitrag #3

B.Buerkert Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Dec 2013

2013 DeveloperSuite
2013
DE


Deutschland
RE: DMA FIFO auf RT System auslesen --> Hängt manchmal
So frisch zurück vom Urlaub und weiter geht es.

System ist:
CRIO 9076: Nur FPGA wird verwendet.
RT Desktop PC: Abholen der Daten vom CRIO9076 und Berechnungen.
Windows Host PC: Abholen der decodierten Daten und Auswertung.

Ich habe das Problem heute eingrenzen können.
Habe das Programm soweit bereinigt das nur noch die Elemente aus dem DMA FIFO von einer Zeitgesteuerten Schleife auf dem RT Desktop PC ausgelesen werden.

Siehe VI im Anhang:

Nach einer gewissen Zeit läuft der DMA FIFO Über, da es der RT nicht mehr rechtzeitig schafft die Daten abzuholen.
Die Zeit variiert, mal 5min mal nach einer Stunde.

Die Ursache ist mir immer noch ein Rätsel. Da eigentlich nichts mehr im VI enthalten ist was das RT Verhalten/Stabilität beeinflussen sollte.


Angehängte Datei(en)
13.0 .vi  RT_DMA_Datenabholung_24062014.vi (Größe: 223,69 KB / Downloads: 344)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2014, 13:20
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 17.467
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
RE: DMA FIFO auf RT System auslesen --> Hängt manchmal
Hallo B.,

du hast deine "FIFO.Lesen" in einer TWL mit einem dt=500ms, gibst aber ein TimeOut von 1000ms vor.
Da muss die Schleife ja aus dem Tritt kommen! Big Grin

Wenn du in der Schleife mit TimeOuts arbeitest, brauchst du keine hochpräzise TWL…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2014, 14:26
Beitrag #5

B.Buerkert Offline
LVF-Grünschnabel
*


Beiträge: 32
Registriert seit: Dec 2013

2013 DeveloperSuite
2013
DE


Deutschland
RE: DMA FIFO auf RT System auslesen --> Hängt manchmal
OK,
dann was soll ich bei dem Timeout anschließen Angel_not.

Bzw. einfach ne While Schleife nehmen und das Timeout auf unendlich? Ansage
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
24.06.2014, 18:41
Beitrag #6

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
RE: DMA FIFO auf RT System auslesen --> Hängt manchmal
(24.06.2014 14:26 )B.Buerkert schrieb:  OK,
dann was soll ich bei dem Timeout anschließen Angel_not.

Bzw. einfach ne While Schleife nehmen und das Timeout auf unendlich? Ansage

nein, das macht man anders:

der FPGA bekommt einen Zähler wieviel Samples er in den FIFO geschrieben hat. Wird ein von dir festgelegter Grenzwert überschritten (der natürlich zur größe des FIFOs passen sollte) setzt der FPGA einen Interrupt und setzt den Zähler zurück. Das RT-VI wartet in einer Schleife auf den Interrupt. Wird dieser erkannt holt das RT-VI die entsprechende Menge Daten aus dem FIFO ab. Das ganze kann in einer ganz normalen while-Schleife laufen.

Den FIFO mit "0 Elemente lesen" zu pollen klappt zwar irgendwie ist aber auch "irgendwoe nicht so toll" Wink ... am besten schaust du dir mal die entsprechenden Beispiele im Example-Finder zum Thema Interrupt an, da gibt's auch glaub ich ein Beispiel, dass die oben beschriebende Methode demonstriert ...

Und wenn du's richtig gut machen willst und unnötige Speicher-anforderungen vermeiden willst, dann benutzt du Referenzen auf die Daten im FIFO beim "weiterreichen" an deine Funktion zum Verschicken der Daten über TCP/IP ...

viele Grüße
cb

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.06.2014, 21:33
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: DMA FIFO auf RT System auslesen --> Hängt manchmal
Irgendwie bin ich immer noch skeptisch, auch wenn es programm- und LabVIEW-technisch geht.

Nur der FPGA läuft auf dem cRIO, ohne ein RT-VI auf dem cRIO.
Dort ist ein FIFO definiert. Im Normal schiebt der FPGA ja per Bus seine Daten zum RT-Teil des cRIO. In so einem Fall läuft das sicher zuverlässig.

Bei dir ist aber zwischen Reinschreiben in FIFO und Auslesen im RT-Teil eines Desktop-PC eine Netzwerkverbindung (denn irgendwie müssen die Daten ja rübergehen). Wie das LabVIEW-intern gelöst ist, kA, aber ich kann mir nicht vorstellen, dass diese Datenübertragung noch "Echtzeitfähig" ist. In allen Tutorials heißt es immer: Netzwerk-Traffic ist nicht echtzeitfähig.

Ich hatte dir schon früher empfohlen, die Daten mglw. lieber im RT-Teil des cRIO abzuholen und dann z.B. per NetworkStream weiterzugeben.

Gruß, Jens

Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)

!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Question Timeout bei FIFO Speicher otto.kranz 15 39.137 19.09.2016 12:20
Letzter Beitrag: GerdW
  RT Schleife hängt sich auf jojo1306 5 21.601 25.11.2015 09:04
Letzter Beitrag: jojo1306
  RT FIFO Frage gfzk 1 15.028 02.07.2015 15:56
Letzter Beitrag: GerdW
  RT FIFO Verständnis Michiel 3 10.857 13.06.2014 14:02
Letzter Beitrag: jg
  Fragen zu DMA FIFO gfzk 5 12.342 24.10.2011 17:23
Letzter Beitrag: gfzk
  DMA FIFO + TDMS File IO NoD 1 9.000 30.10.2009 15:21
Letzter Beitrag: dlambert

Gehe zu: