Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!
Ich habe ein Problem und komm leider nicht selbst auf die Lösung.
Ich versuche, mittels VISA-Funktion einige Zeichen über eine serielle Schnittstelle einzulesen. Diese Zeichen werden dann abgefragt.
Sollten sie den Vorgabewerten entsprechen, wird die Schleife beendet. Soweit alles ganz einfach.
Jetzt würde ich aber gern einen Abbruch-Button einbauen, mit dem alles vorzeitig gestoppt werden kann.
So einfach, wie ich mir das vorgestellt hatte, funktionierts aber leider nicht. LabVIEW versucht einige
Zeit lang weiter, VISA-Read auszuführen.
Gibt es eine Möglichkeit, die VISA-Funktion direkt zu unterbrechen?
Oder wisst ihr vielleicht eine andere Lösung?
- TimeOut-Anschluß bei VISA-Init beachten...
- Ist es wirklich sinnvoll, in einer Schleife, die auf 1ms Takt gestzt wurde, jedesmal die Schnittstelle zu initialisieren und wieder zu schließen?
- Ist es sinnvoll, bei Abfrage des seriellen Ports die Schleife mit 1ms zu takten? (Die Übertragung von 35 Byte bei 115,2kBaud benötigt ca. 3ms...)
- Ist es sinnvoll, DeleteFromArray zu verwenden, wenn du eigentlich IndexArray verwenden willst? (Welches auch gleich mehrere Ausgänge für mehrere Indizes bietet?)
- Sind die ganzen CoercionDots sinnvoll, insbesondere bei den Vergleichen?
- ich würde VISA open, COM Settings und VISA close außerhalb der Schleife lassen
- den Test, ob die Daten korrekt sind, würde ich ebenfalls außerhalb machen, falls die Daten vom Messgerät
nicht permanent gepollt werden. Denn was machst Du wenn die Daten inkorerkt sind? Es wird kein Buffer geleert
und auch keine VISA Write zum Messgerät hin durchgeführt um erneut Daten abzufragen?
- VISA read kann man nicht abbrechen, aber Du kannst den Default-Timeout von 2000ms runtersetzen