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 

Probleme mit Buffer



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!

13.12.2007, 15:41
Beitrag #1

Tonii
Unregistered


 







Probleme mit Buffer
Hallo liebe LVler,

ich muss heute noch einmal Fragen.

Es handelt sich um meine Schaltung (siehe Bild) die ein Signal vom USB-6009 bekommt und anhand der Amplitude einen Ton ausgeben soll, was ja auch soweit funktioniert.
Das Problem dabei ist, dass ich stets zwei Fehlermeldungen im Wechsel bekomme, die den Buffer, Abtastwerte etc betreffen.

Fehler Nr 1:

-200279 bei DAQmx Read (Analog 1D Wfm NChan NSamp).vi

Es wurde versucht Abtastwerte zu lesen, die nicht mehr zur Verfügung stehen. Der angeforderte Abtastwert war zuvor verfügbar, wurde jedoch überschrieben.

Vergrößern des Puffers, häufigeres Lesen der Daten oder Angabe einer festen Anzahl zu lesender Abtastwerte anstatt alle verfügbaren Abtastwerte zu lesen, könnte das Problem eventuell beheben.

Fehler Nr 2:

-200284 bei DAQmx Read (Analog 1D Wfm NChan NSamp).vi

Es wurden einige oder alle der angeforderten Abtastwerte noch nicht erfasst.

Verwenden Sie ein längeres Lese-Timeout oder lesen Sie die Daten später in Ihrem Programm, um zu warten, bis die Abtastwerte zur Verfügung stehen. Um die Abtastwerte früher verfügbar zu machen, können Sie die Abtastrate erhöhen. Wenn Ihr Task einen Starttrigger verwendet, stellen Sie sicher, das dieser korrekt konfiguriert ist. Es ist auch möglich, dass Sie den Task für ein externes Timing konfiguriert haben, ohne eine Taktquelle zur Verfügung zu stellen. Wenn dies der Fall ist, stellen Sie bitte eine Taktquelle zur Verfügung.


Im DAQ-Assistenten ist kontinuierlich eingestellt sowie 1000 zu lesende Werte und 1k Rate. Änder ich die Werte und/ oder die Rate ändert sich nichts bezüglich der Fehlermeldungen.

Tu ich dann im DAQ-Assi den Frontpanel öffnen, bietet sich die Möglichkeit den timeout bei read.vi zu ändern, aber das nützt in diesem Falle auch nichts. Ebenfalls kann man die "Anzahl der Samples pro kanal" bei read.vi ändern, voreingestellt ist -1, was ich merkwürdig finde. Wenn ich es auf 1 setzte, dann läuft zwar meine Schaltung eine Weile, aber mir fehlt da das Verständnis um hinterzusteigen, was die einzelnen Elemente bewirken.
Liege ich da mit meiner Suche in der richtigen Richtung oder bin ich da total falsch und es sind andere Gründe warum dies nicht funktioniert? liegt es vielleicht auch nur am PC? Ist zwar kein highend-PC, aber auch nicht das schlechteste. Generell läuft das Programm recht langsam bzw hohe Reaktionszeiten, wenn es kurz mal läuft.

Vielen Dank erstmal im Voraus.. bin über jede Hilfe dankbar..

tonii

   
Diese Nachricht in einer Antwort zitieren to top
Anzeige
14.12.2007, 09:41
Beitrag #2

monoceros84 Offline
LVF-Stammgast
***


Beiträge: 445
Registriert seit: Oct 2006

2011
2006
EN


Deutschland
Probleme mit Buffer
Du suchst definitiv in der richtigen Richtung.Smile

Deine Fehler bedeuten folgendes:
Fehler 1: Du liest zu langsam oder du liest immer zuviele Werte auf einmal (und musst dann immer warten, bis diese Werte erstmal da sind). Die Werte werden dann im Puffer wieder überschrieben, obwohl sie noch gar nicht ausgelesen wurden.
Fehler 2: Du liest zu schnell und willst Werte lesen, die noch gar nicht gemessen wurden.

Wie du schon richtig vermutet hast, liegt das Problem in "Samples pro Kanal". Mit -1 liest du immer so viele Werte aus, wie gerade da sind. Klingt gut, macht aber auch bei mir immer wieder Probleme. Bessere Erfahrung habe ich mit dieser Methode: Man liest nicht N Samples aus, sondern immer nur 1 Sample (erhält also statt 2D ein 1D-Array), dafür aber in einer Schleife. Abbruchbedingung ist ein Timeout oder wenn die erforderliche Anzahl Daten erfasst wurde.
Nachteil dieser Methode. Du bekommst deine Daten zeitverzögert. Das trifft aber auch auf dein bisher verwendetes Verfahren zu.

Wenn du keine Messreihe aufnehmen willst, sondern immer den aktuellen Status brauchst, ist es besser, gar kein Timing zu verwenden. Also einfach DAQmx Read aufrufen und ein Sample je Kanal messen. Das ist glaube auch das, was du vorhast, oder?

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
14.12.2007, 13:08
Beitrag #3

Tonii
Unregistered


 







Probleme mit Buffer
' schrieb:Wenn du keine Messreihe aufnehmen willst, sondern immer den aktuellen Status brauchst, ist es besser, gar kein Timing zu verwenden. Also einfach DAQmx Read aufrufen und ein Sample je Kanal messen. Das ist glaube auch das, was du vorhast, oder?

hmm.. schon richtig.. Aber wenn ich auf den DAQ-Assistenten verzichte und stattdessen create.vi, start.vi und read.vi nutze, dann macht der Filter eine Fehlermeldung das bei ihm stets 0 ankommt. Bei read.vi habe ich alle Möglichkeiten ausprobiert.

Was ich eigentlich will: USB-6009 ist an einer Schaltung angeschlossen und soll Spannung und Frequenz dem LabVIEW übergeben. Also habe ich schon zwei verschiedene paar Schuhe.. und die Frage ist da, ob es mit read.vi allein geht?!

Jedenfalls scheint es nur mit dem DAQ-Assi zu funktionierenSad Und dabei entstehen großen Fehler..

danke tonii
Diese Nachricht in einer Antwort zitieren to top
14.12.2007, 18:50 (Dieser Beitrag wurde zuletzt bearbeitet: 15.12.2007 10:08 von jg.)
Beitrag #4

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Probleme mit Buffer
Ich bin ja der Meinung, kontinuierliche Datenerfassung gehört so aufgebaut:

-Nachschauen, wieviele Samples vorhanden sind und dann diese Auslesen, und das in einer While-Loop,

ODER:

-Erst 0 Samples auslesen, dann Nachschauen, wieviele Samples inzwischen im Buffer sind, dann diese Anzahl im nächsten Durchlauf einlesen.

Hierzu ein modifiziertes Bsp. aus dem NI-Examplefinder:
   
Lv80_img
Sonstige .vi  Cont_Acq_Graph_Voltage_Int_Clk_Modified.vi (Größe: 41,39 KB / Downloads: 373)


MfG, Jens

EDIT: Es geht natürlich auch, einfach in der Loop immer alle gerade verfügbaren Samples auszulesen. Sieht dann so aus:
   
Jetzt muss man eigentlich nur noch aufpassen, das Puffergröße, Datenerfassungsrate und Geschwindigkeit der Datenleseloop zueinander passen, also Puffergröße > Rate * Zeit der Leseloop.

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
18.12.2007, 10:08
Beitrag #5

Tonii
Unregistered


 







Probleme mit Buffer
Hallo und danke erstmal,

leider kann ich mir dieses vi nicht anschauen, da ich nur Version 7.1 besitze..

Ich bin zwar auf der Suche, aber bisher konnte ich das Beispiel aus dem NI-Examplefinder noch nicht finden -.-

lg tonii
Diese Nachricht in einer Antwort zitieren to top
18.12.2007, 11:18
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Probleme mit Buffer
Hier drunter zu finden.

   

Und hier (ohne Garantie, ob das Runterkonvertieren geklappt hat):
Lv71_img
Sonstige .vi  Cont_Acq_Graph_Voltage_Int_Clk_Modified.vi (Größe: 73,57 KB / Downloads: 373)


MfG, 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
Anzeige
18.12.2007, 14:17
Beitrag #7

Tonii
Unregistered


 







Probleme mit Buffer
Vielen dank,

habe es sogar gefundenSmile

Jedenfalls funktioniert dein geändertes Beispiel.. Fast zumindest.. das Signal was ausgegeben wird, wird nur einmal dargestellt, also kein bewegendes Signal, obwohl das Programm an sich noch läuft.. Liegt es vielleicht daran, das selbst das Übertragen/ Auslesen vom Gerät in der Schleife geschehen muss?

Noch eine weitere Frage zum Verständnis, es herrschen ja doch oft ähnliche Wörter:

Zu lesende Werte = Number of Samples = Buffergröße!?
und Samples pro Kanal = zu lesende Werte?

Buffergröße > Rate * Zeit, (wartende Zeit von "wait" ?)
also zB wenn Rate 1000Hz ist und der wait-timer auf 10 ist, dann muss Buffer mind. 10000 sein!?

