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 

Werte in Array schreiben- Mittelwert bilden und ausgeben



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!

25.08.2020, 12:07 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2020 12:11 von um0k.)
Beitrag #1

um0k Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Aug 2020

2018
2019
DE



Werte in Array schreiben- Mittelwert bilden und ausgeben
Hallo zusammen
ich bin ziemlich unerfahren was Labview angeht. Ich arbeite gerade an meiner Bachelorarbeit und versuche eine Regelung für eine Solarthermieanlage zu erstellen. Ein Teil dieser Regelung besteht darin, den IST-Volumenstrom zu erfassen und diesen ggf. an den SOLL-Volumenstrom anzupassen. Dafür werden die Ausgabesignale eines Durchflussmessers benötigt. Dieser Sensor gibt ein Rechtecksignal aus.
Die Datenerfassung ist über eine Messkarte USB-1608GX-2AO und den dazugehörigen ULX-Bausteinen in Labview realisiert.
Für die Berechnung des Volumenstroms ist es notwendig, die Frequenz des Rechtecksignals zu ermitteln. Dafür wurde ein Counterbaustein eingepflegt, welcher die Steigungen der Kurve in einem bestimmten Messbereich zählt.
Bild im Anhang.

Prinzipiell kann man meine Überlegung auch ohne Array aufbauen. Das Problem dabei liegt aber in der Messzeit. Je größer die Messzeit ist, desto langsamer wird die Regelung. Sie wird um diese Zeitdauer gelähmt. Dabei ist eine große Messzeit aber Vorteilhaft, da somit die Periodendauer genauer bestimmt werden kann. (Das Rechtecksignal is nicht immer periodisch)

Jetzt zu dem Array.
Die Messwerte sollen in die Zeilen 0-6 geschrieben und aus diesen dann der Mittelwert gebildet werden.
Realisieren wollte ich das ganze mit einer For-Schleife nur fehlt mir hier irgendeine Idee wie man das Ganze in Labview begrenzen kann.
In Vba könnte das ganze so aussehen:
Sub test()
Dim Wert As Double, start As Double, ende As Double, mittelwert As Double, zeilennr As Double
start = 1
ende = 6
zeilennr = 1
'Do While "Stopp" = false
For i = start To ende
Cells(zeilennr, 1) = Int((5 * Rnd) + 1)
zeilennr = zeilennr + 1
Next i
mittelwert = Application.Average(Range(Cells(1, 1), Cells(6, 1)))
Cells(1, 3) = mittelwert
'Loop
End Sub
Ich kann es nur nicht auf Labview übertragen. Dafür fehlt mir etwas. Wenn der Index mit I verbunden ist werden unendlich viele Arrayzeilen geschrieben. Es sollen aber nur Die Zeilen 0-6 beschrieben werden.
Im Anhang ist die Regelung nochmal abgebildet.
Vielen Dank schonmal
Mit freundlichen Grüßen


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2020, 13:26 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2020 13:31 von GerdW.)
Beitrag #2

GerdW Offline
______________
LVF-Team

Beiträge: 16.991
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Werte in Array schreiben- Mittelwert bilden und ausgeben
Hallo um0k,

herzlich willkommen im Forum!

Zitat:Die Messwerte sollen in die Zeilen 0-6 geschrieben und aus diesen dann der Mittelwert gebildet werden.
Realisieren wollte ich das ganze mit einer For-Schleife nur fehlt mir hier irgendeine Idee wie man das Ganze in Labview begrenzen kann.
Momentan ist die FOR-Loop sinnlos… Big Grin

Zitat:Ich kann es nur nicht auf Labview übertragen. Dafür fehlt mir etwas. Wenn der Index mit I verbunden ist werden unendlich viele Arrayzeilen geschrieben. Es sollen aber nur Die Zeilen 0-6 beschrieben werden.
Im Anhang ist die Regelung nochmal abgebildet.
Erstmal ein genereller Hinweis: Bilder kann man mit LabVIEW weder debuggen noch editieren. Wenn du dagegen ein VI anhängen würdest, bestünde die Chance, dass hier jemand für dich ein paar Änderungen im VI vornimmt…
Beim Vergleich mit VBA immer an die unterschiedliche Index-Zählweise bei Arrays denken. VBA ist in dieser Hinsicht "keine ordentliche Programmiersprache"! Wink

Dann zum Inhalt der FOR-Loop:
Wenn du in einem Array aus genau 7 Elementen (Index 0-6) immer ein Element ersetzen willst, solltest du nicht InsertIntoArray verwenden!

Tipp: Verwende doch eine PtByPt-DataQueue!

Weiterhin:
Für eine Mittelwertberechnung solltest du wirklich nicht auf ExpressVIs zurückgreifen. Hast du mal unter Mathematik->Statistik nachgeschaut?
Es ist auch in VBA nicht üblich, zwei unterschiedliche FP-Elemente (aka Variablen) identisch zu benennen ("Anzeige")!
"Besondere" Anzeigeelemente wie deine Charts bieten die Option, eine numerische Anzeige sichtbar zu machen. Dann benötigst du diese 2 "Anzeigen" erst gar nicht!
Versuche ExpressVIs zu meiden. Auch deine Verzögerungszeit kann man durch eine simple Wait(ms)-Funktion ersetzen. Vorteil: es ist selbst bei einem Bild des Blockdiagramms erkennbar, wie schnell die Schleife iterieren soll. Außerdem versteckt ein DDT-Draht den zugrundeliegenden Datentyp und führt zu sehr merkwürdigen Verdrahtungen… (Code-Dokumentation!)
Generell auf den StyleGuide (s. LabVIEW-Hilfe) achten: gerade Drähte erhöhen deutlich die Lesbarkeit eines Blockdiagramms! (Code-Dokumentation!)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2020, 13:30
Beitrag #3

Freddy Offline
Oldtimer
****


Beiträge: 728
Registriert seit: Aug 2008

2019, 2020, NXG 5.0
1996
DE

76275
Deutschland
RE: Werte in Array schreiben- Mittelwert bilden und ausgeben
Hallo umOK,

Ich würde die Eingrenzung des Arrays über Schieberegister machen.
Für den Mittelwert gibt es ein VI.

Gruß
Freddy


Angehängte Datei(en) Thumbnail(s)
   

Einführende Links zu LabVIEW, s. GerdWs Signatur.
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2020, 13:32
Beitrag #4

GerdW Offline
______________
LVF-Team

Beiträge: 16.991
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Werte in Array schreiben- Mittelwert bilden und ausgeben
Hallo Freddy,

statt Vergleich und Select-Node könnte man auch einfach die QR-Funktion verwenden…

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2020, 13:39
Beitrag #5

um0k Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Aug 2020

2018
2019
DE



RE: Werte in Array schreiben- Mittelwert bilden und ausgeben
Hallo GerdW,
erst einmal Danke für die schnelle Antwort.

Die For-Schleife war nur eine Idee... Ich dachte ich könnte damit das Array begrenzen. Dass es leider nicht so einfach geht, gerade auch wegen der Index-Zählweise in Labview, ist mir dann auch aufgefallen.
Vba habe ich nur benutzt um mich da an etwas zu versuchen Big Grin.

Wie schon gesagt bin ich echt unerfahren was Labview angeht. Deshalb weiß ich gerade auch nicht genau wie du das mit der PTbyPT-Dataqueue meinst. (PointbyPoint?? Big Grin).

Für die Mittelwert berechnung hatte ich auch vorher noch einen anderen Baustein. Ich denke jedoch, dass das keinen Unterschied gemacht hat.

Ich hänge hier mal das VI an damit evtl. jemand etwas ändern kann.
Vielen Dank


Angehängte Datei(en)
18.0 .vi  Regelung der Pumpendrehzahl test arrays.vi (Größe: 106,15 KB / Downloads: 59)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2020, 13:39
Beitrag #6

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.777
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Werte in Array schreiben- Mittelwert bilden und ausgeben

Akzeptierte Lösung

Falls einen das gesammelte Array nicht interessiert, dann geht es noch einfacher mit der "Mean PtByPt" Funktion:

   

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
25.08.2020, 14:04
Beitrag #7

um0k Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Aug 2020

2018
2019
DE



RE: Werte in Array schreiben- Mittelwert bilden und ausgeben
Hallo an alle,

Alles gute und zielführende Ideen.

Prinzipiell interessiert mich das Array nicht. Es ist aber für eine Überprüfung hilfreich. Einfach nur aus Interesse.

Wie genau arbeitet die PointbyPoint funktion? Wird nach dem 6. Wert der 1. überschrieben?

Vielen Dank an alle.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2020, 14:08 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2020 14:08 von GerdW.)
Beitrag #8

GerdW Offline
______________
LVF-Team

Beiträge: 16.991
Registriert seit: May 2009

11SP1, 17SP1 (ab und zu 20)
1995
DE_EN

10×××
Deutschland
RE: Werte in Array schreiben- Mittelwert bilden und ausgeben

Akzeptierte Lösung

Hallo um0k,

so könnte dein VI aussehen:
   

Zitat:Wie genau arbeitet die PointbyPoint funktion? Wird nach dem 6. Wert der 1. überschrieben?
Steht das nicht in der LabVIEW-Hilfe?
Kontexthilfe-Fenster öffnen & Maus auf die Funktion liefert die Kurzbeschreibung. Und einen Link zur längeren Beschreibung!
(Du kannst dir das auch selbst anschauen: einfach in die PtByPt-Funktion hineinschauen! Ist auch nur ein VI…)

Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2020, 14:08 (Dieser Beitrag wurde zuletzt bearbeitet: 25.08.2020 14:09 von jg.)
Beitrag #9

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.777
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
RE: Werte in Array schreiben- Mittelwert bilden und ausgeben
(25.08.2020 14:04 )um0k schrieb:  Wie genau arbeitet die PointbyPoint funktion? Wird nach dem 6. Wert der 1. überschrieben?
Ja, das kannst du dir auch anschauen - das VI ist in LabVIEW geschrieben und der Sourcecode ist einsehbar.

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
25.08.2020, 14:15
Beitrag #10

um0k Offline
LVF-Neueinsteiger


Beiträge: 4
Registriert seit: Aug 2020

2018
2019
DE



RE: Werte in Array schreiben- Mittelwert bilden und ausgeben
Ihr habt natürlich Recht!
Daran hätte ich auch denken können Big Grin.

Vielen Dank an euch!
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Aus 2D-Array jede x-te Zeile in weiteres 2D-Array schreiben P.J. 5 3.338 13.11.2020 09:05
Letzter Beitrag: GerdW
  2D Array Werte zuordnen Floorhahn 2 3.882 27.01.2020 13:27
Letzter Beitrag: Floorhahn
  Werte nacheinander in Array schreiben über ein Schieberegister BlackEagle 5 5.818 13.12.2019 13:40
Letzter Beitrag: GerdW
  Schleife Werte Ausgeben MarcelXX 4 2.021 30.08.2019 09:19
Letzter Beitrag: jg
  Werte aus Array als Anzeigeelement ares2013 11 4.731 30.04.2019 14:28
Letzter Beitrag: ares2013
  Aus einem Array festgelegte Werte zuweisen Kahlua 7 4.520 19.01.2018 13:42
Letzter Beitrag: Kahlua

Gehe zu: