Hallo creo,
Zitat:.. stimmen diese Überlegungen schonmal soweit?
Ja.
Zitat:Und da fängt es schon damit an, dass meine While-Schleife den Drehzahlwert ja überhaupt nicht ausgibt.
Datenaustausch zwischen parallelen Schleifen wird hier oft diskutiert. Da findest du jede Menge Threads zum Thema. Ich verwende gern FGVs, man kann auch globale Variablen, Queues oder Notifier nutzen - je nach gewünschter Architektur. (Ich gehe davon aus, dass die gezeigte Routine ein subVI wird...)
Zitat:also für meine Rechnung muss ich ja gewährleisten können, dass meine Drehzahl-Mess-Schleife genau 0,5 Sekunden lange läuft.. ist das dann auch in einem größeren Programm der Fall?
Das ist unter Windows weder bei einem kleinen noch bei einem großen Programm der Fall: Windows wird dir immer dazwischenhauen...
Du kannst:
- eine TimedWhileLoop nehmen, die sollen etwas genauer arbeiten und liefern dir gleich Hinweise zu "late execution" etc.
- die Timestamps ebenfalls in einem Schieberegister speichern und nicht nur delta(Counter), sondern auch delta(Zeit) berechnen, statt mit einer Konstanten 500ms vorauszusetzen
Zitat:gerne auch noch mit dem zweiten Counter die Drehrichtung bestimmen ... Encoder-Signal A und B
Dazu nutzt man eigentlich nur einen Counter, der aber sowohl für A als auch B Eingänge hat! Der Counter zählt dann automatisch hoch oder runter. Ansonsten musst du auf beiden Signalen auf Flanken achten, bzw. auf welchen Signal die Flanke zuerst erscheint. Könnte fummelig werden...