12.07.2010, 16:14
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
Hallo Nick,
"Es sieht so aus als ob in die queue nur ein Wert reingeschrieben wird, der dann direkt ausgelesen wird."
Falsch!
Es wird jeweils ein Wert (der direkt vom DAQ kommt) reingeschrieben. Die Queue dient aber als Puffer mit der von dir vorgegebenen Größe. GetQueueStatus holt die Werte auch nicht aus der Queue - du bekommst nur eine Preview und die Werte bleiben drin! Ist der Puffer voll (dank deiner gewünschten Maximal-Größe), wird immer der älteste Wert überschrieben (dank LossyEnqueue)... Ein klassischer Ringbuffer!
|
|
|
12.07.2010, 16:22
(Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 16:24 von nick.)
|
nick
LVF-Grünschnabel
Beiträge: 36
Registriert seit: Aug 2009
9.0 32bit
2009
de
54290
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
ahhhhhhhhhhhhh
Tausend Dank . Dann hab ich das im highlight einfach falsch interpretiert .
mein Herz beruhigt sich langsam wieder :-)
Jetzt muss ich nur noch mein Anfangswert problem lösen und die Welt schaut wieder bunt aus.
Danke nochmals Gerd
|
|
|
16.07.2010, 17:52
(Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2010 17:58 von nick.)
|
nick
LVF-Grünschnabel
Beiträge: 36
Registriert seit: Aug 2009
9.0 32bit
2009
de
54290
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
Hallo liebe Labviewer,
ich muss leider nochmal das leidige Thema aufmachen , da ich einfach auf keine Lösung komme.
Es sieht so aus: ich lese Werte eins Beschleunigungssensors ein.-> volt, die ich in meinem Vi eiterverarebit.
Das Problem ist, dassnicht die Gewünschten Werte bei der Verarbeitung ankommen. Es gibt vier Varianten, die ich bis jetzt beobachten konnte.
1. Der Wert bleibt auf 5,2... stehen und verändert sich auch nicht. Beim neustart zuckt er ab und zu aber bleibt sich selbst treu.
2. Der Wert fängt an von einer beliebigen Zahl hoch bzw. runterzuzählen. Wartet man kurz und startet wieder ergibt sich ein Sprung. Das sieht ganz nach einem Sinusförmigen zählen aus. Aber woher kommt der Sinus?? ( ich hab nichts angeschlossen, oder einen 50Ohm abschlusswiederstand oder einen Signalgenerator. Aber das Signal scheint auf kein Eingangssignal zu reagieren)
3. Der Wert steht eine Weiel auf einem Wert und springt dan auf 0.
4. Es Funktioniert ( oder es sieht zumindestens so aus) und der Wert zuckt um einen Wert ab einer Nachkommastelle (jeh nach Einstellung) herum.
Kann mir einer Sagen ob ich vorne beim Einlesen der Daten einen Fehler gemacht habe? Müssen die ganzen Sachen wie Task erstellen etwa in eine Schleife?? Ich glaubs ja nicht.Dann würde ja ständig ein neuer Task erzeugt,das frisst doch ne Menge Speicher.
Ich kenn mich mit den Eigenschaftsknoten auch nicht so richtig aus. fehlt da vielleicht noch eine beim einlesen ( ich habs schon mit einm Eigenschaftsknoten lesen versucht, aber nix wars) Kann mir einer Vielleicht die Aufgabe von dennen erklähren, ich habs in der hilfe nicht ganz durschaut. Merci
Es ist auch noch eine Fehlermeldung aufgetaucht, das ein Weiterer Wert nach beenden des Abtastens eingelesen werden wollte ??? aber ich hab doch extra das Warten und dann erst den Task stoppen drinn ? kommt das vielleicht von dem Daqmx timing?:(ich bin etwas ratlos
arrrrrg ich verzweifle
Danke das ihr euch das zum hundertsten mal angeschaut habt.
Liebste Grüße Nick
Auslenkung_ermitteln3.0.5_ringpuffervi.vi (Größe: 34,52 KB / Downloads: 157)
|
|
|
16.07.2010, 19:43
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
1. Was soll das: Bei einer Samplerate von 1kHz jeden Wert einzeln einlesen? Hol dir immer einen Schwung von mind. 50 oder 100 Daten auf einmal, für die feste Taktrate sorgt schon deine DAQ-Karte, das brauchst du nicht noch mit einem 1ms-Wait in der Schleife kombinieren.
2. Ein nicht initialisiertes Shift-Register für die "Tabelle". Beim 2. Start deines VI hängst du die bestehende Messung hintendran, die Tabelle wird immer größer und größer! Das kostet Zeit ohne Ende.
3. x FP-Elemente sind innerhalb deiner 1khz-laufenden Schleife. Die brauchst du auch nicht mit 1kHz ans FP weiterleiten. Ganz besonders übel wird das wieder durch die "Tabelle", schließlich wächst und wächst die bei dir ins unermesslich Große...
Wenn du Messdauer und Taktrate vorgibst, dann weißt du außerdem genau, wie viele Messwerte du erfassen willst. Somit kannst du dir auch die Überprüfung sparen, ob die aktuelle Zeitdauer größer als die vorgegebene Messdauer ist.
Ich hab dir das mal entsprechend umgebaut:
Auslenkung_ermitteln3.0.5_mod.vi (Größe: 35,43 KB / Downloads: 169)
Bei dieser Version ist zu beachten, dass sie nicht geeignet ist für eine wirklich lange Messdauer (also irgendwas ab Größenordnung mehrere 10 Minuten). Die Größe der Tabelle ist nicht begrenzt, und ich habe auf die Schnelle den Ringpuffer wieder rausgeschmissen.
Gruß, Jens
P.S.::rulez:LVF-Regeln beachten, kein Doppelposting derselben Frage.
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.
|
|
|
21.07.2010, 11:34
|
nick
LVF-Grünschnabel
Beiträge: 36
Registriert seit: Aug 2009
9.0 32bit
2009
de
54290
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
Vielen Dank für deine Antwort,
Die Tabelle hab ich rausgekickt, die war auch eigentlich nur zur life Überprüfung, aber nicht zwingend notwendig. Du hast vollkommen recht. Die wächst nur unnötig an.
Im Moment lösche ich den Inhalt meiner Txt-datei regelmäßig von hand. Ich könnte ja hier nach x werten einfach eine neue erstellen lassen.
Auf die Sache mit dem Array hätte ich wirklich selbst kommen müssen. Aber gut , dass du mich draufhingewiesen hast,sonst würd ich immer noch jeden Wert einzeln Einlesen :rolleyes:Das mit dem Array in der Größe meiner einzulesender Werte finde ich eigentlich nicht soo geschickt, denn ich möchte ja eine Life-veränderung sehen können. Daher hatte ich extra an ein Array/Ringpuffer/queue ... gedacht das zB. nur 100 Werte aufnimmt und diese dann verarbeitet. So krieg ich alle 100 werte einen Mittelwert update.
Aber das Problem kommt sozusagen erst eine Stufe weiter:construction:Ich häng ja immer noch an dem Eingangswerte Problem.
Tutu mir Leid wegen dem doppelposting, aber das Problem wurde meiner Meinung nach gar nicht angesprochen, da wollte ich es nochmal aufbringen.
Ich verwende gerade deine Version. Es sieht so aus, als ob Die Karte überhaubt nicht auf Veränderungen von außen reagieren würde, sondern selbst irgendwo Werte erzeugt.(Das ist natürlich nicht gegn dein Vi gemeint, das funzt super. Das Problem habe ich bei allen Versionen) Ab einem bestimmten Punkt fängt der Mittelwert wieder an hochzuzählen.???????????
Im Bild unten kann man sehen, dass an Punkt sechs eine schöne ZahlenReihe, diese Sollte über Mean zu Punkt Fünf gehen und einen schönen Mittelwert anzeigen. Aber dieser wert LÄUFT im sekundentackt HOCH.
Die Werte in punkt 6 ändern sich nicht ?? ich geh davon aus, dass nur die ältesten x Werte angezeigt werden.
Was auch eigenartig ist, das Der Wert von 7 und 8 gleich sind. Bei Tausend Werten sollten sich die Werte auf jeden Fall unterscheiden. (ich hab mal den Mean punkt für punkt zum test reingemacht. Der zählt wenigstens nicht hoch, sondern tanzt wie gewünscht um einen Wert richtung Null
)
Beste Grüße mit vielem Dank euer Greenhorn Nick
Auslenkung_ermitteln3.0.6.ohne_Tabelle.vi (Größe: 34,67 KB / Downloads: 159)
|
|
|
21.07.2010, 21:20
(Dieser Beitrag wurde zuletzt bearbeitet: 21.07.2010 21:23 von jg.)
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
' schrieb:Daher hatte ich extra an ein Array/Ringpuffer/queue ... gedacht das zB. nur 100 Werte aufnimmt und diese dann verarbeitet. So krieg ich alle 100 werte einen Mittelwert update.
Das kannst du doch jetzt genau dadurch lösen, dass du immer z.B. 100 Messwerte auf einmal ausliest, und tada, du hast genau die 100 Werte, über die du mitteln willst.
' schrieb:Ich verwende gerade deine Version. Es sieht so aus, als ob Die Karte überhaubt nicht auf Veränderungen von außen reagieren würde, sondern selbst irgendwo Werte erzeugt.(Das ist natürlich nicht gegn dein Vi gemeint, das funzt super. Das Problem habe ich bei allen Versionen) Ab einem bestimmten Punkt fängt der Mittelwert wieder an hochzuzählen.???????????
Wieso sollte das nicht mal passieren?
' schrieb:Im Bild unten kann man sehen, dass an Punkt sechs eine schöne ZahlenReihe, diese Sollte über Mean zu Punkt Fünf gehen und einen schönen Mittelwert anzeigen. Aber dieser wert LÄUFT im sekundentackt HOCH.
Die Werte in punkt 6 ändern sich nicht ?? ich geh davon aus, dass nur die ältesten x Werte angezeigt werden.
Jau, ist auch richtig. So wie ich das programmiert habe, wird im "Ausgangs-Array" und somit auch an der Probe 6 nach und nach die gesamte Messung gespeichert. Da die Probe nur den Anfang des Arrays darstellt, änderst sich da nach dem ersten Durchlauf auch nichts mehr.
' schrieb:Was auch eigenartig ist, das Der Wert von 7 und 8 gleich sind. Bei Tausend Werten sollten sich die Werte auf jeden Fall unterscheiden. (ich hab mal den Mean punkt für punkt zum test reingemacht. Der zählt wenigstens nicht hoch, sondern tanzt wie gewünscht um einen Wert richtung Null
Auch das ist korrekt, das Probe 7 & 8 denselben Wert anzeigen. Du hast am Eingang "Initialize" ein TRUE angeschlossen. Schon mal die Hilfe zu dem VI durchgelesen? Initialize=TRUE bedeutet, das die Mittelwert-Bildung von vorne startet, und das jetzt bei JEDEM Durchlauf. Somit wird immer genau über einen Wert gemittelt, und somit sind Probe 7 & 8 identisch.
Gruß, Jens
P.S. &
' schrieb:Das mit dem Array in der Größe meiner einzulesender Werte finde ich eigentlich nicht soo geschickt, denn ich möchte ja eine Life-veränderung sehen können.
Live <> Life
Andererseits, wer kennt die hier noch, laut denen ist Live is Life...
Opus: Live is Life
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.
|
|
|
21.07.2010, 21:26
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
Hallo Jens,
"Andererseits, wer kennt die hier noch, laut denen ist Live is Life..."
Ach nö, die war'n damals schon schei**
|
|
|
21.07.2010, 22:03
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
Hallo, Gerd,
' schrieb:Ach nö, die war'n damals schon schei**
Über Geschmack kann man streiten.
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.
|
|
|
21.07.2010, 23:30
|
GerdW
______________
Beiträge: 17.469
Registriert seit: May 2009
LV2021
1995
DE_EN
10×××
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
Hallo Jens,
sobald ein Titel alle 2 Stunden im Radio dudelt, ist er scheiße. Und bei dem von dir genannten war das damals so...
Hat nichts mit Geschmack zu tun, eher mit (Über-)Sättigung!
|
|
|
22.07.2010, 07:20
|
Y-P
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
Beiträge: 12.612
Registriert seit: Feb 2006
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
|
Datenerfassung hängt teilweise auf einem Wert fest
Ich find's heut' noch geil.......
Gruß Markus
--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
|
|
|
| |