Hallo Bernd1,
ich hab mir Dein abgespecktes Beispiel mal näher angeschaut.
Damit wirst Du noch mehr Probleme kriegen:
- die Logik Deiner STOP buttons ist ziemlich kompliziert. Es ist nicht leicht, das Programm anzuhalten
- die 'elapsed time' Express-VI verhält sich nicht so, wie man naiverweise denken würde. Probiers aus. (Jetzt spiel ich mal Betreuer: lass die Finger generell von Express-VIs. Sie gaukeln Dir Einfachheit vor, wo keine ist.)
- schwerwiegendstes Problem: Synchronisation! Deine obere loop (die Daten'senke'
kriegt nur einen kleinen Bruchteil der Messdaten mit, da in dem Beispiel die Messloop irrsinnig schnell läuft, die Auswerteloop aber nur einmal pro msec.
Das Synchronisationsproblem wirst Du immer haben, wenn Du locals ohne weitere Vorkehrungen benutzt, selbst wenn Deine Prüfloop in Wirklichkeit viel langsamer läuft. Queues vermeiden genau das: alles was man vorne in die Q reinschiebt, holt sich die Datensenke hinten wieder raus.
Kann natürlich sein, dass es bei Deinem Messproblem egal ist, wenn einige Messwerte verloren gehen. Kann auch sein, dass Dein Betreuer das so will. Dann brauchst Du natürlich keine Synchronisation.
Ich habe jedenfalls mal eine primitive Q-lösung (nach dem Q Multiplexer.VI aus dem examples Verzeichnis) in Dein Beispiel hineingebastelt. Ist ohne jegliche Fehlerprüfung, zeigt aber hoffentlich das Prinzip (und kommt natürlich ohne locals für die Messwerte aus):
BSP_Programm_1.vi (Größe: 113,83 KB / Downloads: 229)