INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

Hohe Abtastung aber nur bestimmte Werte nutzen



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!

06.07.2009, 15:34
Beitrag #1

johannes_r Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 67
Registriert seit: Apr 2009

LV2010/2009/8.6.1...
2010
EN

97450
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
Hallo zusammen,

der Thementitel ist sicherlich etwas verwirrend;)hoffe ihr versteht es wenn ich er erklärt habe.

ich möchte eine Analogspannung (Momentmesswelle) beispielsweise mit 10kHz und 100 Samples abtasten. Somit bekomme ich dann jede 0.01s ein Datenpaket. Dieses Array lese ich mit daqmx read aus und bilde den Mittelwert. Für eine Berechnung erfasse ich parallel eine Drehzahl über eine Frequenzmessung. Laut einem Applikations Ingenieur von NI tastet eine Counterkarte immer mit der maximalen Abtastrate ab und übergibt aber halt nur einen Wert wenn ich einen auslese. Ich hätte jetzt auch gern ein Array von Drehzahlmesswerten ohne eine Abtastrate einzustellen. Klingt etwas verwirrend ich weiß :huh:ich versuchs mal anders...ich erfasse jede 0,0001s einen Analogwert und möchte genau zu dieser Zeit auch einen Abtastwert der Drehzahl. Ich könnte jetzt die gleiche Abtastfrequenz einstellen was ich aber nicht möchte weil diese für das Drehzahlsignal zu gering wäre. Ich möchte also eine hohe Abtastfrequnz bzw keine Abtastfrequenz der Drehzahl einstellen, aber immer dann einen Wert in ein Array (Anzahl der Samples die ich später mit daqmx read lese) speichern, wenn ich einen Messwert am Analogeingang abtaste. Auch hier möchte ich dann zB 100 Samples abtasten. Dann müssten ja beide Datenpakete zur gleichen Zeit bereitstehen...

Vielen Dank für eure (hoffentliche) HilfeWink

gruß johannes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
09.07.2009, 08:06
Beitrag #2

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
Bahn

Gruß Markus

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 08:39
Beitrag #3

Lucki Offline
Tech.Exp.2.Klasse
LVF-Team

Beiträge: 7.699
Registriert seit: Mar 2006

LV 2016-18 prof.
1995
DE

01108
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
' schrieb:Ich hätte jetzt auch gern ein Array von Drehzahlmesswerten ohne eine Abtastrate einzustellen.
Ich verstehs ja auch nicht bzw. mir fehlt die Zeit dazu. Nur so viel: Bei Impulsmesungen, Flankenzählung usw. mußt Du nur als Betriebsweise "Kontinuierlich" vorgeben, und schon erhälst Du als Ausgabe das von Dir gewünschte Array von Zählwerten. Also wenn Du z.B 100ms lang zählst und du liest mit DAQVisa Read immer die letzten 10 Werte aus dem Buffer aus, dann erhälst Du als Ergebnis ein Array der letzten 10 Zählungen. (Drehzahlmessungen)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 08:55
Beitrag #4

johannes_r Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 67
Registriert seit: Apr 2009

LV2010/2009/8.6.1...
2010
EN

97450
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
Also wie schon gesagt erfasse ich eine Analogspannung mit beispielsweise 10kHz und 100 Samples also steht jede 0,01s ein Datenpaket zur Verügung, richtig? Ich möchte jetzt ebenfalls ein Datenpaket der Drehzahlen was ebenfalls aus 100 Samples besteht und aus dem gleichen Zeitfenster wie das Paket der Analogmesswerte also auch alle 0.01s. Um ein solches zu erhalten müsste ich ja auch mit der gleichen Frequenz abtasten wie bei der Spannungsmessung; mit 10kHz also. Jedoch brauch ich um die Drehzahl zu erfassen nach Shannon oder wie das heißt ja 2x fmax fmax ist bei einer Drehzahl von 6000 U/min 36kHz also brauch ich 72kHz Abtastrate um die Frequenz zu bestimmen, oder? würde ich diese einstellen und 100 Samples einstellen hätte ich ja schon nach 0.0014s die 100 Werte voll. Ich möchte aber die Frequenz bestimmen und halt dann nur jeden 100ten Wert beispielsweise der Abtastung auch wirklich nutzen.

Hoff es ist bisschen verständlicherWink
gruß johannes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 09:11
Beitrag #5

Y-P Offline
☻ᴥᴥᴥ☻ᴥᴥᴥ☻
LVF-Team

Beiträge: 12.612
Registriert seit: Feb 2006

Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN

71083
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
Bei 6000 U/min hast Du doch 100 Hz. Es wird doch durch 60 geteilt. Unsure

Gruß Markus

' schrieb:6000 U/min 36kHz

--------------------------------------------------------------------------
Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 10:36
Beitrag #6

