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 

Datenerfassung hängt teilweise auf einem Wert fest



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!

08.07.2010, 19:59
Beitrag #1

nick Offline
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 liebes Labvieforum,

Ich habe eine Erneute Frage zu einem Vi, welches schon vorher in einem anderen thread behandelt wurde. Da es sich aber um eine komplett andere Frage handelt hab ich gedacht, da passt ein neues Thema. Link zum anderen Thema: http://www.LabVIEWforum.de/index.php?showt...mp;#entry100580


Meine aktuelle Problem ist jehner Art, dass die eingelesenen Werte sich auf einen Wert einfrieren. in seltenen Fällen funktioniert es. Meist beim ersten öffnen, aber es sieht fast so aus, als ob sich ein Buffer vollschreibt und ab dann nur noch den letzten Wert ausgibt. Teilweise hat es auch fuktioniert, wenn ich einen anderen Eingang gewählt habe. Aber auch nciht immer. (ich verwende eine Bnc-2111 Box und eine Pci -6... karte)
Mir ist nur schleierhaft welcher Buffer das sein sollte ?? Warscheinlich ist es ein anderes Problem. Ich hab das ganze auch schon in eine Sequenzstruktur gepackt. Ich dachte kurz, dass vorne keine neuen Werte mehr eingelesen wurden. Aber in seltenen Fällen funktioniert es ja ???
Es sieht so aus, als ob die Werte direkt hinter Daqmx-lesen hängen. Ud selbst ohne Anfüttern von Werten ist immer ein gewisses Potenzial auf den Bnc buchsen, so dass die Werte um 0 schwanken müssten.

Ich Danke euch schon im Vorraus. Ich wüsste nicht wohin ohne das LV-Forum
Beste Grüße Nick

Lv09_img2
Sonstige .vi  Auslenkung_ermitteln3.0.vi (Größe: 43,87 KB / Downloads: 221)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.07.2010, 20:15
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

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
Schau' mal Deine CPU-Auslastung an, wenn Du das Programm laufen lässt. Wink
Was siehst Du da?

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.07.2010, 21:51 (Dieser Beitrag wurde zuletzt bearbeitet: 08.07.2010 21:51 von GerdW.)
Beitrag #3

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Datenerfassung hängt teilweise auf einem Wert fest
Hallo Nick,

ich hab mal ein paar unsinnige Konstrukte entfernt... (Nicht das das etwas mit deinem Problem zu tun hätte.)

