Hallo Sportler,
1) Aus dem NI-Forum: "local variables = race condition enabler"
Wann sollte man lokale Variablen einsetzen: IMHO so gut wie nie. Welche Problem auftauchen, hast du ja schon gemerkt. Einzige für mich akzeptable Ausnahme: Man will den Wert eines Controls (welches per Terminal nur Daten liefert) auch mal setzen (z.B. zum Initialisieren oder löschen)
und man beachtet dabei den Dataflow!
2) Welche Vorteile es hat, solltest du auch gemerkt haben
Erstens: keine RaceConditions. Zweitens: keine RaceConditions. Drittens: keine R...
Im Ernst: dein VI war ein Paradebeispiel für RaceConditions. Überall (unkoordinierte) parallele Schreib- & Lesezugriffe auf lokale Variablen. Und sich wundern, warum nicht das rauskommt, was erwartet wurde...
Zweitens: ShiftRegister sind
der Weg, um Daten von einer Schleifeniteration an die nächste weiterzureichen. Wie bei dir: in jeder Iteration ein anderes Element eines Arrays ändern - da sollte man sich die vorangegangenen Änderungen auch merken! Außerdem sehr speichereffizient und schnell.
Drittens: LabVIEW hat keine Variablen im üblichen Sinn. Man hat Eingabeelemente und Anzeigen. Alles andere sind Krücken, da:
In LV ist der Draht die Variable!
"Kabel mach ich erst immer grad wenn ich fertig bin, sonst dauert mir das zulange während der Entwicklung."
Aber andere damit quälen geht in Ordnung? Und dann noch Hilfe erwarten? Bitte beim nächsten Mal besser machen... Tipp: "Automatisches Kabelverlegen" ausschalten, dann kann man selbst bestimmen, wie ein Draht aussieht - ohne dass LV "intelligent" eingreift.
"Mein 'Lehrer'"
</Sarkasmus an> Was macht der sonst so? C- oder VBA-Programmierer? </Sarkasmus aus>
"allerdings kann ich die Werte dann nicht mehr ändern"
Welche Werte kannst du nicht mehr ändern? Btw. hast du eine LV-Version mit Event-Struktur? (D.h. besser als die Base-Version?)