johannes_r Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 67
Registriert seit: Apr 2009

LV2010/2009/8.6.1...
2010
EN

97450
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
nein weil es ein inkrementalgeber mit 360 Impulsen/Umdrehung ist. dann müsste ich 36 kHz haben wenn ich alles richtig verstanden habeSmile
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 13:03
Beitrag #7

chrissyPu Offline
LVF-Stammgast
***


Beiträge: 467
Registriert seit: Jun 2006

2014 PDS
2006
DE_EN

64283
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
Ja, das hättest Du vorher mal sagen können...Wink

Je nachdem, was für Hardware du hast, wäre ggf. ein Counter für dein Signal das richtige - wenn du den Wert in 10 kHz-Schritten abtastet (wobei ich mir ehr unsicher bin, dass das geht...), kannst du einfach die Werte voneinander abziehen und dann auf die Drehzahl schließen. Ansonsten wirst du über die hohe Abtastrate nicht hinwegkommen, dann musst du entsprechende Bereiche festlegen (die vielen Werte der Drehzahl halt auf die 100 Werte Mappen) und dann jeweils die Frequenz ausrechnen... Ich würde nach der Counter-Sache schauen...Wink

Hab gerade nochmal deinen ersten Post gelesen: du musst den Inkrementalgeber entsprechend mit 72 kHz abtasten - das heißt aber nicht, dass die Drehzahl auch so dynamisch ist. Sprich, Wenn Du per Counter Dir ein Drehzahlsignal generierst (z.B. durch Frequenzmessung) kannst du das so schnell abtasten, wie Du Werte brauchst. Dann müsstest du nochmal abschätzen, ob das so realistisch ist, aber ich denke, das sollte eigentlich dynamisch in ordentliche Bereichen sein.

Grüße,

ch
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
09.07.2009, 17:47
Beitrag #8

zaphodthepresident Offline
LVF-Professional


Beiträge: 5
Registriert seit: Mar 2008

6.0.2 + 7.1 + 8.5.1 + LV2010
1993
EN

72147
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
Hallo,
wenn ich dein Problem richtig verstanden habe, mußt du so vorgehen, daß das Signal, welches die höchste Abtastrate erfordert, die Abtastrate für alle Signale vorgibt, die du messen möchtest. Du mißt dann alle Signale (n Kanäle auf deiner DAQ-Karte) kontinuierlich (d.h. kontinuierliche ADC) und liest periodisch (while-loop!) n Samples für jeden Kanal aus. Damit haben schon einmal alle Signale das gleiche "Zeitfenster".
Wenn nicht alle gemessenen Signale die eingestellte (hohe) Abtastrate erfordern, führst du anschließend mit deren Meßwerten eine entsprechende Datenreduktion durch. Dies ist insofern wichtig, damit die danach stattfindende weitere "Datenverarbeitung" nicht soviel Zeit in Anspruch nimmt u. dir der oder die Datenpuffer überlaufen.

Gruß,
zaphodthepresident
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2009, 07:48
Beitrag #9

johannes_r Offline
LVF-Gelegenheitsschreiber
**


Beiträge: 67
Registriert seit: Apr 2009

LV2010/2009/8.6.1...
2010
EN

97450
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
hallo zusammen,

entschuldigung dass ich erst jetzt was zu euren antworten schreibe...

@zaphodthepresident
würde heißen ich muss mit ~72kHz jeden Kanal abtasten. Das Signal des Inkrementalgebers wird mit einer Timer/Counter Karte (NI-PXI 6602) gemessen, die Analogwerte mit einer Mulit I/O Karte (NI-PXI 6229). Ich habe 4 Analogmesswerte und 2 Analogausgaben. Die Karte hat soweit ich weiß 250kS/s. Aber das müsste die Summenabtastrate sein was bedeutet dass für jeden Kanalo nur ~60kS/s möglich sind. Von daher kann ich garnicht mit der höchsten Auftretenden Frequenz abtasten oder?

Ist es nicht möglich einen Abtastrate an dem Task zur Erfassung der Frequenzmessung (Drehzahlmessung) zu definieren, und eben beispielsweise 1000 Samples bei Samples per Channel anzugeben; wobei die Samples aber nicht mit dem Abtasttakt des eigenen Tasks geschrieben werden, sondern mit dem Abtasttaktes des Analoginput Taktes? So ne Art Triggerung. Also Hoch abtasten, werte Aber nur in das Array schreiben wenn eine Flanke des AI Taktes vorhanden ist?

Danke Gruß Johannes
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
16.07.2009, 10:05 (Dieser Beitrag wurde zuletzt bearbeitet: 16.07.2009 10:06 von cb.)
Beitrag #10

cb Offline
LVF-SeniorMod


Beiträge: 1.731
Registriert seit: Feb 2006

2018SP1
2001
EN

