Daten sammeln, später auslesen und bearbeiten - Druckversion +- LabVIEWForum.de (https://www.labviewforum.de) +-- Forum: LabVIEW (/Forum-LabVIEW) +--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein) +---- Forum: Signaldarstellung (/Forum-Signaldarstellung) +---- Thema: Daten sammeln, später auslesen und bearbeiten (/Thread-Daten-sammeln-spaeter-auslesen-und-bearbeiten) |
Daten sammeln, später auslesen und bearbeiten - Hasiman123 - 11.07.2017 15:13 Hallo, ich würde gerne meine empfangenen Messsignale (z.B. 10 Stück) in einem Array speichern, diese dann beliebig auswerten (z.B. den maximalen Wert des Arrays bestimmen) und mir ausgeben lassen und dann das Array vollständig "löschen" um meine nächsten 10 Signale zu empfangen. Also eine Art Zwischenspeicher für Daten. Als Beispiel habe ich etwas zusammengestellt, wo statt der Signale zufällige Werte ausgegeben werden. [attachment=57994] Nur hab ich das Problem, dass ich diese zufälligen Zahlen innerhalb der For-Schleife generiere... außerhalb würde es nicht funktionieren. Meine Signale kommen natürlich von außerhalb in die Schleife rein. Habe wirklich eine "Gedankenblockade" und meine soft-skills in Labview reichen nicht aus, um mir selbst weiterzuhelfen. RE: Daten sammeln, später auslesen und bearbeiten - GerdW - 11.07.2017 15:22 Hallo Hasiman, Zitat:Als Beispiel habe ich etwas zusammengestellt, wo statt der Signale zufällige Werte ausgegeben werden.Wozu die Multiplikation mit der Arraykonstanten mit einem Null-Element? Wozu die Feedbacknode außerhalb der Schleife? Du hast doch schon ein Schieberegister in der Schleife! Warum eine FOR-Loop, wenn das VI quasi unendlich laufen soll? Warum InsertIntoArray statt BuildArray? Warum nicht gleich ein Array korrekt initialisieren und dann ReplaceArraySubset nutzen? Fragen über Fragen… Zitat:Nur hab ich das Problem, dass ich diese zufälligen Zahlen innerhalb der For-Schleife generiere... außerhalb würde es nicht funktionieren. Meine Signale kommen natürlich von außerhalb in die Schleife rein.Ersetze die Zufallszahl durch ein Dequeue (oder WaitOnNotification) und schon kommen Werte von "außen" in die Schleife rein… Stichwort: "Producer-Consumer"! RE: Daten sammeln, später auslesen und bearbeiten - Hasiman123 - 11.07.2017 16:08 Hallo Gerd, danke erstmal für die Antwort. (11.07.2017 15:22 )GerdW schrieb:Zitat:Als Beispiel habe ich etwas zusammengestellt, wo statt der Signale zufällige Werte ausgegeben werden. Das habe ich leider nicht verstanden. da, wo ich das VI haben will wird mein Input ein 1D Array sein. Siehe: Gemischtes Signal filtern und aufteilen Mein Hauptziel ist, dass ich bsp. 10 Elemente sammel, die vollständig in einem Graphen sehe, diese gelöscht werden (Graph leer) und ich wieder eine bestimmte Zeit auf 10 Elemente warte. Erst nachdem meine 10 Elemente angekommen sind, will ich diese auslesen. RE: Daten sammeln, später auslesen und bearbeiten - Trinitatis - 11.07.2017 17:52 (11.07.2017 16:08 )Hasiman123 schrieb: Das habe ich leider nicht verstanden. da, wo ich das VI haben will wird mein Input ein 1D Array sein. Hallo, Daten zwischen 2 unabhängig voneinander laufenden Schleifen kommunizieren im Normalfall über Queues oder Melder (Palette Synchronisation). Wenn du dein Programm also nach dem "Producer-Consumer"-Prinzip aufbaust, dann kann die eine Schleife (Data-Aquisition) die Daten in die Queue schreiben - wenn du diese als Lossy-Queue definierst, kannst du sie auch auf 10 begrenzen - und die 2. Schleife liest aus dieser Queue die Daten wieder aus. Über die Fubnktion Queue-Status könntest du prüfen ob schon 10 Elemente enthalten sind. Oder du organisierst deine Queue nicht so, dass jeder Messwert einem Queueelement entspricht sondern immer 10 Stück, zb. in einem 1D-Array als EIN Queueelement. Dann brauchst du deine Queue nur mit sinnvollem TO auszulesen und hast immer 10 Werte, wenn ein neues Queueelement da ist. Gruß, Marko |