07.03.2008, 18:26
Beitrag #1
|
knutroggers
LVF-Grünschnabel
Beiträge: 28
Registriert seit: Oct 2007
8.00
2007
kA
Oesterreich
|
Schleifendurchlaufszeit
Hallo,
ich hab wiedermal eine Frage - hatte ich schon mal so ähnlich gestellt, aber ich konnte es noch nicht lösen
Wenn man das VI aus dem Anhang laufen lässt, wird in der Mitte unten die Schleifendurchlaufzeit angzeigt. Wenn der Schalter auf False ist, hab ich eine Schleifendurchlaufszeit von ca. 15 ms, wird er auf True geschaltet (werden die Grafiken und alle Anzeigen ständig aktualisiert) erhöht sich die durchlaufzeit erheblich. Gibt es eine Möglichkeit, das ganze besser zu implementieren, damit es schneller abgearbeitet wird? Die beste Lösung die ich gefunden hab, ist an die Stelle der Schalters einen "Elipsed Timer" (mit zB 0,1 sec) hinzusetzen - also wird nur alle 0,1 sec aktualisiert - Nachteil: es ruckelt, und alle 0,1 sec hab ich erst wieder einen langsameren Durchlauf.
Und, wenn der Schalter auf False ist - wie kann man die Schleifendurchlaufzeit noch verbessern? Optimal wäre für mich max. 5ms, allerdings, benötige ich mindestens eine FFT, sowie 1-2 Filter - geht das überhaupt?
Und was mir noch aufgefallen ist: In der Time-Array-Anzeige sieht man (entweder Schalter auf True, kurz laufen lassen - stoppen, oder Schalter auf False, dann auf True um es anzuzeigen - bleibt sich egal, ist in beiden Fällen so), dass recht oft zwei oder noch viel mehr Arrayeinträge gleich sind - warum? Wie kann es das geben?
Hoffentlich konnte ich mein Problem (mit dem ich mich nun schon ewig rumschlage) halbwegs erklären.
Lg
Reinhard
LV 8
reinhard_v2j.vi (Größe: 104,31 KB / Downloads: 297)
|
|
|
07.03.2008, 20:40
Beitrag #2
|
knutroggers
LVF-Grünschnabel
Beiträge: 28
Registriert seit: Oct 2007
8.00
2007
kA
Oesterreich
|
Schleifendurchlaufszeit
Ich hab hier meine Frage mal ziemlich reduziert:
reinhard_v3a.vi (Größe: 42,1 KB / Downloads: 213)
(LV 8.0)
Wenn man die richtige Stelle sucht, findet man sowas:
Kann es sein, dass "Elipsed Time" nur eine Auflösung von 15 ms hat?
Falls dies der Fall ist, funktioniert es quasi eh richtig, kann nur nicht dargestellt werden.
Aber das Eigentliche Problem mit der Schleifendurchlaufszeit bleibt bestehen
Grüße
Reinhard
|
|
|
07.03.2008, 21:32
Beitrag #3
|
|
|
07.03.2008, 21:43
Beitrag #4
|
|
|
07.03.2008, 22:34
Beitrag #5
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Schleifendurchlaufszeit
Ein absoluter Performance-Killer ist auch das über den Graphen gelegte Array...
Nebeneinander, und schon geht es deutlich schneller...
MfG, 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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
07.03.2008, 23:42
(Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2008 23:44 von knutroggers.)
Beitrag #6
|
knutroggers
LVF-Grünschnabel
Beiträge: 28
Registriert seit: Oct 2007
8.00
2007
kA
Oesterreich
|
Schleifendurchlaufszeit
Danke schon mal für die schnellen Antworten, das mit dem Express VI hab ich schon geändert - das war auf jedenfall ein super Tipp! (ja, ich hab auch schon eingesehn - 2 Monate Gefängnis ;-) )
Das mit dem QueryPerformanceCounter - lässt sich das problemlos als LV 8.0 speichern? Wenn ja - wäre supernett
Jens, wie meinst du ich soll das Array, neben die Graphen legen, nicht darüber? Bitte um eine ganz kurze Erklärung.
lg
Reinhard
|
|
|
08.03.2008, 18:13
Beitrag #7
|
jg
CLA & CLED
Beiträge: 15.864
Registriert seit: Jun 2005
20xx / 8.x
1999
EN
Franken...
Deutschland
|
Schleifendurchlaufszeit
' schrieb:Danke schon mal für die schnellen Antworten, das mit dem Express VI hab ich schon geändert - das war auf jedenfall ein super Tipp! (ja, ich hab auch schon eingesehn - 2 Monate Gefängnis ;-) )
Das mit dem QueryPerformanceCounter - lässt sich das problemlos als LV 8.0 speichern? Wenn ja - wäre supernett
Lad die DLL (s. Link oben) runter und binde die Aufrufe ein...
' schrieb:Jens, wie meinst du ich soll das Array, neben die Graphen legen, nicht darüber? Bitte um eine ganz kurze Erklärung.
Du hast doch über den Graphen dein Array (wenn auch nur zu Testzwecken) drüber gelegt. Mach das nicht, wenn es auf Performance ankommt. Controls nicht überlappen lassen!
Und zu Performance: Probier doch mal eine eigenen "Anzeigeschleife" parallel zur "Rechenschleife", wobei du die Daten dann z.B. per Notifier oder Queues übertragen kannst.
MfG, 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!
Einführende Links zu LabVIEW, s. GerdWs Signatur.
|
|
|
08.03.2008, 20:13
(Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2008 20:14 von IchSelbst.)
Beitrag #8
|
|
|
| |