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 

Paralleler Ablauf oder nicht?



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!

06.10.2008, 19:30
Beitrag #1

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Paralleler Ablauf oder nicht?
Ich sitze schon wieder vor einem so komischen Effekt.

Ich hab ein VI (in LV8-2) angehängt. Darin befindet sich in der unteren Sequenz eine Wartezeit mit 0 Millisekunden. Mit aktivierter Wartezeit von Null Millisekunden dauert die Schleife 250ms. Ohne Wartezeit, also mit deaktivierter Wartezeit, dauert die Schleife ca. 275ms. Also 250 plus die Dauer der unteren Sequenz.

Ich hab das bei LV8-5 festgestellt. Wer kann denn das mal verifizieren, vielleicht auch bei (82 oder 86) und mir sagen, erstens ob das bei ihm auch so ist und zweitens warum das so ist. Respektive was an meinem Sourcecode falsch ist oder anders gehört.


Angehängte Datei(en) Thumbnail(s)
   

Sonstige .vi  SequenzTest_LV82.vi (Größe: 23,61 KB / Downloads: 229)

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
Anzeige
06.10.2008, 20:09
Beitrag #2

jg Offline
CLA & CLED
LVF-Team

Beiträge: 15.864
Registriert seit: Jun 2005

20xx / 8.x
1999
EN

Franken...
Deutschland
Paralleler Ablauf oder nicht?
Verifiziert unter LV8.6 unter einem SingleProcessor-PC. (wobei ich eher 45ms für die Darstellung brauche...)

Was mal wieder zeigt, dass man nicht vorhersagen kann, was der LV-Compiler aus einem BD wirklich macht.

Gruß, 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
06.10.2008, 21:52
Beitrag #3

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Paralleler Ablauf oder nicht?
' schrieb:Was mal wieder zeigt, dass man nicht vorhersagen kann, was der LV-Compiler aus einem BD wirklich macht.
Das war ja nur das Versuchsmuster. Aufgefallen ist mir das in einem richtigen Programm: siehe Bild. Mit Sequenz: Schleifendauer 250ms. Ohne Sequenz: Schleifendauer von Prozessorleistung abhängig!

Es gilt also gar nichts. Selbst nicht sequenzierte Programmteile laufen nicht zwangsläufig parallel ab. Und wenn in einer Schleife ein 250ms-Wait steht, heißt das noch gar nichts?

[*grübel*]

Oder liegt das wieder nur an dem Graphik-Element? Bisher hab ich mit diesen Elementen nur Probleme gehabt.


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
06.10.2008, 21:54 (Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2008 22:03 von Lucki.)
Beitrag #4

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Paralleler Ablauf oder nicht?
Ich bekomme etwa daselbe Ergebnis, aber ich wundere mich nicht, denn kein Timer ist nicht dasselbe wie ein Timer mit 0 ms.
In der Hilfe steht ja: "Bei 0 wird der aktuelle Thread zur Abgabe der CPU-Steuerung gezwungen". Allerdings stehe ich jetzt auf dem Schlauch, was das im Klartext heißt und wie man damit das Ergebnis erklären kann...
Wer hilft? Meine Vermutung ist: Bei 0 wird wird die Sequenz unten sehr stark priorisiert, so daß oben der Timer zunächst gar nicht angestoßen wird.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
06.10.2008, 22:04
Beitrag #5

IchSelbst Offline
LVF-Guru
*****


Beiträge: 3.689
Registriert seit: Feb 2005

11, 14, 15, 17, 18
-
DE

97437
Deutschland
Paralleler Ablauf oder nicht?
' schrieb:In der Hilfe steht ja: "Bei 0 wird der aktuelle Thread zur Abgabe der CPU-Steuerung gezwungen".
1. Es muss nicht unbedingt 0 drinn stehen, es geht auch mit 25ms.
2. Das heißt, der Thread wechselt zwischen BD und FP. Das heißt, die Ausgabe der Daten am FP, respektive am Graph, wird erzwungen. Das Anzeigen der Daten im Canvas des Graphen dauer nämlich so lange - eben diese 25ms.
3. Was ist dann mit dem Sequenzrahmen?

[*grübel*]

Heißt das etwa, das BD wartet 250ms und tut nichts? Und danach werden alle Bildschirmausgaben gemacht? Ein Sequenzrahmen könnte das selbe bewirken wie ein Wait => Umschalten nach FP.

[*grübel*]

Was ist jetzt, wenn ich einen 250ms-Wait und einen 0ms-Wait parallel mache?

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
06.10.2008, 22:09
Beitrag #6

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Paralleler Ablauf oder nicht?
Bei mir dauert es immer 250ms.
Getestet mit Linux 8.6 mit P4
Ein Wait=0 in einer Sequenz ist mir neu,dass das was bringt, aber in einer Schlaufe schon.
Aber warum es bei euch nicht so ist, kann ich jetzt auch nicht sagen....
Windows?

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
06.10.2008, 22:26 (Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2008 22:27 von eg.)
Beitrag #7

eg Offline
LVF-SeniorMod


Beiträge: 3.868
Registriert seit: Nov 2005

2016
2003
kA

66111
Deutschland
Paralleler Ablauf oder nicht?
Bei mir unter Vista und LV 8.6 laufen beide 250 ms lang.

Gruß, eg

Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.10.2008, 06:38 (Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2008 06:39 von TSC.)
Beitrag #8

TSC Offline
LVF-Team
LVF-Team

Beiträge: 1.882
Registriert seit: Sep 2008

LV 2018 SP1
2008
EN

52379
Deutschland
Paralleler Ablauf oder nicht?
XP Pro SP2; LV 8.2.1;

- beides 250 ms

"Über Fragen, die ich nicht beantworten kann, zerbreche ich mir nicht den Kopf!" (Konrad Zuse)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.10.2008, 07:54 (Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2008 08:08 von RoLe.)
Beitrag #9

RoLe Offline
LVF-Guru
*****


Beiträge: 1.236
Registriert seit: Jul 2007

-
1997
en

0
Schweiz
Paralleler Ablauf oder nicht?
So, nun habe ich das mal noch mit W2000 und Vista getestet.
jedesmal dauert es 250ms. Dauer Signal konstant 10ms auf Vista Hehe

Rest gelöscht ......

.·´¯)--> Leben ist das, was dir passiert, wenn du eifrig dabei bist andere Pläne zu machen <--(¯`·.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
07.10.2008, 07:56 (Dieser Beitrag wurde zuletzt bearbeitet: 07.10.2008 08:34 von Lucki.)
Beitrag #10

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Paralleler Ablauf oder nicht?
' schrieb:Bei mir dauert es immer 250ms.
@Role @eg
Kann es vielleicht sein, daß ihr denselben Fehler macht wie anfangs ich auch?
Falsch: In der Deaktivierungsstruktur mit der linken Maustaste den anderen Case sichtbar machen.
Richtig: Mit rechter Maustaste das deaktivierte Unterdiagramm aktivieren.

In einem Buch (Johnson/Jennings) finde ich noch diesen Hinweis:
"The 0-ms wait is a special instruction to the LabVIEW scheduler to let other waiting tasks run, but to put yours back in the schedule as soon as possible"
Also im Klartext: Wenn man eine Schleife so schnell als möglich ausführen möchte, aber ohne andere Tasks zu blockieren, dann Wait mit 0 ms verwenden.

Und damit ist eigentlich alles klar:
Das Updaten des Signalverlaufsgraph dauert 35ms, und wenn sich dort kein Timer befindet, werden andere Tasks blockiert. D.h. das obere 250 ms Wait wird in der Zeit nicht mal angestoßen, die Wartezeit beginnt erst nach den 35ms.
Mit 0-ms Timer sieht die Sache günstiger aus, andere anstehende Task werden nicht völlig blockiert. Das 250ms Wait wird quasi zur Zeit 0 mit aufgerufen, und nicht erst nach 35 ms.

Man muß sich auch mal von der Vorstellung lösen, die Waitfunktion habe magische Eigenschaften, wonach sie immer zu allererst ausgeführt wird. Sie ist ein paralleles VI wie jedes andere, und wenn Wait nicht in Datenstrukturen eingebunden ist und frei in der Fläche schwebt, passieren damit die gleichen Überraschungen wie man sie z.B. mit lokalen Variablen erleben kann.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
30
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Ablauf Automatisieren Neuling01 7 5.548 12.07.2017 16:11
Letzter Beitrag: th13
  Automatischen Ablauf programmieren Freaky29 3 4.966 03.02.2015 11:27
Letzter Beitrag: Freaky29
  Event structure/ paralleler Prozess Brainbug 5 5.610 28.05.2014 11:38
Letzter Beitrag: GerdW
  Zeitgesteuerter Ablauf stefan_huaba 8 6.450 30.09.2013 14:02
Letzter Beitrag: stefan_huaba
  Ablauf einer Reihe Zufall 15 12.279 08.01.2013 20:51
Letzter Beitrag: Zufall
  Zeitgesteuerter Ablauf Stefan 4890 8 7.788 04.10.2012 07:00
Letzter Beitrag: Stefan 4890

Gehe zu: