24.07.2021, 09:25
Hallo zusammen,
an meinem Versuchsstand will ich Messdaten aufnehmen. Dazu werde ich ein DAQ benutzen. In dieser Frage soll es darum gehen, wie ich die Aufnahme der Messdaten zeitlich steuern kann. Um das zu erreichen, habe ich mich mit der Elapsed-Time-VI und dem Umgang mit dynamischen Event-Strukturen auseinander gesetzt. Folgendes soll die VI am Ende können:
User stellt eine Zeit ein, wie lange er Messdaten aufnehmen will --> User drückt auf Schalter, um Aufnahme von Messdaten zu starten --> Messdaten werden für die von ihm definierte Zeit aufgenommen --> Wenn die Zeit abgelaufen ist, wird die Aufnahme von Messdaten gestoppt und der Timer zurückgesetzt.
In dieser Frage soll es sich zunächst nur um den Umgang mit der Zeitsteuerung drehen. Im Anhang findet ihr ein Bild des BD sowie des VI als Datei. Folgende Fehler bestehen mit dem aktuellen Programm:
- Wenn die 10s abgelaufen sind, wird ein Fehler für das "Generate User Event" -Element angezeigt. Das macht für mich auch Sinn, der immer noch gedrückte Button [True] fordert ein Starten der Event-Struktur. Das steht jedoch im Widerspruch mit der Tatsache, dass die abgelaufene Zeit ein Stoppen der unteren While-Schleife fordert.
Die Lösung wäre hier, dass man im Zusammenhang mit dem ablaufen der Zeit den Timer zurücksetzt. Eine erste Idee, wie ich die widersprüchlichen Signale umgehen kann, wäre den Timer mit einer Case-Struktur und nicht mit dem Stopp der unteren Schleife zu verbinden. Was haltet ihr von dieser Idee? Dann wäre aber noch nicht das Problem mit dem zurücksetzen des Timers gelöst.
- Folgendes Scenario: Ich drücke den Button [True] --> Zeit startet, läuft für 5s --> Ich drücke Button wieder [False] --> Indikator zeigt stoppen der Zeit an --> Drücke Button wieder [True] --> Indikator springt zur Zeit seit dem ersten [True].
Auf jeden Fall hängen das erste und das zweite Problem zusammen. Offensichtlich bewirkt ein ausschalten Knopfes nicht, dass die Event-Struktur gestoppt wird. Warum ist das so?
Ich freue mich auf eure Antworten und vielen Dank für die Hilfe im Voraus!
an meinem Versuchsstand will ich Messdaten aufnehmen. Dazu werde ich ein DAQ benutzen. In dieser Frage soll es darum gehen, wie ich die Aufnahme der Messdaten zeitlich steuern kann. Um das zu erreichen, habe ich mich mit der Elapsed-Time-VI und dem Umgang mit dynamischen Event-Strukturen auseinander gesetzt. Folgendes soll die VI am Ende können:
User stellt eine Zeit ein, wie lange er Messdaten aufnehmen will --> User drückt auf Schalter, um Aufnahme von Messdaten zu starten --> Messdaten werden für die von ihm definierte Zeit aufgenommen --> Wenn die Zeit abgelaufen ist, wird die Aufnahme von Messdaten gestoppt und der Timer zurückgesetzt.
In dieser Frage soll es sich zunächst nur um den Umgang mit der Zeitsteuerung drehen. Im Anhang findet ihr ein Bild des BD sowie des VI als Datei. Folgende Fehler bestehen mit dem aktuellen Programm:
- Wenn die 10s abgelaufen sind, wird ein Fehler für das "Generate User Event" -Element angezeigt. Das macht für mich auch Sinn, der immer noch gedrückte Button [True] fordert ein Starten der Event-Struktur. Das steht jedoch im Widerspruch mit der Tatsache, dass die abgelaufene Zeit ein Stoppen der unteren While-Schleife fordert.
Die Lösung wäre hier, dass man im Zusammenhang mit dem ablaufen der Zeit den Timer zurücksetzt. Eine erste Idee, wie ich die widersprüchlichen Signale umgehen kann, wäre den Timer mit einer Case-Struktur und nicht mit dem Stopp der unteren Schleife zu verbinden. Was haltet ihr von dieser Idee? Dann wäre aber noch nicht das Problem mit dem zurücksetzen des Timers gelöst.
- Folgendes Scenario: Ich drücke den Button [True] --> Zeit startet, läuft für 5s --> Ich drücke Button wieder [False] --> Indikator zeigt stoppen der Zeit an --> Drücke Button wieder [True] --> Indikator springt zur Zeit seit dem ersten [True].
Auf jeden Fall hängen das erste und das zweite Problem zusammen. Offensichtlich bewirkt ein ausschalten Knopfes nicht, dass die Event-Struktur gestoppt wird. Warum ist das so?
Ich freue mich auf eure Antworten und vielen Dank für die Hilfe im Voraus!