LabVIEWForum.de
was ist besser ? schneller ? - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+--- Thema: was ist besser ? schneller ? (/Thread-was-ist-besser-schneller)



was ist besser ? schneller ? - toaran_ - 14.03.2007 10:33

Hallo

ich würd gern wissen welche methode die beste ist daten von einem VI in ein anderes zu übertragen

also ich habe ein vi welches daten von einer schnittstelle einliest und ein vi welches die daten verarbeitet ...

ist es nun besser die daten in eine globale variable zwischenzuspeichern um sie dann mit dem verarbeitenden Vi auszulesen?
oder besser mit "get controll value" sich die daten so zu holen ?

oder gibts noch andere möglichkeiten ?(LV7.1)

gruss
toaran


was ist besser ? schneller ? - eg - 14.03.2007 11:21

Schon tausend mal besprochen:

Queue ohne Datenverlust
Notifier evtl. mit Datenverlust

Dadurch wird das VerarbeitungsVI von dem EinleseVI "getriggert", was du bei globalen Variablen oder Get Control Value nicht hast.

Bitte nicht die Nase davon halten, es sind Superwerkzeuge, einmal reinschauen lohnt sich wirklich.

Gruss, Eugen


was ist besser ? schneller ? - Lucki - 14.03.2007 11:45

Eindeutige Antwort: Melder oder Queues verwenden. Der Vorteil ist schon mal, daß sich die beiden VI's von selbst synchronisieren, denn das VI mit dem Du eine Meldung liest, wartet geduldig, bis eine neue Meldung eintrift.

Bei Version 7 war es glaube ich noch so, daß ein Melder nur meldet, daß neue Daten da sind, die Daten selbst aber nicht mit überträgt. Da empfiehlt sich dann die Benutzung einer Queue, auch wenn Du nicht mehrere Daten zwischenzuspeichern brauchst. Normalerweise benutzte ich aber nur Melder und keine Queues.
Leider habe ich ein einfaches Beispiel nur in höherer Version da. Das eine VI erzeugt Zufallszahlen, das andere VI empfängt sie und gibt sie auf eine Strip-Card.
Dei Witz ist, daß die beiden VI's keinerlei Verbindung untereinander haben, sie laufen völlig unabhängig. Die Kommunikation funktioniert allein dadurch, daß die Melder den gleichen Namen haben.

Das Stoppen geschieht hier so: Wenn im empfangenden VI Stopp angesagt ist, dann wird der Melder zerstört. Das merkt das sendende VI, und die Fehermeldung wird verwendet, um diese VI ebenfalls zu beenden.

[attachment=5611]