LabVIEWForum.de
SubVI ausführen, wenn Eingänge noch nicht anliegen - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: SubVI ausführen, wenn Eingänge noch nicht anliegen (/Thread-SubVI-ausfuehren-wenn-Eingaenge-noch-nicht-anliegen)

Seiten: 1 2


SubVI ausführen, wenn Eingänge noch nicht anliegen - SteffenSI - 05.02.2009 21:47

Hallo,
mir kam gerade eine Frage auf, zu der ich leider nichts finden konnte.

Ich habe ein SubVI in einem zeitkritischen Abschnitt. Dieses koennte bereits loslegen und rechnen, waehrend ein Eingang (der erst an spaeterer Stelle im SubVI gebraucht wird) noch gar nicht anliegt. Kann ich eine Einstellung vornehmen, das das VI bereits startet obwohl der Wert eines Eingangs noch nciht anliegt und es erst dann mit der Ausfuehrung wartet, bis es diesen Wert auch wirklich braucht?

Vielen Dank,
Gruss Steffen


SubVI ausführen, wenn Eingänge noch nicht anliegen - thomas.sandrisser - 05.02.2009 22:34

Moeglichkeit 1 wenn RT nicht vorhanden ist: Queue mit element size 1
Moeglichkeit 2 wenn RT vorhanden ist (egal ob windows oder RT): RT FIFO mit element size 1


SubVI ausführen, wenn Eingänge noch nicht anliegen - Achim - 06.02.2009 07:06

' schrieb:Kann ich eine Einstellung vornehmen, das das VI bereits startet obwohl der Wert eines Eingangs noch nciht anliegt und es erst dann mit der Ausfuehrung wartet, bis es diesen Wert auch wirklich braucht?

Du könntest die Berechnung einfach auf zwei SubVIs aufteilen...


SubVI ausführen, wenn Eingänge noch nicht anliegen - SteffenSI - 09.02.2009 20:53

' schrieb:Moeglichkeit 1 wenn RT nicht vorhanden ist: Queue mit element size 1
Moeglichkeit 2 wenn RT vorhanden ist (egal ob windows oder RT): RT FIFO mit element size 1

Hallo,
was verbirgt sich denn hinter der Abkürzung RT?
Gruß


SubVI ausführen, wenn Eingänge noch nicht anliegen - thomas.sandrisser - 09.02.2009 20:56

Sorry, RT steht fuer Real-Time


SubVI ausführen, wenn Eingänge noch nicht anliegen - SteffenSI - 09.02.2009 23:37

' schrieb:Du könntest die Berechnung einfach auf zwei SubVIs aufteilen...

Ja das stimmt, das habe ich auch Notloesung dann auch im hinterkopf. Allerdings wuerde ich das VI gerne so bestehen lassen.

' schrieb:Moeglichkeit 1 wenn RT nicht vorhanden ist: Queue mit element size 1
Moeglichkeit 2 wenn RT vorhanden ist (egal ob windows oder RT): RT FIFO mit element size 1

Real-Time ist nicht vorhanden. Du meinst also den kritischen Eingang nicht "normal" als Eingang implementieren sondern mit Hilfe einer Queue zu uebergeben..? Das ist schon gar nicht so schlecht, ja. Aber eine Eigenschaft am SubVI, welches diesem eine Ausfuehrung soweit moeglich erlaubt, exestiert so nicht?

Gruesse Steffen


SubVI ausführen, wenn Eingänge noch nicht anliegen - eg - 09.02.2009 23:53

' schrieb:Ja das stimmt, das habe ich auch Notloesung dann auch im hinterkopf. Allerdings wuerde ich das VI gerne so bestehen lassen.

Es sollte eingentlich keine Notlösung sein, sondern die erste Lösung. Du berechnest im ersten VI was du kannst (Zwischenlösung als Ausgang), dann wartest du im zweiten VI auf die restlichen Daten und setzt deine Berechnung fort (Zwischenlösung als Eingang).

Was ist dran so schwer? Warum willst du dein VI beibehalten? Mit Queues in dem Falle machst du es viel komplexer.


SubVI ausführen, wenn Eingänge noch nicht anliegen - SteffenSI - 10.02.2009 22:52

' schrieb:Es sollte eingentlich keine Notlösung sein, sondern die erste Lösung. Du berechnest im ersten VI was du kannst (Zwischenlösung als Ausgang), dann wartest du im zweiten VI auf die restlichen Daten und setzt deine Berechnung fort (Zwischenlösung als Eingang).

Was ist dran so schwer? Warum willst du dein VI beibehalten? Mit Queues in dem Falle machst du es viel komplexer.

Ja, ich was soll ich da nun viel dazu sagen. Es ist klar, das deine Aussage grundsaetzlich stimmt. In meinem SubVI werden Metadaten eines Bildes von Festplatte, vom laufenden Programm und eben auch von einem Bild, welches im zeitkritischen Abschnitt aber parallel dazu erst aufgenommen wird, gesammelt. Aus den Daten entstehen teils neue, sodass es bei einer Teilung des Vi's, zwei VI's gaebe, von denen das eine viele Ausgaenge, das andere viele Eingaenge besitzt. Auch von der Funktionalitaet waere es schoen das VI so bestehen zu lassen. In dem Fall haette ich eine Eigenschaft des SubVI's eben schoen gefunden, das diesem erlaubt loszulegen, bis es eben zu den noch nciht anliegenden Daten kommt.

Gruss Steffen


SubVI ausführen, wenn Eingänge noch nicht anliegen - SteffenSI - 10.02.2009 23:00

Mir kam grad die idee, einen boolschen Eingang zu erzeugen, der angibt ob die Daten schon schon komplett anliegen

-> falls ja, rechnet das Vi einfach wie immer (so kann ich dasselbe VI auch an anderen stellen des programms bestehen lassen, wo es nicht unter "Zeitdruck" steht)

-> falls nein lege ich an die fehlenden Eingaenge Dummywerte (Konstanten) an und hole die Daten an der entsprechenden Stelle im VI ueber eine Queue.

Allerdings mal abwarten ob das mit der zusaetlichen Logik dann noch einen Zeitvorteil bringt, auch weil ich ja die Queue pollen muss...

gruss


SubVI ausführen, wenn Eingänge noch nicht anliegen - eg - 10.02.2009 23:22

' schrieb:Queue pollen

Unsinn Big Grin