09.05.2007, 12:29
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Mittelwert die 100te
Ja, da wird der Mittelwert aus n aufeinanderfolgenden Werten berechnet...wieso denn nicht?
Im Mittelwert-VI ist das Standard-VI von LV (Mean.vi) drin...
Ich hab jetzt mal ne Typumwandlung gemacht, siehe Bild...Wenn du in das VI "to dynamic data type" mal reinschaust, siehst du was da passiert. Um das VI zu öffnen, musst du einen rechtsklick darauf machen und "open FrontPanel" aktivieren...aber vorsicht, das ist irreversibel...wenn du's wieder benötigst, musst du es neu laden!
Gruss
Achim
"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)
|
|
|
28.06.2007, 15:15
|
LABSepp
LVF-Grünschnabel
Beiträge: 11
Registriert seit: Apr 2007
7.00
-
kA
Deutschland
|
Mittelwert die 100te
Hallo,
bin auch mit dem Mitteln beschäftigt. Allerdings darf es bei mir kein Gleitender Wert sein.
Aus Datenmengegründe will ich n Werte puffern, diese gepufferten Werte mitteln und dann in eine Datei schreiben.
Wenn n =10 ist habe ich also 10 Mal weniger Werte als Vorher. Sonst würde meine Datei zu groß werden.
Habe ein Vi dazu gemacht das aber nen gleitenden Mittelwert macht.
Weiß einer Rat wie ich das hinbekomme, dass erst gemittelt und der gemittelte Wert ausgegeben wird wenn der Puffer mit n Zahlen gefüllt ist ?
Anbei Vi:
Tempmessung_puffern_mitteln_.vi (Größe: 36,18 KB / Downloads: 358)
erstellt mit LV Version 8.0
Danke für jede Hilfe und Anregung.
|
|
|
29.06.2007, 09:04
|
dc6xs
registered alien
Beiträge: 762
Registriert seit: Aug 2006
6.1,7.00
2006
kA
79106
Sonstige
|
Mittelwert die 100te
' schrieb:Hallo,
bin auch mit dem Mitteln beschäftigt. Allerdings darf es bei mir kein Gleitender Wert sein.
Aus Datenmengegründe will ich n Werte puffern, diese gepufferten Werte mitteln und dann in eine Datei schreiben.
Wenn n =10 ist habe ich also 10 Mal weniger Werte als Vorher. Sonst würde meine Datei zu groß werden.
Habe ein Vi dazu gemacht das aber nen gleitenden Mittelwert macht.
Weiß einer Rat wie ich das hinbekomme, dass erst gemittelt und der gemittelte Wert ausgegeben wird wenn der Puffer mit n Zahlen gefüllt ist ?
Anbei Vi:
[attachment=33865:Tempmess...mitteln_.vi]
erstellt mit LV Version 8.0
Danke für jede Hilfe und Anregung.
Hmm Ich würd das ganze vermutlich mit ner State-maschine machen. halt erst 10 Werte "sammeln" dann berechen und ausgeben..
Wobei es vielleicht einfachher wäre, die Abtastrate der Datenerfassung zur vermindern.
Um welche Datenmengenen handelt es sich denn bei Deinem Aufbau? MB/GB?
Gruß, Rob
PS: Auch hier noch mal den Hinweis, ein Screenshot zu dem geposteten VIs ermöglicht auch Usern mit anderen LV-Versionen zusehen was wie programmiert wurde..
Bitte Beachten:
Die obenstehenden Texteile können unter Umständen Sarkasmus und Ironie enthalten, für nicht erkannten Sarkasmus oder nicht erkannte Ironie wird keine Haftung übernommen.
N.B.:
"Multiple exclamation marks, " he went on, shaking his head, "are a sure sign of a deseased mind." - Terry Pratchett
|
|
|
02.07.2007, 12:53
|
LABSepp
LVF-Grünschnabel
Beiträge: 11
Registriert seit: Apr 2007
7.00
-
kA
Deutschland
|
Mittelwert die 100te
Hi,
danke für den Hinweis.
Wegen der Datenmenge: Es werden schon recht große Datenmengen. Wie groß kann ich im Moment noch icht sagen da das endgültige Format noch nicht fest steht.
Die Datenaufzeichnung geht über Tage!
Und die Datei soll auch noch in Excel auswertbar sein.
|
|
|
02.07.2007, 17:08
(Dieser Beitrag wurde zuletzt bearbeitet: 02.07.2007 17:14 von Lucki.)
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Mittelwert die 100te
Wenn Du dich entschließen könntest, auf diese Express-VIs und Express-Signals zu verzichten und die normalen DAQmx-Werkzeuge zur Datenerfassung verwenden würdest, dann ist die Mittelwertbildung das Einfachste was man sich überhaupt vorstellen kann.
Du liest aus dem DAQmx die Werte 10stückweise aus dem Buffer (das VI wartet, bis die 10Werte im Buffer sind und synchronisiert damit die Schleife), und schließt hinten das VI "Mittelwert" an.
Da die Datenerfassung bereits gepuffert erfolgt, ist es also - bei entsprechender Cleverness - nicht nötig, zum Zweck der Mittelwertbildung nochmal irgendwelche Extra- Zwischenspeicher, Schieberegister oder dergl. anzulegen.
|
|
|
03.07.2007, 16:40
|
LABSepp
LVF-Grünschnabel
Beiträge: 11
Registriert seit: Apr 2007
7.00
-
kA
Deutschland
|
Mittelwert die 100te
Danke für den Tip.
Kannte ich bisher noch nicht.
Wird der Puffer des DAQ automatisch alle zb: 10 Werte geleert nach dem diese dem Mittelwertbilder übergeben worden sind?
Und was für ein Eingangstyp hat DAQ?
Hofe ich mute euch nicht zu viel zu
Kurze Info über das Vi das ich machen will:
n Geräte( zB.:10 ) werden überwacht. Von jedem Gerät wird die Spannung gemessen. Außerdem wird die Temperatur gemessen, was abe nur für alle zusammen (Umgebungstemp) geschieht.
Als Datenerfassung dient ein Datenlogger.
Jedes Gerät hat einen Kanal zur Spannungsmessung. Die Temp wird nur an einem Kanal gemessen.
Die Spannung pro Gerät wird in einer For-Schleife gelesen die von einer While-Schleife (Hauptschleife) umgeben ist.
Nun soll ein Mal die Temp gemittelt werden und die Spannung der Geräte alle 10 Werte auch.
Der Temperaturmittelwert wird dann zusammen mit den Spannungsmittelwerten á Gerät mit "Format into String" in eine Datei geschrieben.
Den Mittelwert der Temperatur habe ich nun mit Case+Shiftregister und Abfrage ob die Anzahl schon erreicht ist, gelöst.
Das Shiftregister wird dann jedes mal gelöscht und von neuem gefüllt, gemittelt und wieder gelöscht usw.
Mit dem DAQ hätte ich auch gearbeitet, aber ich bin nicht hingekommen mit meinen double-Eingangsgrößen.
Mein nächstes, viel größeres Problem ist nun die Spannung á Gerät zu mitteln.
Mein Gedanke ist der die Spannungen zu einem 2-D Array zu fassen und dann spaltenweise wie in Excel zu mitteln.
Dabei ist jede Spalte mit den Werten eines Geräts gefüllt.
Leider weiß ich noch nicht wie ich das mache...
Am liebsten würde eine Lösung als eigens Vi machen und mehr Zeit haben. Morgen ist Termin. Oh je.
Wie siehst du es Lucki? Kann man da mit was anderem geschickt ran gehen?
Vielen Dank im Voraus.
Schönen Gruß
LABSepp
|
|
|
03.07.2007, 19:01
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
Mittelwert die 100te
' schrieb:Danke für den Tip.
Kannte ich bisher noch nicht.
Wird der Puffer des DAQ automatisch alle zb: 10 Werte geleert nach dem diese dem Mittelwertbilder übergeben worden sind?
Natürlich, mit dem Lesen sind die Werte aus dem Buffer raus
Zitat:Und was für ein Eingangstyp hat DAQ?
Weiß nicht wie Du das meinst. Das Beispiel bezieht sich auf kontinuierliche Datenerfassung über 1 Kanal.
Wenn es mehre Kanäle sind, kommt aus dem DAQmx Lesen ein zweidimensionales Array heraus, jede Zeile ist ein Kanal. Wenn Du über alle Kanäle den Mitelwert bilden willst, dan mußt Du an das DAQmx Lesen das Mittelwert-VI so anschließen:
|
|
|
04.07.2007, 08:07
|
LABSepp
LVF-Grünschnabel
Beiträge: 11
Registriert seit: Apr 2007
7.00
-
kA
Deutschland
|
Mittelwert die 100te
Hallo Lucki
Ich meine das aus meinem MessVi einzelne double-Werte rauskommen.
In der Reihenfolge Gerät 1 Gerät2 .... Gerät n . Gelesen bzw. ausgeben des Double Werts erfolgt in einer For-Schleife die n ( Anzahl Geräte) mal läuft während die Hauptschleife ein mal läuft.
Nun dachte ich mir die Werte unter einander zu schreiben in ein 2-D-Array, dieses an ein Mitelwert-Vi zu übergeben, damit es sauber getrennt ist. Nun steht jede Spalte für die Werte eines Gerätes. Jetzt spaltenweise mitteln, was ein 1-D-Array aus Mittelwerten ergibt. Dieses Array aus Mittelwerten will ich dann zusammen mit anderen Größen in eine Datei schreiben.
Mein Problem liegt dabei bei der Erstellung des Mittelwert-Arrays.
Danke
Gruß LABSepp
|
|
|
23.08.2007, 07:46
(Dieser Beitrag wurde zuletzt bearbeitet: 23.08.2007 07:46 von Newbie.)
|
Newbie
LVF-Grünschnabel
Beiträge: 18
Registriert seit: May 2007
8.2.1
2007
kA
Deutschland
|
Mittelwert die 100te
Guten Morgen!
Funktioniert das Vi auch wenn man mehrere Kanale gleichzeitig ausließt? Bei mir sind es bis zu vier Kanäle,d.h. zur Mittelwertsberechnung müssten ein 4*n - Messwerte großes Array aufgebaut werden, und irgendwie müsste über den Schleifenzähler in die richtige Spalte geschrieben werden.
Daher die Frage an die Experten: Eignet sich das VI:Gleitender Mittelwert dafür?
Gruß,Thiemo
|
|
|
23.08.2007, 08:06
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Mittelwert die 100te
' schrieb:Daher die Frage an die Experten: Eignet sich das VI:Gleitender Mittelwert dafür?
Meinst du das VI von mir? Klar, sollte gehen...musst es halt in ne Schleife packen, an die du dein Messwertearray (2D) anschließt...
Aber immer dran denken: Mittelwerte bilden ist sich selber zu bescheißen...ausserdem sind Arrayoperationen ziemlich rechenintensiv...
Gruss
Achim
"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)
|
|
|
| |