03.12.2014, 07:46
03.12.2014, 07:58
Die Zeit die mein Programm benötigt um zu merken, dass sie Spannung abgefallen ist und der Ereigniscase Stop ausgelöst werden muss.
Es ist nämlich so, dass ich einen Nachlauf habe von ca 2s, selbst wenn ich die Kabel abziehe und die Spannung ruckartig auf 0 abfällt.
Es ist nämlich so, dass ich einen Nachlauf habe von ca 2s, selbst wenn ich die Kabel abziehe und die Spannung ruckartig auf 0 abfällt.
03.12.2014, 08:56
Hallo Joana,
entweder gibst du uns vollständige VIs oder du startest selbst mit dem Debuggen…
- Benötigt dein VI so lange für eine Schleifeniteration?
- Ist der DAQ-Buffer so voll (bzw. wird er so langsam ausgelesen), dass du die Messwerte erst verzögert bearbeiten kannst?
Das sind so die Fragen, die man anhand deines Bildes überhaupt nicht beantworten kann. Und wenn du spezielle DAQ-Hardware verwendest, wirst du solche Fragen auch gern selbst beantworten dürfen…
entweder gibst du uns vollständige VIs oder du startest selbst mit dem Debuggen…
- Benötigt dein VI so lange für eine Schleifeniteration?
- Ist der DAQ-Buffer so voll (bzw. wird er so langsam ausgelesen), dass du die Messwerte erst verzögert bearbeiten kannst?
Das sind so die Fragen, die man anhand deines Bildes überhaupt nicht beantworten kann. Und wenn du spezielle DAQ-Hardware verwendest, wirst du solche Fragen auch gern selbst beantworten dürfen…
03.12.2014, 09:19
(03.12.2014 08:56 )GerdW schrieb: [ -> ]Hallo Joana,
entweder gibst du uns vollständige VIs oder du startest selbst mit dem Debuggen…
- Benötigt dein VI so lange für eine Schleifeniteration?
- Ist der DAQ-Buffer so voll (bzw. wird er so langsam ausgelesen), dass du die Messwerte erst verzögert bearbeiten kannst?
Das sind so die Fragen, die man anhand deines Bildes überhaupt nicht beantworten kann. Und wenn du spezielle DAQ-Hardware verwendest, wirst du solche Fragen auch gern selbst beantworten dürfen…
Hallo!
Im Anhang nun das vollständige VI. Ich habe keine Ahnung wie ich die Schleifeniteration teste, und wo kann ich den Buffer auslesen?
Treiberdownload:
für isel: https://www.isel.com/at/labview.html
für labjack: http://labjack.com/u3
03.12.2014, 09:37
Sorry,
aber ich habe weder deine Geräte noch Lust, mir Treiber für fremde Geräte zu installieren!
Also: selbst debggen!
aber ich habe weder deine Geräte noch Lust, mir Treiber für fremde Geräte zu installieren!
Also: selbst debggen!
03.12.2014, 10:50
Okay, wie verkürze ich denn die Bearbeitungszeit der Schleifeniteration und wie lese ich den Buffer aus?
03.12.2014, 11:00
Hallo Joanna,
Wenn man solche grundsätzlichen Probleme lösen will, erstellt man sich erst einmal ein kleines VI, mit dem man eine einzelne Funktion testen kann. In deinem Fall: möglichst verzögerungsfreies Einlesen einer Spannung. Wenn dieses Test-VI dann so funktioniert, wie man es haben will, integriert man die gefundene Lösung in sein eigentliches Haupt-VI…
Zitat:wie verkürze ich denn die Bearbeitungszeit der SchleifeniterationWeniger Wartezeiten!
Zitat:wie lese ich den Buffer aus?Das sollte in der Anleitung zu deinem LabJack stehen…
Wenn man solche grundsätzlichen Probleme lösen will, erstellt man sich erst einmal ein kleines VI, mit dem man eine einzelne Funktion testen kann. In deinem Fall: möglichst verzögerungsfreies Einlesen einer Spannung. Wenn dieses Test-VI dann so funktioniert, wie man es haben will, integriert man die gefundene Lösung in sein eigentliches Haupt-VI…
03.12.2014, 11:27
Das Einlesen der Spannung am Labjack passiert ohne Verzögerung auch die Änderung der Spannung fällt direkt ab und ist sichtbar.
Ich prüfe ja ständig die Spannung, die mir eine Bedingung liefert für die Bewegung, also bei entsprechender Spannung löst entsprechender Ereigniscase aus. Beim Starten funktioniert das einwandfrei ohne Zeitverzögerung. Nur der Stop Ereigniscase benötigt länger bis er ausgelöst wurde, nachdem der Labjack erfasst hat, dass die Spannung abfällt.
Wo genau greife ich denn in die Wartezeiten ein? Und wir minimiere ich diese?
Ich habe doch nur zwei Wartezeiten einmal die, die den Timeoutcase auslöst und einmal das Interval von 500ms das den Labjack ausliest. Verkürze ich dieses Intervall läuft die Achse nicht mehr, anscheinend ist die Zeit zu kurz um ein Signal als Startbedingung zu verarbeiten und meinen Status auszulesen...
Ich verstehe einfach nicht warum das starten sofort funktioniert, das Stoppen allerdings eine Verzögerung aufweist.
Ich weiß überhauot nicht wie ich dieses Problem lösen soll.
Ich erbitte Hilfe.
Danke Joana
Ich prüfe ja ständig die Spannung, die mir eine Bedingung liefert für die Bewegung, also bei entsprechender Spannung löst entsprechender Ereigniscase aus. Beim Starten funktioniert das einwandfrei ohne Zeitverzögerung. Nur der Stop Ereigniscase benötigt länger bis er ausgelöst wurde, nachdem der Labjack erfasst hat, dass die Spannung abfällt.
Wo genau greife ich denn in die Wartezeiten ein? Und wir minimiere ich diese?
Ich habe doch nur zwei Wartezeiten einmal die, die den Timeoutcase auslöst und einmal das Interval von 500ms das den Labjack ausliest. Verkürze ich dieses Intervall läuft die Achse nicht mehr, anscheinend ist die Zeit zu kurz um ein Signal als Startbedingung zu verarbeiten und meinen Status auszulesen...
Ich verstehe einfach nicht warum das starten sofort funktioniert, das Stoppen allerdings eine Verzögerung aufweist.
Ich weiß überhauot nicht wie ich dieses Problem lösen soll.
Ich erbitte Hilfe.
Danke Joana
03.12.2014, 11:56
Ich glaube es liegt an meiner Statusabfrage, die prüft ob die Achse sich bewegt. Dort geht die Zeit verloren bis die Stop Bedingung ausgeführt wird.
Gibt es da eine Möglichkeit diese Statusabfrage zu beschleunigen?
Wenn ja kann mir jemand ein Beispiel zeigen?
Besten Dank
Joana
Gibt es da eine Möglichkeit diese Statusabfrage zu beschleunigen?
Wenn ja kann mir jemand ein Beispiel zeigen?
Besten Dank
Joana
03.12.2014, 12:38
Meinst du die Schleife mit der 500ms Wartezeit?