Zitat:was der langsame Zugriff für einen Zeitversatz erzeugt.
Es ist nicht unbedingt ein "Zeitversatz", es geht hier eher um CPU-Last...
Oke. Verstanden.
Zitat:Da sind wir dann bei der nächsten Einschränkung des Charts: die fest vorgegebene Historienlänge! Diese kann nur per Rechtsklick auf den Chart geändert werden, d.h. sie wird statisch in der IDE festgelegt...
Voreinstellung sind 1024 Werte. Du stellst den Faktor auf 0.001, damit ergibt sich eine X-Achse von 0…1.024. Mehr ist nicht sinnvoll, da der Chart nunmal nicht mehr Werte (aufgrund der begrenzten Historie) anzeigen kann.
Gehen wir davon aus ich möchte zwei Fliegen mit einer Klappe schlagen und die Historie sowie den Chart entfernen. Ich bekomme die Werte aus dem SubVI und gebe sie dann im HauptVI im Graph aus. Wie bekomme ich die Werte dann in meine anderen Cases? Wie ist der Sachverhalt wenn ich das mit Schieberegistern mache? Kommt es da zu Problemen weil ich ja nachdem die Werte in die Messwertdatei geschrieben wurden wieder zurückspringe und neue Werte in den Schieberegister lege? Die alten Messwerte sollten dann ja aus dem Schieberegister entfernt sein.... Sonst speichere ich die alten Werte ja auch wieder in meine Messdatei.
Vielen Dank
Gruß Samuel
Hallo samuel,
wenn du wirklich auf Graphen umsteigen willst, musst du die Daten selbst in einem Schieberegister puffern. Z.B. wie hier angedeutet:
[
attachment=47380]
Du musst dann nur aufpassen, dass du dir den Speicher nicht vollmüllst, wenn du sehr lange Daten ansammelst.
Dabei sollte man auch bedenken, dass es nicht sinnvoll ist, 10tausende Datenpunkte auf einem nur 800 Pixel breiten Graph darzustellen...
Bevor ich deine Antwort gelesen hatte, habe ich versucht eine Verarbeitung über Queues zu erstellen. Die Daten werden im Messen Case in die Queue geschrieben und danach im Min Max Case sowie im Speichern Case abgerufen. Im Min Max Case schreibe ich die Daten direkt nachdem ich Sie ausgelesen habe wieder, damit diese auch beim schreiben in die Messdatei zur Verfügung stehen.
Sollte soweit auch funktionieren. Gibt es dazu irgendwelche Einwände deinerseits?
Gruß Samuel
Das Programm hat einwandfrei funktioniert aber irgendwas muss ich geänder haben.... Auf jeden Fall sind die Messwerte in den Graphen jetzt nur noch bis 1. Egal wie lange ich das Programm laufen lasse. Es hat definintiv auch noch nach meiner Änderung mit der Queue funktioniert.Die Messwerte ändern sich zwar pro Messdatenaufzeichnung aber es aktualisiert sich immer von 0 bis 1 Sekunde. Ich werd noch verrückt.....
Irgend einen Tipp diesbezüglich?
Gruß Samuel
Hallo Samuel,
ein Graph zeigt immer nur das an, was er an Daten bekommt. Er hat keine Historie wie ein Chart. Wenn du also mehr als 1s anzeigen willst, musst du irgendwo Daten sammeln...
Zur Queue:
Ja, das geht auch.
Obwohl ich es in diesem Beispiel für Overkill halte: warum eine extra Queue bemühen, wenn man auch ein Schieberegister nehmen kann?
Was würdest du mir als Speichermethode vorschlagen? Ich komm gerade nicht darauf wie ich das anstellen soll. Das Case in dem die Daten in den Graph geschrieben werden ist auf dem angehängten Screenshot dargestellt.
Danke dir
Gruß Samuel
Hallo Samuel,
das hatte ich doch in Beitrag #12 schon einmal skizziert...
Habe ich versucht leider mit dem selben Ergebnis wie davor..... Ich denke mal ich mache da einen groben Fehler. Bild liegt bei.
Es sieht so aus als würde er aus den 8x1000 Messwerten meines 2D-Arrays im zweiten Durchlauf 16x1000 ist das so korrekt?
Danke
Gruß Samuel
Screenshot zu Beitrag 18
Hallo Samuel,
Zitat:Ich denke mal ich mache da einen groben Fehler. Bild liegt bei.
Grober Fehler: Du hast vergessen, dein BD aufzuräumen. So ist leider nicht zu erkennen, welcher Draht wo angeschlossen ist...
Wo wir schon beim Aufräumen sind: es ist äußerst "unüblich", den ErrorOut oben rechts anzuschließen (wie beim VI "Messen"). Es gitb einen Styleguide, der sowas beschreibt. Hast du schon mal eine Funktion von NI gesehen, die die Error-Anschlüsse oben hat?
Zitat:Es sieht so aus als würde er aus den 8x1000 Messwerten meines 2D-Arrays im zweiten Durchlauf 16x1000 ist das so korrekt?
Mal übelegen: du hast 8 Signale, die jeweils 1000 Samples liefern. Die willst du plotten. Im zweiten Messdurchlauf erhälst du neue Samples und baust damit ein Array, welches nun 16 Signale mit jeweils 1000 Samples enthält. Eigentlich willst du aber 8 Signale mit nun 2000 Samples plotten...
Zurück zur Frage: Ist das so korrekt?
Guten Morgen,
Zitat: Hast du schon mal eine Funktion von NI gesehen, die die Error-Anschlüsse oben hat?
Nein. Habe einen Screenshot angehängt auf dem der Dataflow erkennbar sein sollte.
Zitat:Mal übelegen: du hast 8 Signale, die jeweils 1000 Samples liefern. Die willst du plotten. Im zweiten Messdurchlauf erhälst du neue Samples und baust damit ein Array, welches nun 16 Signale mit jeweils 1000 Samples enthält. Eigentlich willst du aber 8 Signale mit nun 2000 Samples plotten...
Zurück zur Frage: Ist das so korrekt?
Da es nicht korrekt ist wäre ich über einen Lösungsansatz sehr erfreut.
Gruß Samuel