05.02.2009, 21:47
Beitrag #1
|
SteffenSI
LVF-Gelegenheitsschreiber
Beiträge: 64
Registriert seit: Nov 2008
8.6
2007
en
69115
Deutschland
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
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
|
|
|
05.02.2009, 22:34
Beitrag #2
|
thomas.sandrisser
LVF-SeniorMod
Beiträge: 1.298
Registriert seit: Sep 2005
xxxx
2005
EN
78759
United States
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
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
|
|
|
06.02.2009, 07:06
Beitrag #3
|
|
|
09.02.2009, 20:53
Beitrag #4
|
SteffenSI
LVF-Gelegenheitsschreiber
Beiträge: 64
Registriert seit: Nov 2008
8.6
2007
en
69115
Deutschland
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
' 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ß
|
|
|
09.02.2009, 20:56
Beitrag #5
|
thomas.sandrisser
LVF-SeniorMod
Beiträge: 1.298
Registriert seit: Sep 2005
xxxx
2005
EN
78759
United States
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
Sorry, RT steht fuer Real-Time
|
|
|
09.02.2009, 23:37
Beitrag #6
|
SteffenSI
LVF-Gelegenheitsschreiber
Beiträge: 64
Registriert seit: Nov 2008
8.6
2007
en
69115
Deutschland
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
' 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
|
|
|
09.02.2009, 23:53
Beitrag #7
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
' 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.
|
|
|
10.02.2009, 22:52
Beitrag #8
|
SteffenSI
LVF-Gelegenheitsschreiber
Beiträge: 64
Registriert seit: Nov 2008
8.6
2007
en
69115
Deutschland
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
' 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
|
|
|
10.02.2009, 23:00
Beitrag #9
|
SteffenSI
LVF-Gelegenheitsschreiber
Beiträge: 64
Registriert seit: Nov 2008
8.6
2007
en
69115
Deutschland
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
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
|
|
|
10.02.2009, 23:22
|
eg
LVF-SeniorMod
Beiträge: 3.868
Registriert seit: Nov 2005
2016
2003
kA
66111
Deutschland
|
SubVI ausführen, wenn Eingänge noch nicht anliegen
' schrieb:Queue pollen
Unsinn
|
|
|
| |