07.11.2013, 10:18
Guten Morgen,
bin seit ein paar Tagen stolzer Besitzer eines NI-USB6211 und mache jetzt meine ersten Gehversuche damit. Habe mal ein kleines Beispiel VI zusammen gebastelt, das verdeutlichen soll, wie ich das später in mein richtiges Programm integrieren möchte. Ich habe hier insgesamt drei Tasks. Davon sind zwei zum Messen, einer zum Schalten eines Digitalen Ausgangs (zum Ein- bzw. Ausschalten einer Spannungsquelle). Die Reihenfolge in der die einzelnen VIs aufgerufen werden, schaffe ich über das Fehlercluster. Vor jeder Messung aktiviere ich den digitalen Ausgang, warte kurz (mit eigenem Warte Sub-Vi) und messe dann. Anschließend schalte ich wieder ab bis die nächste Messung startet. Meine Fragen dazu:
1. Wenn ich die Abtastrate hoch einstelle, bekomme ich mit der "Lampe" die Fehlermeldung, dass Werte verloren gehen. Sehe ich das richtig, dass das nur an der Lampe liegt, weil ich dadurch sehr langsam im Auslesen der Werte bin und so mein Buffer überläuft?
2. Wenn ich einen Task, wie hier den digitalen Ausgang, während der kompletten Messung benötige.. würdet ihr den dann stoppen bis ihr ihn wieder benötigt oder einfach durchlaufen lassen, so wie ich jetzt im Beispiel?
3. Bei der ersten Messung könnte ich die 5 Sekunden Messdauer ja auch erreichen, indem mir bei der Abtastrate von 1000Hz 5000 Werte verlange. Das mache ich hier aber nicht, weil ich zumindest nach jeder Sekunde die Möglichkeit haben möchte die Messung abzubrechen. Gibt es eine andere Möglichkeit so ein DAQ-Lesen VI abzubrechen?
4. Bei der zweiten Messung führe ich in jedem Schleifendurchlauf noch ein paar andere Aufgaben aus bevor ich messe. Das ist hier durch ein Warte-VI dargestellt. Danach starte ich mein Auslesen und stoppe den Task bis ich im nächsten Durchlauf nach Ablauf des Warte-Vis wieder starte. Bekomme ich so genau die Messwerte, die nach dem Ende der Wartezeit auftreten? Das VI zur Vorgabe der Abtastrate ist hier in der Schleife, da ich über die Anzahl der Samples meine Messzeit variieren möchte.
5. Und die letzte Frage: an einer Stelle in meinem Programm werde ich nur einen Messwert pro Schleifendurchlauf benötigen. Gleichzeitig wird in dieser While-Schleife noch ein anderer Sensor ausgelesen (nicht über die NI-Karte). Optimal wäre es natürlich, wenn ich das Hardware getaktet umsetzen könnte. Leider gibt mir das andere Gerät aber keinen Trigger aus. Kann ich dann einfach nur ein Sample auslesen und davon ausgehen, dass die Werte ziemlich genau zur selben Zeit aufgenommen wurden, da die beiden VIs in der selben Schleife fast gleichzeitig ausgerufen werden? Welche Rolle spielt dann meine Abtastrate von der NI-Karte, da meine Abtastrate ja dann eigentlich von der Zeit der Abarbeitungszeit der Messschleife in der beide VIs liegen vorgegeben wird.
Ist ziemlich viel Text geworden.. hoffe ich konnte halbwegs verdeutlichen wo meine Probleme liegen. Danke für die Unterstützung.. ihr helft mir wirklich sehr!!!
bin seit ein paar Tagen stolzer Besitzer eines NI-USB6211 und mache jetzt meine ersten Gehversuche damit. Habe mal ein kleines Beispiel VI zusammen gebastelt, das verdeutlichen soll, wie ich das später in mein richtiges Programm integrieren möchte. Ich habe hier insgesamt drei Tasks. Davon sind zwei zum Messen, einer zum Schalten eines Digitalen Ausgangs (zum Ein- bzw. Ausschalten einer Spannungsquelle). Die Reihenfolge in der die einzelnen VIs aufgerufen werden, schaffe ich über das Fehlercluster. Vor jeder Messung aktiviere ich den digitalen Ausgang, warte kurz (mit eigenem Warte Sub-Vi) und messe dann. Anschließend schalte ich wieder ab bis die nächste Messung startet. Meine Fragen dazu:
1. Wenn ich die Abtastrate hoch einstelle, bekomme ich mit der "Lampe" die Fehlermeldung, dass Werte verloren gehen. Sehe ich das richtig, dass das nur an der Lampe liegt, weil ich dadurch sehr langsam im Auslesen der Werte bin und so mein Buffer überläuft?
2. Wenn ich einen Task, wie hier den digitalen Ausgang, während der kompletten Messung benötige.. würdet ihr den dann stoppen bis ihr ihn wieder benötigt oder einfach durchlaufen lassen, so wie ich jetzt im Beispiel?
3. Bei der ersten Messung könnte ich die 5 Sekunden Messdauer ja auch erreichen, indem mir bei der Abtastrate von 1000Hz 5000 Werte verlange. Das mache ich hier aber nicht, weil ich zumindest nach jeder Sekunde die Möglichkeit haben möchte die Messung abzubrechen. Gibt es eine andere Möglichkeit so ein DAQ-Lesen VI abzubrechen?
4. Bei der zweiten Messung führe ich in jedem Schleifendurchlauf noch ein paar andere Aufgaben aus bevor ich messe. Das ist hier durch ein Warte-VI dargestellt. Danach starte ich mein Auslesen und stoppe den Task bis ich im nächsten Durchlauf nach Ablauf des Warte-Vis wieder starte. Bekomme ich so genau die Messwerte, die nach dem Ende der Wartezeit auftreten? Das VI zur Vorgabe der Abtastrate ist hier in der Schleife, da ich über die Anzahl der Samples meine Messzeit variieren möchte.
5. Und die letzte Frage: an einer Stelle in meinem Programm werde ich nur einen Messwert pro Schleifendurchlauf benötigen. Gleichzeitig wird in dieser While-Schleife noch ein anderer Sensor ausgelesen (nicht über die NI-Karte). Optimal wäre es natürlich, wenn ich das Hardware getaktet umsetzen könnte. Leider gibt mir das andere Gerät aber keinen Trigger aus. Kann ich dann einfach nur ein Sample auslesen und davon ausgehen, dass die Werte ziemlich genau zur selben Zeit aufgenommen wurden, da die beiden VIs in der selben Schleife fast gleichzeitig ausgerufen werden? Welche Rolle spielt dann meine Abtastrate von der NI-Karte, da meine Abtastrate ja dann eigentlich von der Zeit der Abarbeitungszeit der Messschleife in der beide VIs liegen vorgegeben wird.
Ist ziemlich viel Text geworden.. hoffe ich konnte halbwegs verdeutlichen wo meine Probleme liegen. Danke für die Unterstützung.. ihr helft mir wirklich sehr!!!