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 

Buffer läuft während des speicherns über



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!

12.06.2008, 08:40
Beitrag #1

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Buffer läuft während des speicherns über
Hallo,
Ich verwende ein C-rio 9072 und erfasse mit meinem Programm Messwerte mit 10kHz. Die Werte übertrage ich von dem FPGA per DMA (schreibe sie in ein FIFO) und lese sie dann wieder aus und verarbeite sie weiter. Das ganze funktioniert auch ganz gut. In bestimmten Abständen will ich die verarbeiteten Werte abspeichern , dazu habe ich mir ein Subvi geschrieben welches in meinem Fall die Werte auf einer SD-Card (Modul 9802) speichert. Leider läuft während des Speichervorgangs mein Buffer über. Ich will aber das ich während des Speichervorgangs weiter abtaste. Gibt es da irgendwelche Tricks, dass man speichern und abtasten parallel ausführen kann. Ich habe schon die größe des FIFOs erhöht doch leider hat es nichts bewirkt.
Vielen Dank
Gruß Benjamin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
12.06.2008, 19:10
Beitrag #2

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Buffer läuft während des speicherns über
' schrieb:In bestimmten Abständen will ich die verarbeiteten Werte abspeichern , dazu habe ich mir ein Subvi geschrieben welches in meinem Fall die Werte auf einer SD-Card (Modul 9802) speichert. Leider läuft während des Speichervorgangs mein Buffer über.
Du hast das Samplen der Daten und das Speichern der Daten "in einem Datenfluß". Das kann tatsächlich zu einem Pufferüberlauf führen, weil während des Speichern eben nicht mehr gesamplet werden kann.

Zitat:Gibt es da irgendwelche Tricks, dass man speichern und abtasten parallel ausführen kann.
Na, wie heißt der Trick? "parallel ausführen"!

Mach - prinzipiell gesehen - zwei While-Schleifen. In der ersten tust du nur samplen. Die gesamplten Daten sendest du mittels Queue in die zweite While-Schleife. In der zweiten While-Schleife speicherst du die Daten ab. Die beiden While-Schleifen sind parallel und werden deswegen auch genau so abgearbeitet.

Mach dich also mal schlau über Queue, Melder etc.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2008, 14:09
Beitrag #3

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Buffer läuft während des speicherns über
Ich denke ich habe hier ein Verständnisproblem
Ich verstehe nicht ganz wie sie beide parallel laufen können. Ich denke ein CPU oder in meinem Fall der Controller kann nur ein Sache nach der anderen machen. Somit wäre es doch egal ob ich samplen und speichern in einer Schleife laufen lasse oder nicht, denn der Controller kann doch nie gleichzeitig samplen und speichern oder ???
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2008, 14:33 (Dieser Beitrag wurde zuletzt bearbeitet: 13.06.2008 14:39 von IchSelbst.)
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Buffer läuft während des speicherns über
' schrieb:Ich verstehe nicht ganz wie sie beide parallel laufen können.
Alleine die Tatsache, dass die beiden While-Schleifen im Blockdiagramm "parallel angeordnet" sind, ist bereits ausreichend, dass sie parallel abgearbeitet werden. Diesen Sachverhalt nimmt dir ja LV ab. Du merkst davon gar nichts. Eigentlich geht die Sache ja noch viel weiter: Alles, was nicht in einem Datenfluß steht, wird parallel abgearbeitet.

Zitat:Ich denke ein CPU oder in meinem Fall der Controller kann nur ein Sache nach der anderen machen.
Erstens: In deimem Falle doch auch die CPU: Speichern und Samplen tut doch die CPU?
Zweitens: An sich ist das richtig. Nur: "Die CPU arbeitet im Multitasking-Mode". D.h. Jede Task (im Endeffekt also jede While-Schleife) wird zu einem bestimmten Zeitpunkt (eigentlich in einem bestimmten Zeitraum) immer nur ein ganz kleines Stückchen bearbeitet. Den Gesamtzeitraum (z.B eine Sekunde) zerteilt die CPU (eigentlich das Betriebssystem) in kleine Zeitscheiben (z.B. ca. 50µsec). Nun werden der Reihe nach alle Tasks für die Dauer der Zeitscheiben bearbeitet. Nach außen hin sieht das dann aus, als würden die Tasks parallel abgearbeitet werden. Das ganze heißt dann Time-Shareing.

Zitat:Somit wäre es doch egal ob ich samplen und speichern in einer Schleife laufen lasse oder nicht, denn der Controller kann doch nie gleichzeitig samplen und speichern oder ???
Nur wenn in einer Task gesampelt und gespeichert wird, geht es hintereinander. Wenn für beides eine Task besteht, dann kann man es parallel laufen lassen.


Nachtrag:
Hab ich schon wieder was übersehen? Du arbeitest mit einem Controller, d.h. die Daten gehen nicht per DMA in einen "PC" sondern in ein Echtzeitmodul von NI? Da kenn ich mich aber nicht aus.

Wenn aber das Echtzeitmodul von NI nicht auch parallel arbeiten kann - taugt es aber nicht viel.

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2008, 15:01
Beitrag #5

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Buffer läuft während des speicherns über
Vielen Dank für deine ausführlich Antwort, da hatte ich ein echtes Verständnisproblem.
Gruß Benjamin
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
13.06.2008, 15:04
Beitrag #6

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Buffer läuft während des speicherns über
' schrieb:Vielen Dank für deine ausführlich Antwort, da hatte ich ein echtes Verständnisproblem.
Darf ich kurz nachfragen, ob du jetzt die CPU (also "WinXP") gemeint hast, oder ein Echtzeitsystem von NI?

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
16.06.2008, 07:15
Beitrag #7

Benjamin84 Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 56
Registriert seit: Apr 2008

8.5
-
de

13467
Deutschland
Buffer läuft während des speicherns über
Ich meinte damit das Echtzeitsystem.
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
  Buffer Size, Samples per Channel zusammenhang mriworld 3 3.551 17.10.2022 16:31
Letzter Beitrag: Martin.Henz
  Analogausgang kontinuierlich schreiben, während der Moes 7 8.925 18.12.2015 09:09
Letzter Beitrag: Moes
  Buffer Underflow chrigi28 1 3.955 29.11.2013 12:34
Letzter Beitrag: chrigi28
  DAQ Buffer ewald89 5 7.144 26.07.2012 12:51
Letzter Beitrag: ewald89
  Messen während der Verarbeitung Eglito 3 4.152 25.04.2012 08:46
Letzter Beitrag: jg
  Buffer vergrößern suntmaster 5 5.926 23.04.2012 09:07
Letzter Beitrag: suntmaster

Gehe zu: