Hallo Dave,
Zitat:Sehe nicht ein, wieso und wo isch anstatt lokaler Variable Drähte verwenden sollte. (Ist doch viel übersichtlicher so, und teilweise auch unvermeidbar!)
Wieso:
LabVIEW arbeitet datenfluß-basiert und das bedeutet: Daten werden über Drähte weitergeleitet. "Variablen" erzeugen immer Kopien (was lästig werden kann). "Variablen" führen zu RaceConditions (Problemen bei paralleler Abarbeitung, wie in deiner Whileloop). Beispiel: auf "Reset Timer" wird zweimal schreibend und einmal lesend zugegriffen. Die Reihenfolge der Zugriffe ist nicht geregelt. Also kann z.B. eine Bedingung einen Reset setzen und die zweite Bedingung löscht das Flag wieder, bevor es gelesen wird... Oder es wird erst gelesen und danach geschrieben...
Wo:
Alle lokalen Variablen in deiner While-Loop zum Beispiel sind unnötig (und teilweise RaceCondition-erzeugend). Sie können/sollten alle durch Drähte ersetzt werden. Man muss "Variablen" auch nicht initialisieren (außer aus kosmetischen Gründen, was man wiederum durch Einsatz von Defaultwerten leichter und kontrolliert erledigen kann).
Übersichtlichkeit:
StyleGuide: links-nach-rechts-Verdrahtung... Wieso ist es übersichtlich, wenn 2 lokale Variablen des selben Elements direkt nebeneinander im Blockdiagramm liegen? Übersichtlicher wird's auch, wenn man sich der Funktionsvielfalt von LabVIEW bewußt wird: es gibt da z.B. "+1" und ">0" als fertige Funktion. Nimmt man dann noch "<=0", spart man sich auch noch ein NOT (RubeGoldberg nennt man sowas!)... Wozu Anzeigelemente erzeugen, die man dann wieder unsichtbar macht? In LV2010 kann man Drähte mit Labels versehen... Wo ist eine StackeSequence übersichtlich, wenn man nur einen von x Frames sieht?
Zitat:Was ist ein Fehlercluster?
Der ockerfarbene Draht, der bei fast jeder Funktion links/rechts unten rein-/rausgeht.
Zitat:Es ist nun mal notwendig, dass die einzelnen Vorgänge in dieser Reihenfolge ablaufen.
Wenn man den Fehlercluster benutzt (=verdrahtet!), braucht man keine Sequenzen mehr und es läuft trotzdem alles in der richtigen Reihenfolge... Außerdem hat man den Vorteil, das bei Fehlern in der Kommunikation nicht stur weiter auf den Bus zugegriffen wird, obwohl das Instrument schon lange nicht mehr antwortet!