(05.06.2012 13:41 )Soean schrieb: Aber eine FGV hat doch gegenüber einer globalen Variable den Vorteil, dass sie nur "einmal zur Zeit" aufgerufen werden kann, es kann also nicht gleichzeitig geschrieben und gelesen werden, wo u.U. Murks bei raus kommt. Oder habe ich das missverstanden?
Außerdem lassen sie sich leichter in den Datenfluss integrieren.
Das hast Du nicht missverstanden. Mein bevorzugtes Anwendungsfeld für Globale Varibale sind Grundeinstellungen, die z.B bei der Initialisierung aus einer Ini-Datei gelesen werden und dann in unterschiedlichen SubVIs benötigt werden. Da tritt das Problem des gleichzeitigen Lesens und Schreibens und das der Einbindung in den Datenfluss überhaupt nicht auf. Der Vorteil ist, das man nicht in jedem dieser SubVIs die Eingänge dafür haben muß und dass man das Haupt-VI nicht mit Drahtverhau zumüllt.
Zum Austausch von Messdaten hingegen, bei denen diese Probleme eine Rolle spielen, würde ich auch keine FGVs benutzen. Dafür gibt es Queues und Melder, die in idealer Weise die Synchronisation von Erzeugung und Verbrauch gewährleisten. Bei einer FGV müßte man extra noch ein Statusbit fürs Handshaking haben, um sicherzustellen, daß ein Datenwert nicht zweimal gelesen wird. Und dieses Bit müßte man pollen, damit a) auf der Verbraucherseite erst gelesen wird, bis ein neuer Datenwert vorliegt, und b) auf der Erzeugerseite nicht ein neuer Datenwert eingeschrieben wird, bevor der alte gelesen ist. Das ist im Vergleich zu Queues unsäglich umständlich - bei Queues ist diese Funktionalität von vornherein implementiert.
Beipiel für ein FGV mit zusätzicher Funktionalität, wie ich es für sinnvoll halte:
FGV für Gundeinstellungen:
Beim ersten Aufruf werden der Werte automatisch aus einer ini-Datei gelesen.
Beim weiteren Lesen werden die Werte aus den internen Schieberegisteren genommen, es wird also nicht dauernd aus der ini-Date gelesen.
Beim Schreibzugriff werden die Wert in den Sschieberegistern geändert und gleichzeitig in die INI-File geschrieben.
Bei Verwendung von Globalen Variablen hätte man hingegen das INI-File-Gedöns mit im Haupt-VI. Darunter könnte die Übersichtlichkeit leiden.