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 

FIFO Benutzung



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!

24.01.2007, 18:41
Beitrag #21

dc6xs Offline
registered alien
****


Beiträge: 762
Registriert seit: Aug 2006

6.1,7.00
2006
kA

79106
Sonstige
FIFO Benutzung
' schrieb:Ich habe mich jetzt umgehört und hab da was von DataSocket aufgeschnappt. Da ich keine Ahnung habe von Shared Variables (da muss man beim anlegen schon so viel beachten) und die normale TCP/IP- Geschichte bei meinem versuch nicht geklappt hat möchte ich was anderes Bekanntes ausprobieren. Bei DataSocket läuft aber auch so ne extra Sache im Hintergrund. Das ist aber meines Erachtens ne fertige und damit ausgereifte Sache die sich um die Übertragung kümmern kann.

Ich hoffe mal das damit die Datenübertragung geht - das Signal wird mit 100kHz abgetastet und das muss es auch, damit bei 10kHz Sinus noch 10 Punkte pro Schwingung übrig bleiben.

Gunni

Wie stark schwankt denn der Pegel deines zu messendem Signals?
Vielleicht wäre es ja sinnvoll die Daten nicht als Double oder so zu über tragen sondern in ein int8 oder int16 zu skalieren?

Oder halt doch eine Komprimierung implementieren.. *duck*

Gruß, Robert

Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.

N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
24.01.2007, 18:48
Beitrag #22

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
FIFO Benutzung
' schrieb:Wie stark schwankt denn der Pegel deines zu messendem Signals?
Vielleicht wäre es ja sinnvoll die Daten nicht als Double oder so zu über tragen sondern in ein int8 oder int16 zu skalieren?

Oder halt doch eine Komprimierung implementieren.. *duck*

Gruß, Robert

Komprimierung kostet Rechenzeit und die ist sowieso schon knapp. Da die Daten aber vermutlich als I16 aufgezeichnet werden kann man die Datenmenge schonmal halbieren, in dem man Singles überträgt, nach meiner Rechnung wären dass dann 50 kHz mit 2 Kanälen. Wenn er die Rohdaten schickt, könnt es evtl. ausreichen ...

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
25.01.2007, 14:24
Beitrag #23

Striefchen Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 131
Registriert seit: Sep 2006

8.00 / 8.2
2006
kA


Deutschland
FIFO Benutzung
' schrieb:Komprimierung kostet Rechenzeit und die ist sowieso schon knapp. Da die Daten aber vermutlich als I16 aufgezeichnet werden kann man die Datenmenge schonmal halbieren, in dem man Singles überträgt, nach meiner Rechnung wären dass dann 50 kHz mit 2 Kanälen. Wenn er die Rohdaten schickt, könnt es evtl. ausreichen ...


Ich komme bei euch nicht mehr so richtig mit. Was sind denn Singles? Wenn du dann 50 kHz mit zwei Kanälen hast sollte es doch nach meiner Annahme mit einem Kanal und 100kHz auch gehen. Ich benutze ja auch nur einen. Wie funktioniert das Halbieren?

Gunni
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2007, 18:18
Beitrag #24

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
FIFO Benutzung
' schrieb:Ich komme bei euch nicht mehr so richtig mit. Was sind denn Singles? Wenn du dann 50 kHz mit zwei Kanälen hast sollte es doch nach meiner Annahme mit einem Kanal und 100kHz auch gehen. Ich benutze ja auch nur einen. Wie funktioniert das Halbieren?

Gunni

ich verwende in meinem Beispiel den Datentyp Double, sprich ich berechne aus den Rohdaten, die vom FPGA kommen bei der Umwandlung von binär zu nominal Fließkommawerte des Datentyps Double. Der Datentyp Single ist auch eine Fließkommazahl, aber mit - gegenüber dem Double - stark eingeschränkter Genauigkeit bzgl. der Nachkommastellen. Ein Double benötigt 8 Byte, ein Single aber nur 4. Somit reduziert sich die Datenmenge, die man übertragen muss schonmal um die Hälfte, wenn man statt Doubles Singles verwendet, wobei sich dann eben die Genauigkeit reduziert.

Wenn du nun aber ein 16 bit Analog-Eingangs-Modul verwendest, das einen 20 Volt Eingangsbereich in 65535 "Häppchen" aufteilt, dann kannst du damit max. 0,3 mV auflösen. Die höhere Genauigkeit des Doubles bringt also erstmal keinen Vorteil, insbesondere nicht, wenn du die Daten NUR übertragen willst und nicht auf dem RT-Host damit noch irgendwelche Berechnungen anstellen willst.

Weiterhin ist der Datentyp des 16 Bit AI Moduls auf I16 festgelegt, der braucht nur 2 Bit. Wenn du also direkt die Rohdaten vom FPGA zum PC überträgst und erst auf dem PC die Umrechnung von binär zu nominal vornimmst, sparst du für die Übertragung 75% der Bandbreite gegenüber meinem Beispiel. Damit sollte es möglich sein einen Kanal @100 kHz auf den PC zu streamen.

Wenn mir die Anmerkung erlaubt ist: einen 10 kHz Sinus mit 100 kHz zu sampeln und dann "vernünftige" Ergebnisse zu erwarten ist recht optimistsich. Ich würde nochmals vorschlagen, lass das mit dem FPGA bleiben und kauf dir für rund 1000 Euro eine schöne M-Serien Messkarte + Anschlusstechnik für den PC. Damit kannst Sample-Raten bis zu 1 MHz realsieren, das ist dann auch ausreichend um ein schnelles Sinus-Signal zu messen und verwertbaren Ergebnissen zu kommen.

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
25.01.2007, 20:51
Beitrag #25

Striefchen Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 131
Registriert seit: Sep 2006

8.00 / 8.2
2006
kA


Deutschland
FIFO Benutzung
' schrieb:ich verwende in meinem Beispiel den Datentyp Double, sprich ich berechne aus den Rohdaten, die vom FPGA kommen bei der Umwandlung von binär zu nominal Fließkommawerte des Datentyps Double. Der Datentyp Single ist auch eine Fließkommazahl, aber mit - gegenüber dem Double - stark eingeschränkter Genauigkeit bzgl. der Nachkommastellen. Ein Double benötigt 8 Byte, ein Single aber nur 4. Somit reduziert sich die Datenmenge, die man übertragen muss schonmal um die Hälfte, wenn man statt Doubles Singles verwendet, wobei sich dann eben die Genauigkeit reduziert.

Wenn du nun aber ein 16 bit Analog-Eingangs-Modul verwendest, das einen 20 Volt Eingangsbereich in 65535 "Häppchen" aufteilt, dann kannst du damit max. 0,3 mV auflösen. Die höhere Genauigkeit des Doubles bringt also erstmal keinen Vorteil, insbesondere nicht, wenn du die Daten NUR übertragen willst und nicht auf dem RT-Host damit noch irgendwelche Berechnungen anstellen willst.

Weiterhin ist der Datentyp des 16 Bit AI Moduls auf I16 festgelegt, der braucht nur 2 Bit. Wenn du also direkt die Rohdaten vom FPGA zum PC überträgst und erst auf dem PC die Umrechnung von binär zu nominal vornimmst, sparst du für die Übertragung 75% der Bandbreite gegenüber meinem Beispiel. Damit sollte es möglich sein einen Kanal @100 kHz auf den PC zu streamen.

Wenn mir die Anmerkung erlaubt ist: einen 10 kHz Sinus mit 100 kHz zu sampeln und dann "vernünftige" Ergebnisse zu erwarten ist recht optimistsich. Ich würde nochmals vorschlagen, lass das mit dem FPGA bleiben und kauf dir für rund 1000 Euro eine schöne M-Serien Messkarte + Anschlusstechnik für den PC. Damit kannst Sample-Raten bis zu 1 MHz realsieren, das ist dann auch ausreichend um ein schnelles Sinus-Signal zu messen und verwertbaren Ergebnissen zu kommen.


Nee, nee. Das mit dem FPGA geht schon in Ordnung - der wurde mir für die Diplomarbeit gestellt. Zur Diplomverteidigung kann ich es ja erwähnen das die Aufgabe sich mit so ner M-Serie besser lösen ließ. Bei dieser Aufgabe ist es nur von Nöten das Signal als Sinus, Rechteck oder sonstiges wie es erzeugt wurde zu erkennen und um zu kontrollieren ob nach gewisser Zeit eine Dämpfung eintritt. Dafür reichen die 10 Punkte denke ich mal aus.

Wenn ich dich jetzt richtig verstehe dann meinst du meine Daten des mit 100kHz abgetasteten Signals kann ich problemlos vom RT zum PC schieben? Ich habe sie aber auf dem RT schon in Double umgewandelt.


Gunni
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.01.2007, 22:21
Beitrag #26

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
FIFO Benutzung
' schrieb:Wenn ich dich jetzt richtig verstehe dann meinst du meine Daten des mit 100kHz abgetasteten Signals kann ich problemlos vom RT zum PC schieben? Ich habe sie aber auf dem RT schon in Double umgewandelt.

habs grad getestet, es geht, einen Kanal als I16 per TCP zum PC übertragen klappt einwandfrei mit einem 100 MBit Netzwerk

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
26.01.2007, 10:32
Beitrag #27

Striefchen Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 131
Registriert seit: Sep 2006

8.00 / 8.2
2006
kA


Deutschland
FIFO Benutzung
' schrieb:habs grad getestet, es geht, einen Kanal als I16 per TCP zum PC übertragen klappt einwandfrei mit einem 100 MBit Netzwerk


Okay. In deinem ersten Versuchsbeispiel aus dem Forum habe ich gesehen das du die Daten aus deinem FIFO ausließt und dann in einen der nächsten Case-Fälle los sendest. Zuvor hattest du die TCP-Verbindung hergestellt. Das alles liegt bei dir in deiner Hauptschleife.

