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 

Messwerte in 3D-Array sichern?



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.06.2009, 08:04
Beitrag #1

schroepel Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 68
Registriert seit: Mar 2008

8.5
2008
de

09113
Deutschland
Messwerte in 3D-Array sichern?
Hallo,

ich nehme bei einer Messung zwei verschiedenene Spannungswerte mit 15 KHz aus zwei Kanälen auf.
Die Messung dauert ca. 3 ms und soll nach einer Pause von ca. 1 ms wiederholt werden.
Der Start und Stop für die Einzelmessungen wird durch ein externes Signal (High & Low) später vorgegeben.
Mein Problem ist nun, ich bekomme zwar die Werte für die Einzelmessungen ausgegeben,
aber wenn die nächste Messung durchgeführt wird, sind die alten Werte weg.
Also wollte ich die Werte aus den Messungen (2D-Array) nacheinander in ein 3D-Array ablegen um die Werte gut unterscheiden zu können.
Allerdings bekomme ich das irgendwie nicht ganz hin. Und außerdem befürchte ich, wenn ich Schieberegister einsetze,
wird das Programm zu langsam.

Zum Testen hab ich zwei verschiedene Möglichkeiten mit denen ich rumprobiert habe.
Allerdings hab ich da noch ein paar Fragen dazu.
Bei dem ersten Bespiel habe ich mit Schieberegistern gearbeitet, aber irgendwie kommt es mir vor als wäre das zu langsam.
Da es aber kaum möglich ich ist 3 ms mit dem Button zu erzeugen, hätte ich erwartet das wesentlich mehr Werte ausgelesen werden.
Hab ich da irgendeinen Denkfehler?

Bei dem zweiten Bespiel habe ich die Schieberegister weggelassen, wodurch es mir wesentlich schneller erscheint.
Das komische ist aber, ich habe dort versucht das Signal mit 3 ms Dauer zu simulieren und die Messung läuft aber weiter,
bzw. habe ich zu viele Werte. Denn normalerweise sollten in den 3 ms ja nur 45 Messwerte pro Kanal anfallen. Oder?

Welche Variante ist denn nun die bessere, oder sind beide nich so ganz richtig und wie kann ich denn die Werte aller Messungen in der kurzen Zeit sichern?Denknach
Hier mal die beiden Versionen:


Sonstige .vi  Auslese_PSD.vi (Größe: 58,74 KB / Downloads: 252)


Sonstige .vi  Auslese_PSD_2.vi (Größe: 47,1 KB / Downloads: 243)

Lv85_img

Könnt ihr mir bitte helfen, vielen Dank schon mal im Voraus.



Gruß Marco
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
08.06.2009, 13:23
Beitrag #2

abrissbirne Offline
LVF-Stammgast
***


Beiträge: 480
Registriert seit: Aug 2007

LV2009, LV2010
2007
EN

66123
Deutschland
Messwerte in 3D-Array sichern?
' schrieb:Mein Problem ist nun, ich bekomme zwar die Werte für die Einzelmessungen ausgegeben,
aber wenn die nächste Messung durchgeführt wird, sind die alten Werte weg.
Also wollte ich die Werte aus den Messungen (2D-Array) nacheinander in ein 3D-Array ablegen um die Werte gut unterscheiden zu können.
Allerdings bekomme ich das irgendwie nicht ganz hin. Und außerdem befürchte ich, wenn ich Schieberegister einsetze,
wird das Programm zu langsam.
Leider hatte ich keine Zeit mir deine VI's anzusehen, aber grundsätzlich ist der Verwenund von 3D Arrays nicht zu empfehlen. Ich selbst hatte es zu meinen LabVIEW Anfängen auch damit versucht. Mit dem Ergebnis das der RAM hochläuft bis LV abstürzt. Also besser 2D-Array, oder am besten 1D Arrays zur Datenablage verwenden. Wie die Daten abgelegt werden sollte im ersten Moment ja mal egal sein. Zur Darstellung wirst du dann vermutlich 2D Arrays benötigen.
Mach es doch so:
Datenaufnahme läuft (schreib daten in ein 1D Array) --> schiebe diese Daten in eine Queue
In einer zweiten Schleife kannst du die Daten aus der Queue auslesen und bspw. in einer temporären Datei ablegen.

--> dieses Prinzip = Producer-Consumer-Architektur
Such einfach mal hier im Forum oder auf ni.com danach.

Schieberegister sind im Übrigen immer gut und auch nicht langsam!

Gruß, abrissbirne
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.06.2009, 18:54 (Dieser Beitrag wurde zuletzt bearbeitet: 08.06.2009 18:56 von schrotti.)
Beitrag #3

schrotti Offline
LVF-Freak
****


Beiträge: 842
Registriert seit: Feb 2008

2009 - 2011
2006
kA

70180
Deutschland
Messwerte in 3D-Array sichern?
3D ist hier vollkommen überflüssig. Du erfasst über DAQ pro Schleifendurchlauf genau 2 Messwerte von 2 Kanälen. Die ganzen Arrayoperationen danach kannst du dir sparen. Nimm einfach das 1D-Array, wie du es von DAQ bekommst und hänge es an deine bereits erfassten Werte dran.
Oder noch besser: Erfasse nicht Einzelwerte sondern mehrere Werte pro Kanal (Samples pro Kanal). Und zwar so, dass die Schleife nur noch alle 200-1000ms durchläuft.
Weiterhin hast du eine Abtastrate von 15000 Hz eingestellt, willst aber nur 333 Hz Messdaten. Warum stellst dus also nicht gleicht so ein?
Wenn du Werte als Double erfasst werden sie nicht genauer, wenn du sie als Extended darstellts. Vergeudet nur Speicher und Rechenzeit für die Typumwandlung.
Und versuche ohne lokale Variablen und ohne Eigenschaftsknoten auszukommen. Es funktioniert!

Ansonten ist hier natürlich, wie von abrissbirne schon gesagt, die Verwendung der Producer-Consumer-Architektur angeraten.

Gruß Julius
Empfehlungen: expressionflow, LavaG , mooregoodideas, OpenG, JKI Blog
Tipp
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
  Projekte -Stand sichern und neues VI dazu frankie 2 2.327 22.11.2023 08:14
Letzter Beitrag: GerdW
  Messwerte in Array speichern lola2014 12 12.262 18.07.2014 11:16
Letzter Beitrag: lola2014
  Messwerte bei Ereignis in Array schreiben js89 14 11.510 18.08.2013 15:57
Letzter Beitrag: Trinitatis
  Messwerte "syncronisieren" mit 1-D-Array-interpolieren SirPete 1 3.306 09.10.2012 06:08
Letzter Beitrag: Achim
  Messwerte aus For-Schleife in ein Array schreiben icebox 3 4.592 09.07.2009 19:51
Letzter Beitrag: schrotti
  Messwerte in 3D-Array speichern LabieQuintus 1 7.456 29.06.2006 09:36
Letzter Beitrag: LabieQuintus

Gehe zu: