LabVIEWForum.de
Echtzeitregelung des analogen Ausgangs einer USB-Box - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Echtzeitregelung des analogen Ausgangs einer USB-Box (/Thread-Echtzeitregelung-des-analogen-Ausgangs-einer-USB-Box)



Echtzeitregelung des analogen Ausgangs einer USB-Box - anuller - 02.06.2012 20:37

Hallo!

Ich habe mal ein paar grundsätzliche Fragen zur Ausgabe von analogen Signalen über einer USB-Box.

Ich möchte ein analoges Sinussignal ausgeben. Dieses wird am Eingang derselben USB-Box gemessen.
Dann soll die Ausgabe dementsprechend nachgeregelt werden.

Bisher hatte ich immer das Problem, dass ich eine Schleife programmieren musste und die Ausgabe nach jeder Reglerberechnung neu gestartet werden musste.
Geht das nicht auch in Echtzeit??? Und als Bedingung gibts nen Abbruch, wenn der Wert (Amplitude) nach z.B. 2 Sekunden nicht innerhalb der gewünschten Toleranz liegt.

Anbei ein Vi wie ich es bisher programmiert habe. Irgendwie ist es nicht optimal.
Jetzt gibts nen Abbruch nach 7 Einstellversuchen.

Viele Grüsse und danke...


RE: Echtzeitregelung des analogen Ausgangs einer USB-Box - GerdW - 03.06.2012 17:18

Hallo anuller,

Zitat:Anbei ein Vi wie ich es bisher programmiert habe. Irgendwie ist es nicht optimal. Jetzt gibts nen Abbruch nach 7 Einstellversuchen.
Mal überlegen: da programmiert doch glatt jemand eine FOR-Loop und gibt maximal 8 Durchläufe vor. Und du wunderst dich, warum nach 7 Versuchen abgebrochen wird?
Schon mal über die Funktionsweise einer While-Loop nachgedacht?

Was außerdem oft angeraten wird:
- Das Erstellen von DAQmx-Tasks/Channel sollte vor der Schleife erfolgen, das ClearTask erst nach der Schleife.
- Ab und zu mal den Aufräumknopf drücken schadet auch nicht.
- Eine Benutzerabfrage in einer Regelschleife, die kontinuierlich laufen soll, ist auch fragwürdig...
- Man kann einen Ring auch als Zahlentyp definieren, dann erspart man sich das Umwandeln von String nach Zahl.
- Wenn du mit Hardware arbeitest, schadet es im Allgemeinen auch nicht, deren Typ anzugeben.