40xxx
Deutschland
Hohe Abtastung aber nur bestimmte Werte nutzen
nein

du machst folgendes:
- du erstellst dir mit der PXI 6602 einen Mess-Takt in der gewünschten Frequenz und routest diesen auf eine PXI-Trigger-Leitung, z.B. PXI-TRIGGER-1
- du ersellst einen AI-Task mit der gewünschten Anzahl an Kanälen, beim VI Timing gibst du an, dass du einen externen Sample-Takt verwenden möchtest und zwar genau den von PXI-Trigger 1
- du erstellst einen Drehzahl-Task mit der 6602, als Abtast-Takt gibst du wieder um extern von PXI-Trigger 1 an

damit ist dann schonmal sichergestellt, dass beide Tasks mit dem gleichen Takt arbeiten und synchron messen.

das mit dem Drehzahl-Task ist etwas verwirrend dargestellt worden vom NI-AE. Die 6602 arbeitet tatsächlich intern mit der max. Auflösung von 80 MHz, sonst würdest du ja u.U. Pulse vom Encoder verlieren. Das interessiert dich aber eigentlich gar nicht, sieh es einfach so: wenn du mehr als 20 Mhz Pulse auf den Encoder-Eingang gibts hast du gute Chancen dass sich die 6602 verzählt, aber von diesem Wert bist du ja meilenweit entfernt. Der Abtast-Takt den du für die 6602 angibst bedeutet eigentlich nur, in welchen Abständen der Zähler ausgelesen wird. Das kann man praktisch genauso betrachten wie eine Analoge Messung, du bekommst halt innerhalb deines gewünschten Zeitfensters X Werte geliefert bei denen du weißt dass der zeitliche Abstand zwischen den Werten genau y ms beträgt.

Letzteres dürfte dich aber vermutlich gar nicht interessieren, weil du ja nur die Drehzahl kennen willst, und da ergibt sich bei der von dir geforderten sehr schnellen Abtastung ein Problem: damit du die Drehzahl ermitteln kannst musst du die Winkeländerung durch die Zeit dividieren. Wenn du nun z.B. ein Array mit 100 Winkeln zurückbekommst die mit 10 kHz gesampled wurden, dann bildest du die Differenz aus erstem Winkel (Array-Index 0) und letzten Winkel (Array Index 99) und dividierst das Ganze durch 0,01 Sekunden. Da die Zeit sehr klein ist und die Winkel-Änderung ggf. (gerade bei kleinen Drehzahlen) auch sehr klein sein kann bekommst du eine große Streuung - etwas plausibler formuliert, ein Tick des Encoders mehr oder weniger macht gleich ein paar 10 U/min mehr oder weniger aus. Als praktikable Abtast-Rate bei 360 Striche Encodern hat sich eine Mittelungs-Zeit für die Drehzahl von 250 ms herauskristallisiert

zurück zu den Tasks:
die Tasks sind erstellt und nun muss man sie nur noch synchron starten. Dazu bietet sich an bei der Encoder-Messung als Start-Trigger-Bedingung eine digitale Flanke zu verwenden. Die Flanke bekommst du z.B. in dem du den AI-Start-Trigger von der M-Serie auf eine weiter PXI-Trigger-Leitung routest.

Die Daten holst du am besten per Hardware-Timing auf den AI-Task ab, also die Anzahl Samples auf z.B. 100 stellen, beim Encoder holst du immer alle ab ...

Da du nach dieser Ausführung vermutlich gleich nach einem Beispiel fragen wirst: ja, die gibt es: im Example-FinderWink

Und noch ein Hinweis: ich würde das Moment mit max. 0,5 mal Bandbreite der Messwelle abtasten, da solltest du mal in der Doku schauen, wieviel das ist. 10 kHz halte ich schon für sehr ambitioniert ...

http://www.rotabench.com - rotierende Prüfstände nach dem Baukasten-Prinzip
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Bestimmte Anzahl von Impulsen auf ctr0 und ctr1 ausgeben alex-one 1 2.944 15.04.2019 17:50
Letzter Beitrag: jg
  DAQ-Abtastung stephan480 8 4.901 12.10.2018 11:16
Letzter Beitrag: stephan480
  DI und DO zeitgleich nutzen (NI 9375) SmokiDok 3 4.120 29.06.2017 18:25
Letzter Beitrag: GerdW
  Abtastung, FFT und Auflösung Mr. Crypsis 4 5.313 06.06.2017 14:16
Letzter Beitrag: HVo
  CJC Kompensation im SCB-68A als Temperatursensor nutzen? gottfried 2 3.649 09.03.2017 10:12
Letzter Beitrag: gottfried
  3 analoge Ein- und Ausgänge nutzen karo_ass 5 5.160 29.10.2013 12:56
Letzter Beitrag: karo_ass

Gehe zu: