' schrieb:3. Ist es sinnvoll While-Schleifen durch eine 'Addition mit Case' zu ersetzen? (siehe *.jpg)
4. Kann es zu Fehlern kommen, wenn Daten sekündlich mit 'Write to spreadsheet' gespeichert werden und das VI abgebrochen wird? Könnte beispielsweise die Datei fehlerhaft werden.
1) ist gut beantwortet. Meine Regel ist dabei sehr strikt. Lokale Variablen (und globale noch viel mehr) nicht benützen ausser in ganz bestimmten Ausnahmefällen. Globale Variablen sind absolut Tabu ausser in schnellen Quick&Dirty Tests oder als einfacher Status etwa um global bestimmte Funktionen auszuschalten (etwa Hardware um in Simulationsmodus arbeiten zu können. Im Prinzip werden globale Variablen bei mir einmal beschrieben, vor dem Ausführen des Programms oder beim Starten und danach nie mehr.
Lokale Variablen sind da sinnvoll wo Du innerhalb einer Statemachine mehrmals Zugang zum Wert haben musst. Auch hier gilt aber normalerweise: einmal beschreiben zur Initialisation des Benützerinterfaces und danach eigentlich nur noch lesen.
Verwendung von globalen und lokalen Variablen um Drähte zu "sparen" ist für mich ABSOLUT tabu und Mitarbeiter hier halten sich besser ebenfalls and diese Regel
2) LabVIEW stellt sicher, dass ein VI nicht zweimal gleichzeitig aufgerufen werden kann und blockiert den Ablauf des zweiten Aufrufers bis der erste Aufruf beendet ist. Das ist nur bei reentranten VIs anders aber die behandelt LabVIEW wieder speziell indem lokale Daten (etwa Schieberegister) per Instanz im Speicher stehen und daher bei mehreren verschiedenen Aufrufern voneinander geschützt sind.
3) Begreife ich nicht, sind ja sicher nicht equivalent.
4) Wenn Du mit abbrechen den Stopbutton in der Toolbar meinst dann kann es tatächlich zu korrupten Files führen. Die korrekte Weise um ein Program zu beenden ist ein Benützerkontrol zur Terminierung des Programms in die Statemaschine aufzunehmen und dann die Applikation ordnungsgemäss verlassen.
Die Toolbar ist bei meinen LabVIEW Programmen eh nie sichtbar.
Rolf Kalbermatter