Wenn ich jetzt kontinuierlich meine Daten aus dem FIFO auslese und abschicken möchte, muss ich da auch jedesmal die TCP-Verbindung neu herstellen und nach dem Senden kappen. Oder sollte ich die Verbindungsgeschichte nicht vor der Hauptschleife einmal machen und nach der Hauptschleife schließen? Denn wenn ich jedesmal erst die Verbindung erneut herstelle wartet der TCP-Listener doch auch jedesmal.

Ich versuche nämlich gerade ein einfaches Projekt wo ich nur Arrays (den Datenpaketen aus dem FIFO entsprechend) los schicke und auf dem PC empfange.
So richtig weiß ich noch nicht wie ich es anstellen soll denn im richtigen Projekt kommen die Pakete ja auch mal in kleinen und mal in großen Stücken. Die Durchlaufzeit schwankt deshalb auch etwas hin und her. Muss ich da jetzt noch einen RT FIFI zwischen abgeholten Paketen aus dem FPGA FIFO und der Sendevorrichtung mit TCP einbauen? Oder liegen diese Pakete in der Leitung abholbereit (so ne Art interner Zwischenspeicher)?


Gunni
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
26.01.2007, 14:13 (Dieser Beitrag wurde zuletzt bearbeitet: 26.01.2007 14:15 von cb.)
Beitrag #28

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
FIFO Benutzung
' schrieb:Okay. In deinem ersten Versuchsbeispiel aus dem Forum habe ich gesehen das du die Daten aus deinem FIFO ausließt und dann in einen der nächsten Case-Fälle los sendest. Zuvor hattest du die TCP-Verbindung hergestellt. Das alles liegt bei dir in deiner Hauptschleife.

:wacko:das ist eine State Machnine ...

' schrieb:Muss ich da jetzt noch einen RT FIFI zwischen abgeholten Paketen aus dem FPGA FIFO und der Sendevorrichtung mit TCP einbauen?

nein, der Fiffi bleibt zu hause Cool

' schrieb:Oder liegen diese Pakete in der Leitung abholbereit (so ne Art interner Zwischenspeicher)?

nein, das widerspräche ja grundlegend dem Sinn und Zweck einer Peer to Peer Verbindung

' schrieb:Ich versuche nämlich gerade ein einfaches Projekt wo ich nur Arrays (den Datenpaketen aus dem FIFO entsprechend) los schicke und auf dem PC empfange.

falls es dir noch nicht aufgefallen ist, das ist in meinem Projekt schon mit drin (die beiden Speed-Test VIs ...)

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
29.01.2007, 09:53
Beitrag #29

Striefchen Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 131
Registriert seit: Sep 2006

8.00 / 8.2
2006
kA


Deutschland
FIFO Benutzung
' schrieb:...
falls es dir noch nicht aufgefallen ist, das ist in meinem Projekt schon mit drin (die beiden Speed-Test VIs ...)

Also wenn ich das richtig verstehe werden die Daten per TCP kontinuierlich los geschickt und du hast in deinem Speed-Test die einezelnen Pakete als Teilarray zu einem Array dazu gepackt. Wenn ich bei mir die Datenpakete als Teilarray zu einem Array dazu tue sind meine 64 MB Festspeicher auf dem RT in 7 Sekunden voll.

Kannst du mir da mal bitte auf die Sprünge helfen wie ich das realisieren könnte?


Gunni
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
29.01.2007, 11:32
Beitrag #30

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
FIFO Benutzung
' schrieb:Also wenn ich das richtig verstehe werden die Daten per TCP kontinuierlich los geschickt und du hast in deinem Speed-Test die einezelnen Pakete als Teilarray zu einem Array dazu gepackt. Wenn ich bei mir die Datenpakete als Teilarray zu einem Array dazu tue sind meine 64 MB Festspeicher auf dem RT in 7 Sekunden voll.

Kannst du mir da mal bitte auf die Sprünge helfen wie ich das realisieren könnte?
Gunni

in der ersten Version war ein Bug bzw. das ganze VI ist Schrott, nimm mal die letzte Version, da ist das richtig implementiert


Sonstige .zip  crio_01_final.zip (Größe: 1.019,04 KB / Downloads: 381)

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
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
Question Timeout bei FIFO Speicher otto.kranz 15 39.141 19.09.2016 12:20
Letzter Beitrag: GerdW
  RT FIFO Frage gfzk 1 15.029 02.07.2015 15:56
Letzter Beitrag: GerdW
  RT FIFO Verständnis Michiel 3 10.862 13.06.2014 14:02
Letzter Beitrag: jg
  Fragen zu DMA FIFO gfzk 5 12.371 24.10.2011 17:23
Letzter Beitrag: gfzk
  DMA FIFO + TDMS File IO NoD 1 9.002 30.10.2009 15:21
Letzter Beitrag: dlambert
  Problem mit RT-FIFO Benjamin84 4 9.501 01.07.2008 10:11
Letzter Beitrag: cb

Gehe zu: