Der gößte Vorteil von LV ist, dass "quasi-parallele" Verarbeitung nicht nur möglich ist, sondern mehr oder weniger von vornerein gegeben ist.
Was Lucki sagen wollte war glaube ich, dass die meisten damit nicht zurecht kommen. Sie wollen in LV unbedingt so programmieren wie in C&Co. Deswegen nehmen sehr viele ständig die Sequenzstruktur (eine der einfachsten, aber wohl auch unschönsten Möglichkeiten, Datenfluss, also Abarbeitungsreihenfolge zu realisieren).
Ich LV sollte nur dann Datenfluss festgelegt werden, wenn ich das auch wirklich brauche (z.B. um die angesprochenen RaceConditions zu vermeiden) und nicht weil ich das von C oder C++ so gewohnt bin.
So, nun mal allgemein: Es gibt verschiedene Möglichkeiten Datenfluß sicherzustellen:
1. Sequenz (nur im Notfall nutzen; die geschachtelte am besten gar nicht! Da blickt keiner auf die schnelle durch, der ein Programm das erste mal sieht)
2. Drähte
Eine Schleife oder ein SubVI wird erst ausgeführt wenn alle Drähte Daten anliegen haben. D.h. wenn einer noch nicht so weit ist, wird einfach gewartet, und an anderer Stelle des Programms weitergearbeitet.
Ich kann einen Draht auch an eine Schleife anlegen, und ihn innen gar nicht nutzen oder nur durchschleifen, aber so habe ich den Datenfluß.
Für SubVIs sollte immer mit Fehler-Clustern gearbeitet werden. 1. Muss ich das VI vielleicht gar nicht mehr ausführen wenn vorher schon ein Fehler war, 2. wissen alle SubVIs und das MainVI wenn ein Fehler auftritt und 3. habe ich schon wieder Datenfluß und -sicherheit, wenn ich das brauche.
Hilft Dir das erstmal weiter?
Ich glaube nicht das das was ich hier jetzt von mir gegeben habe vollständig ist, aber es sollte zumindest nichts falsches dabei stehen, und bildet zu 100% meine Meinung ab