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!
Mit der Wartezeit 10 ms nähere ich mich deinen ca. 100 Hz. Ich hab es jetzt mal der Einfachheit halber als XY-Graph dargestellt. Der Fall "1, Default" in der Case-Struktur macht natürlich nichts.
Gezeigtes Bsp braucht nur wenige Prozent Prozessorlast.
Entferne ich die Case-Struktur, dann liege ich so im Schnitt bei 25% Prozessorlast. Vielleicht lässt sich ja irgendetwas in der Art bei dir einbauen.
MfG, Jens</div>
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!
das Thema ist zwar schon älter, aber ich wollte nun sagen, dass deine Lösung mir gepasst hat. Jetzt mache ich alles so, wie du es gezeigt hast. Ich benutze nie mehr Waveform Chart oder Graph, sondern überall nur XY-Plot. Alles andere sind nur abgespeckte Derivate des XY-Plots.
' schrieb:Ich benutze nie mehr Waveform Chart oder Graph, sondern überall nur XY-Plot. Alles andere sind nur abgespeckte Derivate des XY-Plots.
Kommend von jenem Thread kann ich mir folgenden Kommentar zu diesem Thread hier nicht verkneifen:
Man bin ich froh, dass ich schon immer XY-Plots benutzt habe und noch nie Waveforms respektive deren Charts. Gerade diese Woche, also heute, wollte ich eine Waveform machen - weil ich halt gedacht habe, das geht einfacher. Aber dank dem Guru hier - Dank an den Guru - lass ich das doch gleich wieder bleiben und bleibe bei meiner bisherigen Methode: DAQmx Lesen was da ist, Aufsummieren auf Array, Anzeigen in 20Hz am Graph. Warum was ändern, was vollkommen ausreichend ist. Punkt.
Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
' schrieb:Kommend von jenem Thread kann ich mir folgenden Kommentar zu diesem Thread hier nicht verkneifen:
Man bin ich froh, dass ich schon immer XY-Plots benutzt habe und noch nie Waveforms respektive deren Charts. Gerade diese Woche, also heute, wollte ich eine Waveform machen - weil ich halt gedacht habe, das geht einfacher. Aber dank dem Guru hier - Dank an den Guru - lass ich das doch gleich wieder bleiben und bleibe bei meiner bisherigen Methode: DAQmx Lesen was da ist, Aufsummieren auf Array, Anzeigen in 20Hz am Graph. Warum was ändern, was vollkommen ausreichend ist. Punkt.
NEVER CHANGE A RUNNING SYSTEM
01.09.2007, 14:36 (Dieser Beitrag wurde zuletzt bearbeitet: 13.01.2008 21:19 von jg.)
' schrieb:Ich benutze nie mehr Waveform Chart oder Graph, sondern überall nur XY-Plot. Alles andere sind nur abgespeckte Derivate des XY-Plots.
Von Abspeckung kann hier wohl keine Rede sein. Das Signalverlaufsdiagramm hat als einziges Diagramm einen Ringpuffer eingebaut und ist deshalb prädestiniert für Realtime-Updating von Messwerten. Außerdem hat nur das Signalverlaufsfdiagramm die Möglichkeit von Stapelplots. Auch brauchen die x-Werte, wenn man jeden Messwert mit einem eigenen Zeitstempel versieht, ähnlich dem XY-Diagramm nicht äquidistant zu sein.
Eine Einschränkung gibt es allerdings bei Deinem Problem: Wenn man mehrere hintereinander aufgenommene Messwerte gleichzeitig übergibt, um zu häufiges Updaten zu vermeiden, dann müssen diese Werte äquidistant sein, d.h es muß ein gültiges dt geben.
Anbei Beispiel
' schrieb:Von Abspeckung kann hier wohl keine Rede sein. Das Signalverlaufsdiagramm hat als einziges Diagramm einen Ringpuffer eingebaut und ist deshalb prädestiniert für Realtime-Updating von Messwerten. Außerdem hat nur das Signalverlaufsfdiagramm die Möglichkeit von Stapelplots. Auch brauchen die x-Werte, wenn man jeden Messwert mit einem eigenen Zeitstempel versieht, ähnlich dem XY-Diagramm nicht äquidistant zu sein.
Eine Einschränkung gibt es allerdings bei Deinem Problem: Wenn man mehrere hintereinander aufgenommene Messwerte gleichzeitig übergibt, um zu häufiges Updaten zu vermeiden, dann müssen diese Werte äquidistant sein, d.h es muß ein gültiges dt geben.
Anbei Beispiel
Also seit dem ich den XY-Plot benutze, habe ich gar keine Probleme mit CPU-Auslastung bei beliebigen Frequenzen. Es scheint mir im Vergleich zu anderen Darstellungsmöglichkeiten ziemlich einfach zu sein. Ausserdem müssen meine Daten gar nicht äquidistant zu sein, ich brauche ledigleich entweder die feste Frequenz (+ Sicherstellung, dass jeder Sample ankommt) oder einen Sample-Counter bzw. Zeitstempel. Damit ist alles erschlagen.
P.S. @Lucki, hast du eigentlich geschaut wieviel CPU dein Beispiel frisst? Trotzdem Danke für deine Mühe.
Also so wie im Anhang mache ich es jetzt. Wie gesagt, keine Probleme mit CPU auch bei höheren Samplefrequenzen und es wird wirklich jeder Sample dargestellt.
' schrieb:P.S. @Lucki, hast du eigentlich geschaut wieviel CPU dein Beispiel frisst? Trotzdem Danke für deine Mühe.
Habs jetzt mal verglichen, die ist bei mir unter der Bedingung gleicher Samplerate deutlich geringer. Das liegt aber nicht an den unterschiedlichen Diagrammen, sondern an etwas anderen:
Du verwendest für das einsammeln der Werte im Shiftregister die Funktion "Array erstellen". Dabei ist jede für jedes neu hinzukommende Element eine aufwändige Reorganisation des Speichers erforderlich. (Das wird zwar meistens so gemacht, es gehört aber, wenn es auf die Ausführungsgeschwindigkeit ankommt, zu den Lehrbeipielen, wie man es nicht machen darf). Besser ist, das Shiftregister mit der maximalen Größe (Statt mit einem leeren Array) zu initialisieren und in der Schleife die Funktion "Element ersetzen" zu verwenden. (Wenn man die maximale Größe vorher nicht weiß. dann mit einem ausreichend hohen Wert initialisieren und später die nicht benutzten Werte wegschneiden)