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!
mir fällt für folgendes Problem keine wirklich sexy Lösung ein.
Während eines Versuchslaufes sollen Wertepaare bestehend aus Kraft / Weg dagestellt werden.
Dies habe ich über ein XY-Graph (siehe sc-shot) realisiert.
Das Problem besteht darin, dass die Versuche auch mal recht lange, Tage, Wochen, dauern könnten.
Somit wir mein Array immer größer und der XY-Graph pollt den Spaß auch noch.
Wohin das auf Dauer führt ist klar.
Ich habe die Anzal der Wertepaare schon massiv reduziert, indem ich nur bei der Überschreitung gewisser
Grenzen ein Paar anhänge. (siehe sc shot subVI).
Der Traum wäre natürlich nur den einen neuen Punkt zu refreshen.
erstmal Danke für deine Antwort. Das wollte ich ja nun gar nicht hören.
Die ersten Werte des Versuches möche ich schon weiterhin darstellen, sonst kommen da komische Fragen.
Somit fällt eine lossy queue leider weg.
Aktuell habe ich nun eine Funktion hinterlegt, die mit ansteigender Größe des MW-Arrays die Rasterung immer gröber
werden lässt. Nicht schön, aber sicher auch wirkungsvoll.
- Immer, wenn der Ringpuffer voll ist, per InvokeNode ein Bild des XY-Graph erstellen und abspeichern.
- Daten in einer DB speichern und nur auf Anfrage darstellen.
- Es gibt eine etwas ältere LLB bei ni.com: gigalabview, mit der konnte man relativ gut große Datensätze für eine XY-Darstellung reduzieren. Das funktioniert natürlich nur, solange dein gesamter Datensatz in den Speicher passt. Da ist die Frage, wieviele Kraft/Weg-Paare da bei deinen wochenlangen Versuchen so zusammenkommen. Das musst du mit dir selber ausmachen.
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!
- Anstatt einfach nur neue Werte ins Array zu packen, wenn sich der Wert ändert, könnte man die Werte auch "klassifizieren": immer wenn man z.B. 1000 Punkte im Array hat, fasst man dicht beieinander liegende Punkte (Punktwolken) zu jeweils einem Mittelwerts-Punkt zusammen…
- Wenn die Punkte mehr oder weniger auf einer Linie liegen: Linie durch Interpolation bestimmen und zeichnen und nur wenige Ausreißer-Punkte zusätzlich zeichnen.
- Möglichst kleine Punkte im Graph malen (Pointstyle).
(21.07.2016 15:36 )GerdW schrieb: - Anstatt einfach nur neue Werte ins Array zu packen, wenn sich der Wert ändert, könnte man die Werte auch "klassifizieren": immer wenn man z.B. 1000 Punkte im Array hat, fasst man dicht beieinander liegende Punkte (Punktwolken) zu jeweils einem Mittelwerts-Punkt zusammen…
- Wenn die Punkte mehr oder weniger auf einer Linie liegen: Linie durch Interpolation bestimmen und zeichnen und nur wenige Ausreißer-Punkte zusätzlich zeichnen.
Sowas in der Art erledigt das gigalabview...
Noch ne Idee: Autoskalierung nach Möglichkeit deaktiveren, das kostet Rechenzeit.
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!
(21.07.2016 15:36 )GerdW schrieb: - Anstatt einfach nur neue Werte ins Array zu packen, wenn sich der Wert ändert, könnte man die Werte auch "klassifizieren": immer wenn man z.B. 1000 Punkte im Array hat, fasst man dicht beieinander liegende Punkte (Punktwolken) zu jeweils einem Mittelwerts-Punkt zusammen…
- Wenn die Punkte mehr oder weniger auf einer Linie liegen: Linie durch Interpolation bestimmen und zeichnen und nur wenige Ausreißer-Punkte zusätzlich zeichnen.
Ok, klingt gut. Behalte ich sicher im Hinterkopf.
Zitat:- Möglichst kleine Punkte im Graph malen (Pointstyle).
Hier musss ich mir mal überlegen ob ich nur Punkte zeichne oder die Verbindungslinien wirklich brauche. Das muss die Zukunft zeigen.
Aber daran hatte ich jetzt echt nicht gedacht, klar das braucht CPU.
Das willst du sicher nicht hören...aber die Leute müssen einfach mal kapieren, das "unendlich" keine vernünftige Option ist! Alles hat ein Ende...nur die Wurst hat zwei! Deine SW soll ja theoretisch zeitlich unbegrenzt funktionieren...das muss doch auch der dümmste einsehen, dass man das nicht darstellen kann.
Was interessiert denn, was vor x Wochen passiert ist? Wenn schon was "interessantes" auftaucht...dann kann man dafür z.B. Grenzen setzen und wenn diese verletzt werden, speichert man den betreffenden Datenausschnitt inkl. ein Stück vorher/nachher separat ab, und kann ihn dann auch mal in Ruhe analysieren. Das kann man ja im laufenden Graph sowieso nicht machen!
Oder man kann Trendlinien generieren, oder Mittelwert/Abweichung/Varianz anzeigen.
"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)
22.07.2016, 06:12 (Dieser Beitrag wurde zuletzt bearbeitet: 22.07.2016 06:17 von RMR.)
(21.07.2016 16:01 )Achim schrieb: Das willst du sicher nicht hören...aber die Leute müssen einfach mal kapieren, das "unendlich" keine vernünftige Option ist! ......................das muss doch auch der dümmste einsehen, dass man das nicht darstellen kann.
Doch mag ich schon hören. Den "Dümmsten" gebe ich das aber so besser nicht weiter.
Zitat:Was interessiert denn, was vor x Wochen passiert ist? Wenn schon was "interessantes" auftaucht...dann kann man dafür z.B. Grenzen setzen und wenn diese verletzt werden, speichert man den betreffenden Datenausschnitt inkl. ein Stück vorher/nachher separat ab, und kann ihn dann auch mal in Ruhe analysieren. Das kann man ja im laufenden Graph sowieso nicht machen!
Das Problem an der Sache ist, dass der Plot gewisse Ähnlichkeiten mit den Bildchen aus den Lehrbüchern haben muss, deswegen kann ich historische Daten nicht einfach vernachlässigen.
Die Daten nach gesetzten Regeln wegzuschreiben ist nicht das Problem, das mache ich schon so.
Die "Vergröberungsfunktion" mit steigender Arraygröße scheint zumindest recht deutlich Daten zu reduzieren. Wohin hier die Reise geht werden erst die nächsten Tage zeigen.
Ich werde auf jeden Fall noch die Tipps von HIER einarbeiten.
Sollen Versuche laufen die "extrem" lange dauern, muss eben auf die XY-Plots verzichtet werden.