:)danke im Voraus

lg Tonii
Diese Nachricht in einer Antwort zitieren to top
18.12.2007, 14:37
Beitrag #8

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Probleme mit Buffer
' schrieb:Vielen dank,

habe es sogar gefundenSmile

Jedenfalls funktioniert dein geändertes Beispiel.. Fast zumindest.. das Signal was ausgegeben wird, wird nur einmal dargestellt, also kein bewegendes Signal, obwohl das Programm an sich noch läuft.. Liegt es vielleicht daran, das selbst das Übertragen/ Auslesen vom Gerät in der Schleife geschehen muss?
Keine Ahnung, wie du dein VI jetzt aufgebaut hast, wahrscheinlich, mein Bsp. zeigt kontinuierlich das Signal.
' schrieb:Noch eine weitere Frage zum Verständnis, es herrschen ja doch oft ähnliche Wörter:

Zu lesende Werte = Number of Samples = Buffergröße!?
und Samples pro Kanal = zu lesende Werte?
Meinst du jetzt die Übersetzung der englischen Bezeichnung zum deutschen LabVIEW? Da muss ich passen.
' schrieb:Buffergröße > Rate * Zeit, (wartende Zeit von "wait" ?)
also zB wenn Rate 1000Hz ist und der wait-timer auf 10 ist, dann muss Buffer mind. 10000 sein!?
Fast, da die Zeit bei wait ja in ms angegeben ist, als bei 10 = 10 ms hast du 1000Hz*0,01s = 10, ansonsten hst du hier richtig verstanden. Würde die Buffersize bei kontinuierlicher Erfassung aber großzügig bemessen.

MfG, 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
18.12.2007, 15:07
Beitrag #9

Achim Offline
*****
*****


Beiträge: 4.222
Registriert seit: Nov 2005

20xx
2000
EN

978xx
Deutschland
Probleme mit Buffer
' schrieb:Zu lesende Werte = Number of Samples = Buffergröße!?
und Samples pro Kanal = zu lesende Werte?

Guck dir mal im MAX die Hilfe-Einträge zu den einzelnen Größen an...(rechts im MAX..."Hilfe einblenden")...da steht alles dabei!

"Is there some mightier sage, of whom we have yet to learn?"

"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
18.12.2007, 16:31
Beitrag #10

Tonii
Unregistered


 







Probleme mit Buffer
' schrieb:Keine Ahnung, wie du dein VI jetzt aufgebaut hast, wahrscheinlich, mein Bsp. zeigt kontinuierlich das Signal.

Ich versuche mich an deinem Beispiel, aber ich bekomm als Signalausgabe nur ein stehendes Signal welches sich auch nicht ändert bei Veränderungen der Schaltung. Liegt vermutlich an den zusätzlich eingefügten Modulen!?

' schrieb:Meinst du jetzt die Übersetzung der englischen Bezeichnung zum deutschen LabVIEW? Da muss ich passen.

jain.. aber ein Tipp kam von Achim.

' schrieb:Fast, da die Zeit bei wait ja in ms angegeben ist, als bei 10 = 10 ms hast du 1000Hz*0,01s = 10, ansonsten hst du hier richtig verstanden. Würde die Buffersize bei kontinuierlicher Erfassung aber großzügig bemessen.

Danke, gut zu wissen. Hmm leider sind die Zahlen ja meist schon voreingestellt wenn man zB den DAQ-Assistenten mit einbindet. Wie in meinem Codebeispiel oben, es müsste ja laut dieser Formel ja dann funktionieren -.-


' schrieb:Guck dir mal im MAX die Hilfe-Einträge zu den einzelnen Größen an...(rechts im MAX..."Hilfe einblenden")...da steht alles dabei!

hmm.. danke dir..
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 2.526 17.10.2022 16:31
Letzter Beitrag: Martin.Henz
  Buffer Underflow chrigi28 1 3.430 29.11.2013 12:34
Letzter Beitrag: chrigi28
  DAQ Buffer ewald89 5 6.475 26.07.2012 12:51
Letzter Beitrag: ewald89
  Buffer vergrößern suntmaster 5 5.485 23.04.2012 09:07
Letzter Beitrag: suntmaster
  Buffer überlauf durch NI 9263 Golan 6 6.602 13.03.2012 13:04
Letzter Beitrag: Achim
  "Ouput Buffer Empty"... wie füllen? Labneuling 2 4.283 02.02.2011 09:59
Letzter Beitrag: Labneuling

Gehe zu: