Hi Leute,
ich bekomme über den Profibus Daten in mein Labview Programm gesendet, jetzt möchte ich gern x-Werte(z.b. 200) in bestimmten Zeitabständen sammeln und daraus mit den Mittelwert bilden. Mit diesem gemittelten Wert will ich dann weiterarbeiten. Habt ihr einen Lösungsvorschlag für mein Problem.
Vielen Dank
tom
Hallo Makrus,
Dank dir für deine Antwort, jedoch habe ich noch einfrage kannst du mir dein VI mal ein bischen erklären:
Wo und wie du was einstellst, d.h. die Anzahl der Werte die gespeichert werden bzw. dei Zeit in welchen Abständen.
Danke
tom
schöne gute nacht....
ich hänge mich gleich an diese frage, weil meine anwendung grundsätzlich gleich ausschaut.
ich erfasse im 5 sekunden takt messwerte, welche nach einer bestimmten zeit zu einem mw verrechnet, und in eine datenbank geschrieben werden.
nun scheitere ich bereits bei den 'grundlegensten grundlagen' =(
ich habe ein array initialisiert, welches alle 5 sec beschrieben wird, daraus bilde ich den mw, setze das array wieder auf 0 und das ganze geht von vorne los (kontinuierliche messung)
nun wird das vorangegangene mw-ergebnis bei jedem erneuten durchlauf zum aktuellen addiert???? wahrscheinlich ists ne kleinigkeit, aber ich hab echt keien ahnung was labview da macht.
ich setzte die variable vor jedem erneuten durchlauf 0 - zeigt auch kurz null an - aber das ergebnis wird trotzdem addiert.
hat jemand eine ahnung woran das liegen könnte? ich bin leider wirklich sehr nackig auf dem gebiet der LV-programmierung.....
Bitte keine Beiträge im SMS-Stil (alles klein geschrieben). Das mögen wir hier im LVF nicht so gerne.
Gruß, Jens
P.S.: Für genauere Antworten -> VI hochladen oder zumindest Screenshot vom Blockdiagramm.
Sorry - Beitrag Nr. 1 und bereits negativ aufgefallen. Ich gelobe Besserung.
Ist mir ja fast ein bisschen peinlich, aber anbei das VI. Die Case Struktur ist übrigens eine meiner letzten verzweifelten Daten gewesen - wird man wohl üblicherweise nicht benötigen...
Die Einzelwerte ließ ich mir rausschreiben, um zu überprüfen, ob das Array auch wirklich richtig beschrieben wird, da es erst sichtbar wird, wenns vollständig befüllt ist.
Das Problem ist also wie bereits erwähnt, dass der MW immer wieder zum alten MW gerechnet wird und ich auch heut (mit klarem Kopf) noch nicht sehen kann, warum.
Würde mich sehr über Tipps freuen!
Danke und LG
(22.02.2011 13:50 )Lusilde schrieb: [ -> ]Das Problem ist also wie bereits erwähnt, dass der MW immer wieder zum alten MW gerechnet wird und ich auch heut (mit klarem Kopf) noch nicht sehen kann, warum.
Hallo,
das Schieberegister der letzten Schleife ist nicht mit einem Wert initalisiert. D.h. es hat bei jedem Programmstart den Wert von der letzten Berechnung. Einfach mit einer Konstante initialisieren und der Mittelwert wird nicht immer dazuaddiert
Beste Grüße,
NWO
*aufshirnklatsch*
und diese eine kleine Konstante hat mich gestern zur Verzweiflung getrieben!!!!
Herzlichen Dank für die schnelle Hilfe! =))
Hallo,
ich hoffe ich bin hier an der richtigen Stelle mit meinem Post.
Ich komme mir ziemlich dämlich vor und habe gerade ein Brett vor dem Kopf.
Ich komme einfach nicht weiter.
Ich benutze ein Programm, welches ständig die Spannung ausliest.
Nun möchte ich den Mittelwert bilden von mindestens 5 Messwerten und danach direkt mit dem Wert weiterarbeiten und der Wert in eine Bewegung umsetzen. Das sollte in ziemlich kurzer Zeit passieren, damit eine Verzögerung so gering wie möglich ist.
Ich komme nur einfach nicht weiter, leider auch nicht mit den Beispielen.
Kann mir jemand erklären wie ich das machen muss, damit es funktioniert?
Also am Ende möchte ich einen Wert, mit dem ich weiterarbeiten kann, und diese Mittellung soll immer wieder wiederholt werden, solange das Programm läuft.
Also 5 Messwerte, Mittelwert bilden, den in eine Bewegung umsetzten und dann wieder 5 Messwerte usw.
Anbei ein abgespecktes Programm, welches meinen Messwert (AIN0 Voltage)aufnimmt.
Ich hoffe mir kann jemand helfen,
Besten Dank Joana
Hallo Joana,
dazu musst du nun einen alten Thread kapern?
Zitat:Also 5 Messwerte, Mittelwert bilden, den in eine Bewegung umsetzten und dann wieder 5 Messwerte usw.
Hatte ich dir nicht auch schon einmal gesagt, dass man mit einem PAP anfängt - vor dem eigentlichen Programmieren?
Code:
REPEAT
FOR i = 0 to 4
get measurement
add new value to array
NEXT i
y = Mittelwert(array)
output y
UNTIL Stop OR error
So in etwa sieht das dann in LabVIEW aus:
[
attachment=51851]