INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Schleifendurchlaufszeit



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!

07.03.2008, 18:26
Beitrag #1

knutroggers Offline
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ösenSmile

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

Sonstige .vi  reinhard_v2j.vi (Größe: 104,31 KB / Downloads: 296)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
07.03.2008, 20:40
Beitrag #2

knutroggers Offline
LVF-Grünschnabel
*


Beiträge: 28
Registriert seit: Oct 2007

8.00
2007
kA


Oesterreich
Schleifendurchlaufszeit
Ich hab hier meine Frage mal ziemlich reduziert:


Sonstige .vi  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 bestehenSmile

Grüße
Reinhard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2008, 21:32
Beitrag #3

altissimus Offline
LVF-Grünschnabel
*


Beiträge: 18
Registriert seit: Mar 2008

8.2
2007
DE-DEUTSCH

3300
Oesterreich
Schleifendurchlaufszeit
nimm statt dem express vi
das tick count im ms
aus derselben kategorie und dann lass dir mehr stellen anzeigen, dann siehst du dass du viele schleifendurchläufe hast
(bei mir waren es 50 pro ms)

ich habs in screens dir angezeigt
hannes


Angehängte Datei(en) Thumbnail(s)
       
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2008, 21:43
Beitrag #4

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schleifendurchlaufszeit
Guck dir mal die DLL von hier an. Da gibt es eine Zeitmessung mittels QueryPerformanceCounter. Der kann (siehe PSDK) im Prozessortakt auflösen.

Mit dem Einbau wie im Bild komme ich mit Boolean=true auf ca. 15ms bis 20ms. Bei Boolean=false auf ca. 200µs.


Angehängte Datei(en) Thumbnail(s)
   

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2008, 22:34
Beitrag #5

jg Offline
CLA & CLED
LVF-Team

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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.03.2008, 23:42 (Dieser Beitrag wurde zuletzt bearbeitet: 07.03.2008 23:44 von knutroggers.)
Beitrag #6

knutroggers Offline
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 supernettSmile

Jens, wie meinst du ich soll das Array, neben die Graphen legen, nicht darüber? Bitte um eine ganz kurze Erklärung.

lg
Reinhard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2008, 18:13
Beitrag #7

jg Offline
CLA & CLED
LVF-Team

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 supernettSmile
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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
08.03.2008, 20:13 (Dieser Beitrag wurde zuletzt bearbeitet: 08.03.2008 20:14 von IchSelbst.)
Beitrag #8

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.692
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Schleifendurchlaufszeit
' schrieb:Lad die DLL (s. Link oben) runter und binde die Aufrufe ein...
Genau das hätte ich auch vorgeschlagen. Im Textfile stehen die Werte des Enumerators. Einbinden genau so, wie es das Bild (siehe oben) zeigt.

Hier aber eine LV 8.0 Version mit einen TestVI für QPC (also mit Enumerator-Definition für C&P).

Lv80_img


Angehängte Datei(en)
Sonstige .zip  Test_QPC.zip (Größe: 204,42 KB / Downloads: 173)

Jeder, der zur wahren Erkenntnis hindurchdringen will, muss den Berg Schwierigkeit alleine erklimmen (Helen Keller).
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Gehe zu: