23.01.2008, 11:26
Beitrag #1
|
Gabi
LVF-Gelegenheitsschreiber
Beiträge: 50
Registriert seit: Oct 2007
8.2
2005
kA
Deutschland
|
Zeitereignisse steuern
Hallo LVG
ich wollte fragen ob einer von euch folgende Frage beantworten kann.
Ich würde gerne in einer Endlosschleife alle z.b. 10 sekunden eine Funktion ausführen und dadruch eine Anzeige setzen oder Re-setzen. Diese Funktion soll aber wirklich nur alle 10 sekunden auftretten. Wenn man z.b. eine Endlosschleife mit einer Periodendauer von 2s hat, müsste diese Funktion immer nach 5 Schleifendurchgängen aufgerufen werden. Oder wenn man z.b. eine Sequenz mit 100 Sequenzblöcken hat und jeder Block hat ne Dauer von 1s<t<2s, dann müsste LabVIEW praktisch nach 10 Sekunden in einem der 100 Blöcke kurz stoppen, die Funktion aufrufen und ausführen und dann da weiter machen wo LabVIEW angehalten hat. Kann man sowas in LabVIEW realisieren?
Gruß Gabi
|
|
|
23.01.2008, 11:28
Beitrag #2
|
jeffrey
LVF-Gelegenheitsschreiber
Beiträge: 123
Registriert seit: Aug 2007
8.0 zuhause, 8.2 Uni
2007
kA
Deutschland
|
Zeitereignisse steuern
' schrieb:Hallo LVG
ich wollte fragen ob einer von euch folgende Frage beantworten kann.
Ich würde gerne in einer Endlosschleife alle z.b. 10 sekunden eine Funktion ausführen und dadruch eine Anzeige setzen oder Re-setzen. Diese Funktion soll aber wirklich nur alle 10 sekunden auftretten. Wenn man z.b. eine Endlosschleife mit einer Periodendauer von 2s hat, müsste diese Funktion immer nach 5 Schleifendurchgängen aufgerufen werden. Oder wenn man z.b. eine Sequenz mit 100 Sequenzblöcken hat und jeder Block hat ne Dauer von 1s<t<2s, dann müsste LabVIEW praktisch nach 10 Sekunden in einem der 100 Blöcke kurz stoppen, die Funktion aufrufen und ausführen und dann da weiter machen wo LabVIEW angehalten hat. Kann man sowas in LabVIEW realisieren?
Gruß Gabi
Hallo,
mach das ganze doch einfach in eigene eigene parallele Schleif, die nur alle 10s läuft.
MfG Jeffrey
|
|
|
23.01.2008, 11:34
Beitrag #3
|
Gabi
LVF-Gelegenheitsschreiber
Beiträge: 50
Registriert seit: Oct 2007
8.2
2005
kA
Deutschland
|
Zeitereignisse steuern
' schrieb:Hallo,
mach das ganze doch einfach in eigene eigene parallele Schleif, die nur alle 10s läuft.
MfG Jeffrey
Hab ich schon versucht ...... ich bin in einer Endlosschleife die sich alle 20ms<t<500ms wiederholt und in diese Endlosschleife hab ich dann ne Zeitschleife mit der Periodendauer von 10s eingebaut --> das Problem dabei ist das die schleife 1 mal pro Endlosschleifendurchlauf ausgeführt werden muss, sodass sie solang wartet. D.h. wiederrum das sich die Endlosschleife der Periodendauer der 10s schleife anpasst.
Jedenfalls in meinem Beispiel.
|
|
|
23.01.2008, 11:42
(Dieser Beitrag wurde zuletzt bearbeitet: 23.01.2008 11:44 von Achim.)
Beitrag #4
|
|
|
23.01.2008, 11:52
Beitrag #5
|
|
|
23.01.2008, 11:55
Beitrag #6
|
|
|
23.01.2008, 11:59
Beitrag #7
|
Gabi
LVF-Gelegenheitsschreiber
Beiträge: 50
Registriert seit: Oct 2007
8.2
2005
kA
Deutschland
|
Zeitereignisse steuern
' schrieb:Probiers mal so:
[attachment=37844:warten.vi][attachment=37845:Time_out.vi]
Beide VI's in einen Ordner kopieren und dann "warten.vi" starten!
Danke erstmal für die schnellen Antworten.
Das VI von Dir Achim ist nicht die von mir erhoffte Lösung. Auf die Idee bin ich auch gekommen und so ähnlich werde ich es wohl auch lösen müssen wie es aussieht. Die Sache ist diese das desto länger die Hauptschleife ist desto ungenauer ist dein Funktionsaufruf. Und dauert die Hauptschleife sogar länger als deine Zeitgrenze hat kann man sowieso nicht mehr das Event rechzeichtig starten, ausser man setzt dein VI mehrmals in die Schleife. Naja jedenfalls hatte ich gehofft das das auch anderes geht.
|
|
|
23.01.2008, 12:05
Beitrag #8
|
Gabi
LVF-Gelegenheitsschreiber
Beiträge: 50
Registriert seit: Oct 2007
8.2
2005
kA
Deutschland
|
Zeitereignisse steuern
' schrieb:Hi,
ich meinte nicht die Schleife dazu rein packen, sondern parallel dazu. Ich schätze mal Achim macht es genauso, kann siene VIs leider nicht öffnen, ist kein LV hier auf dem Rechner. Deswegen das Bild halt jetzt in Paint :-)
Hoff man blickt des trotzdem.
MfG Jeffrey
Nein das geht auch nicht ..... meine Hauptschleife ist doch ne endlosschleife und sobald LabVIEW diese einmal ausführt gelangt LabVIEW nie mehr in die andere Schleife. D.h. die Funktion wird nur ein einzigesmal ausgeführt und auch nur dann wenn LabVIEW die Zeitschleife beim ersten mal als erstes durchläuft und dann in die Endlosschleife gelangt.
|
|
|
23.01.2008, 12:10
|
Achim
*****
Beiträge: 4.223
Registriert seit: Nov 2005
20xx
2000
EN
978xx
Deutschland
|
Zeitereignisse steuern
' schrieb:Nein das geht auch nicht ..... meine Hauptschleife ist doch ne endlosschleife und sobald LabVIEW diese einmal ausführt gelangt LabVIEW nie mehr in die andere Schleife. .
FALSCH!
LV arbeitet diese Schleifen parallel ab! Quasi-Parallel (Multi-Threaded) bei nem normalen PC, bei nem Multi-Core-PC je nach Einstellung auch wirklich parallel...
Genauer wird's dadurch aber auch nicht...siehe meinen vorhergehenden Beitrag!
"Is there some mightier sage, of whom we have yet to learn?"
"Opportunity is missed by most people because it is dressed in overalls and looks like work." (Thomas Edison)
|
|
|
| |