06.10.2013, 10:23
(Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2013 10:24 von Lucki.)
Beitrag #2
|
Lucki
Tech.Exp.2.Klasse
Beiträge: 7.699
Registriert seit: Mar 2006
LV 2016-18 prof.
1995
DE
01108
Deutschland
|
RE: Wie mache ich zwei Instanzen einer FGV im selben Projekt?
Und warum verwendest Du nicht einfach globale Veriablen? Zwar bleibt das Problem dann bestehen, aber der Wartungsaufwand geht doch entscheidend zurück. Statt 17 FGVs im ersten Projekt und 17 umbenannte FGVs im zweiten Projekt hättest Du in jedem Projekt nur ein einziges VI für alle 17 Veriablen. Ich jedenfalls habe mich nicht beeinflussen lassen von der hier verbreiteten kollektiven Meinung "FGVs gut, Globals schlecht" - und bin damit immer gut gefahren. FGVs haben durchaus ihre Berechtigung; wenn es aber nur darum geht, für einfache, sich selten ändernde Werte "Draht zu sparen", dann eher nicht.
|
|
|
06.10.2013, 12:31
Beitrag #3
|
|
|
06.10.2013, 12:32
(Dieser Beitrag wurde zuletzt bearbeitet: 06.10.2013 12:37 von Trinitatis.)
Beitrag #4
|
Trinitatis
LVF-Guru
Beiträge: 1.694
Registriert seit: May 2008
7.1 / 8.0 /2014-1, 18
2002
DE
18055
Deutschland
|
RE: Wie mache ich zwei Instanzen einer FGV im selben Projekt?
@Lucki,
prinzipiell würde ich deinen letzten post unterschreiben auch wenn ich fürchte, du trittst damit wieder mal eine alte Disskussion los .
Was aber das Problem von Lupin angeht, hift es ja nicht wirklich weiter.
Gruß, Marko
(06.10.2013 12:31 )BNT schrieb: Du machst die eigentliche FGV rezenteste.
In zwei verschiedenen normalen VIs, die die zwei gewünschten Unstanzen sind, raufdürft du die reentrant FGV auf. Fertig!
Gruß Holger
Ist die Sprache im LVF umgestellt worden?
Hallo Holger,
Kannst du da 2 Worte mehr drüber verlieren ?
Gruß, Marko
|
|
|
06.10.2013, 12:55
Beitrag #5
|
BNT
LVF-Freak
Beiträge: 744
Registriert seit: Aug 2008
5.0 - 22Q3
1999
EN
64291
Deutschland
|
RE: Wie mache ich zwei Instanzen einer FGV im selben Projekt?
(06.10.2013 12:32 )Trinitatis schrieb: @Lucki,
prinzipiell würde ich deinen letzten post unterschreiben auch wenn ich fürchte, du trittst damit wieder mal eine alte Disskussion los.
Was aber das Problem von Lupin angeht, hift es ja nicht wirklich weiter.
Gruß, Marko
(06.10.2013 12:31 )BNT schrieb: Du machst die eigentliche FGV rezenteste.
In zwei verschiedenen normalen VIs, die die zwei gewünschten Unstanzen sind, raufdürft du die reentrant FGV auf. Fertig!
Gruß Holger
Ist die Sprache im LVF umgestellt worden?
Hallo Holger,
Kannst du da 2 Worte mehr drüber verlieren ?
Gruß, Marko
Da hat mich wohl mein iPhone mit seine Automatik ausgetrickst. Es sollte natürlich richtig so heissen:
"Du machst die eigentliche FGV reentrant. In zwei verschiedenen normalen VIs, die die zwei gewünschten Instanzen sind, rufst Du die reentrant FGV auf. Fertig!"
Warum hilft das nicht weiter? Die zwei Apps, also Haupt-VIs in einem Projekt sollen jeweils eine Instanz einer FGV benutzten, die Daten mit der gleichen Struktur speichern. So habe ich die Frage jedenfalls verstanden, und der Hinweis, dass es in der kompilierten Exe funktioniert bestätigt mich.
Wo ist da die Verwirrung? Warum tritt das eine alte Diskussion los?
Gruß Holger
|
|
|
06.10.2013, 13:01
Beitrag #6
|
|
|
06.10.2013, 13:09
Beitrag #7
|
|
|
06.10.2013, 14:45
Beitrag #8
|
Lupin
LVF-Grünschnabel
Beiträge: 21
Registriert seit: Feb 2010
2012
2008
EN
1234
Oesterreich
|
RE: Wie mache ich zwei Instanzen einer FGV im selben Projekt?
(06.10.2013 13:09 )BNT schrieb: Prima, dann ist ja jetzt alles klar.
Oder nicht, Lupin?
Gruß Holger
Leider nein. Das bringt so nichts. Die FGV wird ja innerhalb des Programms an mehreren Stellen verwendet. Wenn ich nur eine einzige Stelle hätte, an der gelesen/geschrieben wird, würde ich mir FGVs sowieso nicht antun sondern gleich Feedback nodes verwenden. Eine reentrant FGV ist im Prinzip ja nichts anderes mehr als ein teurer Feedback Node.
Das mit globalen Variablen (stimmt natürlich, dass die viel einfacher zu warten sind), verschiebt das Problem nur auf eine höhere Ebene. Ich habe zum Beispiel eine Logging-Funktion, der ich nur einen Text übergebe. Die holt sich den Log-Dateinamen bzw. Referenz auf die geöffnete Datei aus der FGV. Wenn ich jetzt auf zwei globale Variablen umstelle, muss ich die Log-Funktion auch noch verdoppeln, da ich ja jeweils eine andere Globale einbinden muss. Da die Log-Funktion aber in beiden Programmen identisch ist (und auch sein soll), möchte ich hier nichts verdoppeln, und jetzt Wrapper um Wrapper zu schreiben kann doch hoffentlich auch nicht der Sinn sein.
|
|
|
06.10.2013, 15:12
Beitrag #9
|
|
|
06.10.2013, 15:49
|
Lupin
LVF-Grünschnabel
Beiträge: 21
Registriert seit: Feb 2010
2012
2008
EN
1234
Oesterreich
|
RE: Wie mache ich zwei Instanzen einer FGV im selben Projekt?
(06.10.2013 15:12 )BNT schrieb: nicht schön, aber...
Also obwohl es zwei unterschiedliche Projekte sind, binde ich die selben Dateien ein (zumindest alle, die geteilt werden sollen)? Labview ist dann hoffentlich so intelligent, dass es sofort merkt, wenn ich in Projekt A eine Datei verändert habe, die auch in Projekt B verwendet wird und nicht erst Projekt B komplett neu öffnen muss oder so?
Wenn das geht, kann ich damit leben. Ist immer noch viel schöner als Code-Verdoppelung, und auch noch besser als das, was ich als nächstes probiert hätte: Top-Level der Callchain abfragen und dementsprechend in der FGV den passenden Feedback-Node auswählen. Die FGV würde dann zwar jede Menge nicht verwendete FBN enthalten (in jedere Instanz eine andere), aber wäre mir auch immer noch lieber als Code-Verdoppelung.
Das mit dem Projekt scheint sogar auch das einfachste zu sein, sobald weitere solche Programme dazukommen würden. Zur Zeit ist es eine einfache Sender-überNetzwerk-Empfänger Struktur. Es ist aber nicht auszuschließen, dass es weitere leicht adaptierte Sender geben wird.
Danke jedenfalls! Werde mal schauen wieviel Aufwand der Umbau ist. Ich habe ja leider schon mit den Codeverdoppelungen angefangen (bei 4 oder 5 Dateien war's ja noch OK) bis es mir dann aber irgendwann mal zu blöd geworden ist.
|
|
|
| |