Hallo zusammen,
ich habe ein scheinbar einfaches Problem, das ich selbst nicht lösen kann:
In einer While-Schleife erzeuge ich kontinuierlich Daten. Diese möchte ich in einem Graphen darstellen, der mir auf der X-Achse einfach die vergangenen Sekunden seit Programmstart anzeigt. Mit Einstellungen->Anzeigeformat und dann relative Zeit funktioniert es nicht. Da läuft die Zeit viel zu schnell. Oder geht gar nicht so einfach? Richtet sich der interne Timer da nicht nach der wirklich Zeit oder gibt es gar keinen internen Timer? Aber wozu dann die Möglichkeit die relative Zeit einzustellen?
Kann mir da jemand helfen?
(Programm im Anhang, LV-Version 8.6)
Vielen Dank schon mal.
Grüße,
Toml
Windows sieht deine Schleife und sagt sich "nimm viel, nimm reichlich" und haut alles an Prozessorleistung raus, um deine Schleife so schnel wie möglich auszuführen.
Der Timer zeigt Millisekunden an, wenn der rennt als ob der bis Morgenfrüh bei unendlich angekommen sein will, dann passt das schon. Windows hat dann viel freie Zeit, um deine Schleife auszuführen und fröhlich die Timerwerte zu subtrahieren. Aus purer Sympathie schiebt Windows ab und an mal die obere Schleife dazwischen, aber da wirst du nix von merken.
Gruß SeBa
PS:
Da irgendein "Einstellungen" VI fehlt und das Programm größer als mein Bildschim ist, mag ich grad nicht weiter drüber nachdenken. Aber evtl. nimmst du dir die Zeit und baust ein funktionierendes Beispiel an dem man experimentieren/erklären kann.
Also hier (siehe Anhang) das einfachste Beispiel das mir einfällt:
Die Ausführungsgeschwindigkeit der Schlleife soll nicht verändert werden.
Ich will jetzt einfach nur, dass der Graph mir auf der X-Achse die relative Zeit in echten Sekunden anzeigt.
Danke schonmal.
Toml
Dir werden doch Sekunden angezeigt.
Gruß Markus
' schrieb:Also hier (siehe Anhang) das einfachste Beispiel das mir einfällt:
Die Ausführungsgeschwindigkeit der Schlleife soll nicht verändert werden.
Ich will jetzt einfach nur, dass der Graph mir auf der X-Achse die relative Zeit in echten Sekunden anzeigt.
Danke schonmal.
Toml
Also bei mir laufen die "Sekunden" einfach so schnell hoch wie die Schleife läuft. Drum bin ich ja so verwirrt.
Kann sich jemand vorstelle woran das liegt?
Jetzt verstehe ich Dein Problem. Erklären kann ich es Dir aber leider auch nicht.
Hier ist eine Alternative:
[
attachment=21173]
Gruß Markus
Na, dann will ich mal erklären, auch da Y-P in seiner Antwort von einem Chart (Signalverlaufsdiagramm) auf einen XY-Graph umgestiegen ist.
Das Chart ist per se (mglw. auch historisch bedingt) ziemlich doof. Eine Möglichkeit, es mit Daten zur Anzeige zu füttern, ist, immer einen Einzelwert in das Terminal im BD zu schreiben.
Dabei ist es dem Chart vollkommen egal, wann die Werte geschrieben werden, der X-Wert wird grundsätzlich um "Eins" erhöht.
Jetzt hast du deine x-Achsen-
Formatierung auf ein Zeit-Format (hh:mm
s) umgestellt. Jetzt muss man wissen, wie intern eine Zeit dargestellt wird, das ist nämlich eine Fließkommazahl, Einheit 1 Sekunde. Die
Formatierung der x-Achse eines Charts hat aber nichts mit einem "realen" Zeitablauf zu tun. Wenn du Einzelwerte in das Chart schreibst, dann wird bei jedem neuen Wert der X-Wert weiterhin um "Eins" (also 1 Sekunde) erhöht.
Wie kann man das ändern:
1. schau mal hier:
http://www.LabVIEWforum.de/index.php?s=&am...ost&p=80754
2. Oder du arbeitest mit Waveforms der Länge 1, denn bei Waveforms kennt das Chart dann doch wieder eine Zeit bei der x-Achse:
[
attachment=21177]
Gruß, Jens
Sehr gut. Ich hab jetzt auch die zweite version von Jens_G gewählt und das funktioniert auch.
Vielen Dank auch für die Erklärung!
Grüße,
Toml