Du liest jeweils einen einzelnen Messwert vom DAQ. Daraus machst du dann mittels "convert from dynamic data" (!, als wenn's kein BuildArray gäbe) ein Array mit einem einzigen Element. Von diesem Array wiederum berechnest du den Mittelwert???

Außerdem solltest du mal dein Profil ergänzen, wenn du jetzt mit LV2009 arbeitest...

Lv09_img2


Angehängte Datei(en)
Sonstige .vi  Auslenkung_ermitteln3.0.vi (Größe: 27,56 KB / Downloads: 245)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2010, 06:23
Beitrag #4

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

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
... und das 2D-String-Array im Bsp. von Gerd solltest Du noch initialisieren (links beim Schieberegister eine leere 2D-String-Array Konstante anschließen).
Außerdem würde ich eine Zeitverzögerung in meine Schleife einbauen (z.B. 1 ms, 10 ms,...).
Das Speichern würde ich auch nicht bei jedem Schleifendurchlauf machen.

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
10.07.2010, 16:10
Beitrag #5

nick Offline
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 eure Anregungen,
ich habe versucht sie umzusetzten. Klar, das mit der Mittelwertbildung aus einem Wert war absoluter Schwachsinn. Ich habe das jetzt mit einer queue gelöst.Aber wie kann ich denn er queue sagen ,dass sie, wenn sie voll ist die Werte ausgibt und sich danach wieder zB. 10 neue holt?? bislang hört die Schleife nicht mehr auf sich Werte zu holen, obwohl die queue voll ist ????

Hypotetisch ( noch bin ich ja nicht soweit) : Aber wenn Sie voll ist und die Werte weitergereicht sind, kann sich die queue dann neue Werte holen? die äußere Schleife liefert ja weiterhin Werte. -> Ziel ist ja Mittelwert der z.B. letzten 10 Werte zu berechnen bei laufend Nachschub.


Das mit dem feststehende Wert ist leider weiterhin das Problem. Am Cpu liegt es leider nicht (oder besser: zum Glück nicht) die ist max 70% ausgelastet (einer von 4 Kernen)
Wenn noch jemand eine Idee hat wäre ich überglücklich.

Gruß und besten Dank euer Nick

Lv09_img2
Sonstige .vi  Auslenkung_ermitteln3.0.2vi.vi (Größe: 32,64 KB / Downloads: 193)


Angehängte Datei(en)
Sonstige .vi  Auslenkung_ermitteln3.0.2vi.vi (Größe: 32,05 KB / Downloads: 179)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
11.07.2010, 13:34
Beitrag #6

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Datenerfassung hängt teilweise auf einem Wert fest
Hallo Nick,

wie wäre es denn mit einem richtigen Ringpuffer - statt in jedem Schleifendurchlauf eine neue Queue anzulegen, immer den gleichen Wert reinzuschreiben, von den immer gleichen Werten einen Mittelwert zu berechnen (!?), und die Queue dann wieder zu zerstören???

Nimm einfach ein Shiftregister mit einem Array fester Größe...

"Ich habe das jetzt mit einer queue gelöst."
"Gelöst" würde ich das nicht nennen...Smile

"Aber wie kann ich denn er queue sagen ,dass sie, wenn sie voll ist die Werte ausgibt und sich danach wieder zB. 10 neue holt?? bislang hört die Schleife nicht mehr auf sich Werte zu holen, obwohl die queue voll ist ????"

Du hast nicht so recht verstanden, wie eine Queue funktioniert. Eine Queue "holt" sich keine neuen Werte, man schreibt welche hinein. Um eine Queue zu leeren, muss man aus ihr Werte herausholen - und d.h. nicht per QueueStatus hineinzugucken, sondern per DequeueElement! Eine Queue ist wie ein Wasserschlauch: ein einem Ende kommt Wasser von einer Pumpe rein, man kann den Druck kontrollieren (=Queue Status) und am anderen Ende kommt das Wasser raus (=Dequeue)...

Lv09_img2


Angehängte Datei(en)
Sonstige .vi  Auslenkung_ermitteln3.0.2vi.vi (Größe: 29,53 KB / Downloads: 166)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2010, 15:08 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 15:17 von nick.)
Beitrag #7

nick Offline
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
ja, dass mit dem queue war nicht ganz richtig*hust*Rolleyes, Danke für deine Queue Erläuterung.
ich hab das erstellen und auflösen der queue jetzt außerhalb des loobs verband und das auslesen über die queue löschen gemacht. ich hoffe das passt so besser. Aber das größte Problem ist, dass der innere Loop die queue immer mit dem selben Wert vollschreibt. entferne ich die innere Loop (die queue loop) dann wird der Wert direkt weitergereicht, und ich bilde ebenfalls den Mittelwert von nur einem Wert....Wall ich hab schon einiges versucht, leider hat sich immer das gleiche Problem ergeben.

Bei dem Ringpuffer den du netterweise erstellt hast meine ich, dass das Problem genauso auftritt. Der erste Wert wird direkt weitergegeben. (Ziel ist es bei einer Einstellung der Spannung eine "live" Veränderung über die letzten 10 gemittelten Ergebnisse zu sehen)

(edit) Moment, nach wenigen sekunden zeigt der queue Inhalt Null an, obwohl im highlight-modus deutlich zu ssehen ist, dass immer neue Werte in den queue-Loop aufgenommen werden ??? ich bin am verzweifeln.

Aber das Hauptproblem ist immer noch dieser feststehende Wert. ist das gelöst, kann ich auch besser sehen welche Werte in der queue/ringpuffer... gespeichert werden. Denn im moment ist es eh immer der gleiche. Da ist es schwierig zu sagen ob was funktioniert oder nicht.

Hier im Bild kann man sehen, dass der Wert nach dem Einlesen auf 5,21 hängenbleibt. Labview selbst sieht das aber nicht als fehler. Hab ich beim Einlesen vielleicht mist gebaut?? ich hab auf Anhieb keinen Fehler sehen können. (die eigenen Fehler übersieht man ja eh sehr gerneAngel_not)
   

Vielen Dank nochmal, dass ihr euch soviel Zeit für mein Problem nehmt.
beste Grüße nick

Lv09_img2
Sonstige .vi  Auslenkung_ermitteln3.0.2vi.vi (Größe: 36,03 KB / Downloads: 192)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2010, 15:16 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 15:26 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 17.412
Registriert seit: May 2009

LV2021
1995
DE_EN

10×××
Deutschland
Datenerfassung hängt teilweise auf einem Wert fest
Hallo Nick,

sehe ich das richtig:
Du gibst 1000 Samples pro Kanal und ein eine Samplerate von 1000S/s vor - und dann liest du immer einen einzelnen Wert nach dem anderen?
Ich könnte mir vorstellen, dass du dich ganz langsam durch einen riesigen DAQ-Buffer durcharbeitest...

Jetzt noch zu deinem VI:
Du scheinst unbedingt eine Queue als Ringbuffer benutzen zu wollen - dann aber auch richtig!
Du definierst eine Queue mit begrenzter Länge. Dann schreibst du Werte hinein - aber lossy! Dann brauchst du nur den aktuellen Inhalt lesen, die Queue übernimmt das Rauswerfen alter Werte von allein (dank lossy!).

Außerdem hast du das mit dem Dataflow noch nicht so richtig realisiert. Du hattest dein Enqueue in eine Schleife gepackt - und mit dem zuletzt gelieferten Wert vom DAQRead verbunden. Innerhalb der Schleife ändert sich dieser Wert aber nicht mehr - und du wunderst dich, warum immer der gleiche Wert in der Queue landetSmile

Lv09_img2


Angehängte Datei(en)
Sonstige .vi  Auslenkung_ermitteln3.0.2vi.vi (Größe: 34,5 KB / Downloads: 165)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2010, 15:20
Beitrag #9

nick Offline
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
hoppla, das war noch falsch eingestellt. Ändert aber leider nichts am Werteproblem. Ich hab das schon mit 10 Samples und weniger versucht.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
12.07.2010, 16:05 (Dieser Beitrag wurde zuletzt bearbeitet: 12.07.2010 16:17 von nick.)
Beitrag #10

nick Offline
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
neinBlush , ich bin gar nicht so fixiert auf das queue, ich hatte nur schon ne ecke Zeit da reingesteckt und wollte das endlich "besiegen":fight:.
Aber ich meine ich hab s immer noch nicht so richtig verstanden. Es sieht so aus als ob in die queue nur ein Wert reingeschrieben wird, der dann direkt ausgelesen wird.
Ich möchte aber doch so gerne eine beliebeige Anzahl vorspeichern, um sie dann gemeinsam zu bearbeiten. Kann man nicht einem Array/queue/loop/ringpuffer ... sagen warte erstmal soundsoviele Werte ab und gib sie dann weiter. Oder wird das durch die Größe bestimmt?
Deswegen hab ich auch immer diese loop benutzt ich hab gehofft dem loop sagen zu können hol dir erstmal 5 Werte und schreib die in die queue in der Loop. hat aber wie du weißt nicht funktioniert.

Danke für deine hilfe Gerd, ich hätt ohne dich schon min 10 Herzinfakte
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  USB 6009 Range fest vorgeben Hachiko 7 5.754 11.01.2022 21:13
Letzter Beitrag: jg
  Datenerfassung cDAQ + NI9203 keine synchrone Datenerfassung dieseldunst 5 5.636 24.06.2016 14:49
Letzter Beitrag: jg
  VI zu langsam bzw. hängt sich auf BeutelSeb 5 4.155 14.06.2016 17:09
Letzter Beitrag: jg
  Messprogramm hängt sich auf AnnaGT 10 6.917 19.12.2012 16:24
Letzter Beitrag: GerdW
  VI's teilweise nicht verfügbar M@rRy 9 6.185 10.10.2011 13:15
Letzter Beitrag: M@rRy
  Beim Beenden des Programmes hängt sich LV auf chrigi28 4 4.395 02.09.2011 14:17
Letzter Beitrag: chrigi28

Gehe zu: