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 

Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben



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!

16.07.2013, 15:53
Beitrag #11

MIngendorf Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2013

2012
2013
DE_EN



RE: Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben
So jetzt habe ich die Vorschläge von eb eingearbeitet.

Wenn ich das Teste habe ich nach recht kurzer Zeit das Problem, dass das die Daten der NI9203 recht lange 3 Sekunden brauchen bis sie da sind.

Habe keine Ahnung woran das liegt.


Angehängte Datei(en)
10.0 .vi  MyHostCode.vi (Größe: 442,35 KB / Downloads: 221)

10.0 .vi  MyFPGACode.vi (Größe: 318,93 KB / Downloads: 217)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.07.2013, 16:15 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2013 16:17 von eb.)
Beitrag #12

eb Offline
LVF-Lernwilliger
***


Beiträge: 292
Registriert seit: Mar 2008

2014
2008
EN

12xxx
Deutschland
RE: Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben
Hallo nochmal,

FPGA: Du hast nun auf beiden FIFOs FXP als Datentyp. OK. Evtll ist es noch sinnvoll sich den genauen Datentyp des FXP anzuschauen, damit keine Genauigkeit verloren geht: Wenn du zum Bsp. für die FIFO einen FXP +-10,5 eingestellt hast, dann geht dir eine Menge beim Transfer flöten weil die Daten auf FPGA-Seite beim BuildArray FXP +-20,5 sind. Achte also darauf das die Datentypen der FIFO zu den FPGA-Werten passt. (das kann man aus deinen VIs nicht genau sehen, weil die Definition der FIFO im ProjektExplorer liegt)

Host: Du hast noch immer ziemlich wenig Elemente als Puffergröße definiert. (Genau 11*400*3=13200 Elemente) Das reicht noch lange nicht für 1s zwischenpuffern, sollte aber schon funktionieren.
Der Hauptfehler liegt beim Auslesen (schnelle Schleife): Du musst (wie in meinem vorherigen Post beschrieben) 1/10 der Elemente lesen, die pro Sekunde erzeugt werden. Du erzeugst 20kHz pro Kanal. Das macht bei 11 Kanälen 220000 Werte pro Sekunde! Du musst also 22000 Werte pro SDL auslesen, wenn dein Timing 100ms beträgt. Da du nur 11*400*3Werte (13200) ausließt, läuft dir wahrscheinlich auch hier der Puffer voll.

Gutes Gelingen weiterhin.
Gruß
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2013, 17:11
Beitrag #13

MIngendorf Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2013

2012
2013
DE_EN



RE: Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben
Der schnelle Buffer war nicht das Problem. Habe aus der 3 eine 5 gemacht und ist jetzt auch die Sekunde.
Der langsame Buffer war das Problem. Habe jetzt in der langsamen Schleife einen Buffer von 0. Klingt zu klein ist aber das einzige was fehlerfrei läuft.

Im Anhang sind jetzt die FIFO-Einstellungen, die sind bei beiden identisch.

Wenn das jetzt endlich alles läuft fange ich an zurückzurechnen und die Daten in einem csv zu speichern.


Angehängte Datei(en) Thumbnail(s)
           
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2013, 20:04
Beitrag #14

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben
Folgende Punkte sind hier problematisch:
  • Die Größe des Puffers entspricht der Abfragegröße, das führt unweigerlich zu Pufferüberlauf
  • NI9203: du generierst 19 Elemente je Sekunde und willst dann 57 Elemente je Sekunde lesen. Resultat ist, dass du aller 3 Sekunden 57 Elemente bekommst.
  • NI9215: du generierst 220000 Elemente je Sekunde und willst dann 132000 Elemente je Sekunde lesen. Resultat ist, dass du zwar immer die maximale Anzahl an Daten siehst aber sehr viel einfach verlierst.

Du solltest die RT-seitige Puffergröße der DMAs einfach ordentlich groß machen. Z.B. 1 Million für das 9215 und beim 9203 einfach paar Tausend. Rechne nochmal genau durch was du überall auslesen willst und an Puffern einstellst. Das passt aktuell alles nicht wirklich zusammen.
Die Clock an der Timed Loop gibt im Prinzip die zugrundeliegende Taktquelle an und damit die mögliche erreichbare Taktrate und Grundeinheit der rückgegebenen Taktzähler. Der "dt"-Eingang gibt dir dein Ausführungsintervall der Schleife an. Aktuell läuft deine obere Schleife mit 100 ms und deine untere mit 1000 ms.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2013, 12:32
Beitrag #15

MIngendorf Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2013

2012
2013
DE_EN



RE: Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben
(16.07.2013 20:04 )Holy schrieb:  [*]Die Größe des Puffers entspricht der Abfragegröße, das führt unweigerlich zu Pufferüberlauf
Die Aussage versteh ich nicht.

(16.07.2013 20:04 )Holy schrieb:  [*]NI9203: du generierst 19 Elemente je Sekunde und willst dann 57 Elemente je Sekunde lesen. Resultat ist, dass du aller 3 Sekunden 57 Elemente bekommst.
lese jetzt je Sekunde nur noch 19 Werte aus, jetzt geht es auch

(16.07.2013 20:04 )Holy schrieb:  [*]NI9215: du generierst 220000 Elemente je Sekunde und willst dann 132000 Elemente je Sekunde lesen. Resultat ist, dass du zwar immer die maximale Anzahl an Daten siehst aber sehr viel einfach verlierst.

Ist auch korrigiert.

(16.07.2013 20:04 )Holy schrieb:  Du solltest die RT-seitige Puffergröße der DMAs einfach ordentlich groß machen. Z.B. 1 Million für das 9215 und beim 9203 einfach paar Tausend. Rechne nochmal genau durch was du überall auslesen willst und an Puffern einstellst. Das passt aktuell alles nicht wirklich zusammen.

Für 9203 habe ich jetzt 8192 gewählt sollte locker reichen.
Für 9215 habe ich 1048575 gewählt aber die aktuelle Anzahl steht nur auf 16383. Weiß wer warum?

Im Anhang ist der Code und ein Bild von dem FIFO.


Angehängte Datei(en) Thumbnail(s)
   

10.0 .vi  MyHostCode.vi (Größe: 442,36 KB / Downloads: 219)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
17.07.2013, 18:48
Beitrag #16

Holy Offline
LVF-Stammgast
***


Beiträge: 339
Registriert seit: Sep 2008

2014
2007
EN

09XXX
Deutschland
RE: Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben
Kurzer Grundlagenkurs DMA-FIFOS:

DMA-FIFOS die zwischen FPGA und RT Daten austauschen bestehen aus 2 Teilen. Dem FPGA Teil, konfigurierbar unter dem FPGA-Target, und dem RT Teil, konfigurierbar über den Eigenschaftsknoten Configure.
Der FPGA Teil ist limitiert durch deine Ressourcen auf dem FPGA und der RT-Teil durch den RAM des cRIO.
Wenn du jetzt Daten in den DMA schreibst, auf FPGA Seite, erfolgt der Transfer in den RT-Teil automatisch. D.h. dein FIFO läuft typischerweise erst über wenn die RT-Seite voll ist.

Für deine Konfiguration bedeutet das folgendes:

- FPGA Seite des FIFOs war so bisher in Ordnung da ausreichend groß
- RT Seite war einfach viel zu klein

Also erhöhe bitte die Größe des FIFOs im RT-Teil und lass den FPGA Teil wie er war! Da du jetzt in deinem Code z.b. exakt gleich viel Elemente angefragt hast wie der RT Teil des FIFOs groß war kam die Funktion erst mit Daten zurück wenn der RT Teil auch voll war. Du hast dann zwar den FPGA Teil noch als Puffer aber das kann sehr schnell auch problematisch werden.

Deine konfigurierten Größen im FPGA gehen einfach nicht weil dafür garnicht genug Ressourcen vorhanden sind.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.07.2013, 11:34
Beitrag #17

MIngendorf Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2013

2012
2013
DE_EN



RE: Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben
Jetzt habe ich es Endlich verstanden.Hopper
Danke Holy. Nun habe ich ne extra Konstante angelgt un die auf die entsprechende configure gelegt und Oh Wunder es geht nun auch alles.

Mal sehen ob ich das Trennen und Rückrechnen der Daten nun hin bekomme.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.07.2013, 18:56
Beitrag #18

MIngendorf Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2013

2012
2013
DE_EN



Trennen und Rückrechnen der Daten
Nach dem ich jetzt gezwungener Weise 2 Wochen Hardware gemacht habe. Geht es jetzt mit der Software weiter.

Ich habe heute vergeblich versucht die Daten die aus dem FIFO kommen so zu trennen das ich sie mit zurückrechnen bzw. die Checksummen überprüfen kann.

Wenn ich das Array welches aus dem Read kommt trenne dann kann ich die Werte nicht mehr verarbeiten DBL, FXP löst alles Fehler aus.

Gibt es hierfür eine fertige Funktion oder muss ich das über eine For-Schleife trennen?
Hat wer eine IDEE?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
31.07.2013, 19:09
Beitrag #19

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Trennen und Rückrechnen der Daten
(31.07.2013 18:56 )MIngendorf schrieb:  Hat wer eine IDEE?
Idee VIs hochladen, damit man deinen aktuellen Software-Stand kennt? Glas2

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
01.08.2013, 07:59
Beitrag #20

MIngendorf Offline
LVF-Grünschnabel
*


Beiträge: 20
Registriert seit: Apr 2013

2012
2013
DE_EN



RE: Eingänge mit verschiedenen Abtastfrequenzen in FIFOs schreiben
Morgen jg,

hast recht hätte ich anhängen können. gab nur fast keine Ändrungen. Jetzt mit dem nicht funktionierendem Teil angehängt.


Angehängte Datei(en)
10.0 .vi  MyHostCode.vi (Größe: 443,61 KB / Downloads: 210)
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
  Unterschiedliche Abtastfrequenzen bei Period Measurement und Scale Period Schü 1 4.456 03.11.2012 11:03
Letzter Beitrag: jg
  Übertragung VI zwischen verschiedenen FPGA's lesley 4 5.091 08.06.2011 17:06
Letzter Beitrag: lesley
  Lassen sich die FIFOs per Name ansprechen? Matze 5 5.885 01.09.2010 08:18
Letzter Beitrag: cb
  Datentransfer mit 2 DMA FIFOs Svensson 3 5.473 11.09.2008 10:28
Letzter Beitrag: Svensson
  Zeiten zum füllen und entleeren von FIFOs Marzl 2 5.499 14.01.2008 19:55
Letzter Beitrag: thomas.sandrisser

Gehe zu: