INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

whileschleife nur einmal durchlaufen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

05.06.2012, 14:59 (Dieser Beitrag wurde zuletzt bearbeitet: 05.06.2012 18:55 von Lucki.)
Beitrag #12

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
RE: whileschleife nur einmal durchlaufen
(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.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
RE: whileschleife nur einmal durchlaufen - Lucki - 05.06.2012 14:59

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Nur ein SubVI in Whileschleife soll verzögert werden mikadm 2 3.508 12.08.2020 14:54
Letzter Beitrag: mikadm
  Sequenz wird zweimal durchlaufen mprocket 7 5.693 21.01.2018 18:59
Letzter Beitrag: mprocket
  for-Schleife rückwärts durchlaufen thz89 3 6.007 01.09.2017 09:06
Letzter Beitrag: jg
  Event in Eventsrtuktur bei Start einmal ausführen hansi9990 1 3.673 14.05.2017 15:32
Letzter Beitrag: GerdW
  Case Structure nur einmal durchführen McButch 5 6.452 30.05.2016 16:43
Letzter Beitrag: jg
  Case schleife einmal ausführen Alighieri 9 9.951 17.03.2015 08:24
Letzter Beitrag: Alighieri

Gehe zu: