LabVIEWForum.de
Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: Datenerfassung (DAQ) (/Forum-Datenerfassung-DAQ)
+---- Thema: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell (/Thread-Bei-gleichfoermiger-Bewegung-zaehlt-Counter-unterschiedlich-schnell)

Seiten: 1 2


Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - SiroCool - 11.07.2012 21:15

Hallo. Ersteinmal ein Dankeschön an die vielen Helfer hier. Habe hier schon seit einiger Zeit viel Hilfe bekommen allein durch Lesen eurer Beiträge.

Nun zu meinem Problem bei dem ich so nicht weiterkomme:

Ich habe eine Encoderbox USBQuad08 von MC um damit die Counts von meinem Inkrementaldrehgeber zu zählen. Der Drehgeber soll für die Problemstellung jetzt einfach eine gleichförmige Drehzahl bzw eine gleichförmige Winkeländerung wiedergeben. Mit den von MC gegebenen Bibliotheken habe ich, gezwungenermaßen, eine zeitgesteuerte Schleife erstellt, die den Winkelverlauf und die Winkelgeschwindigkeit darstellt. Desweiteren habe ich mir immer den aktuellen count ausgeben lassen.

Jetzt ist das Problem, dass der Winkelverlauf KEINE Gerade ist, und dementsprechend die Winkelgeschwindigkeit nicht konstant ist. Im Bild sehr gut zu erkennen. Es wird auch der aktuelle count unterschiedlich schnell gemessen, zum Teil hängt die Anzeige kurz und dann steigt der count schneller als er der Bewegung nach sollte. Fast so, als will das Programm die vermissten counts nachholen.

Ich schätze jetzt einfach mal, dass da irgendwas mit der Synchronisation schiefläuft oder irgendwas in der Schleife mächtig hängt. Da ich aber dieses blöde MC Teil habe komme ich mit bisherigen ähnlichen Problemstellungen/Lösungen hier aus dem Forum nicht weiter.

Ich hänge nochmal das ganze VI dran. Der Einfachheit halber könnt ihr den Case 2(manuelle Verstellung) betrachten.

Vielen Dank im Voraus !


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - Achim - 12.07.2012 05:52

Hi,
ich kenne mich mit "Timed Loops" nicht so genau aus...ich glaube aber, dass auch die nie gleich lange für einen Durchlauf benötigen, wenn der enthaltene auszuführende Code einfach länger braucht. Die Ausführung eines Code-Segments wird ja nicht einfach abgebrochen, wenn die umgebende Schleife sagt "jetzt wird's aber Zeit"...was sollte da an den Ausgängen der SubVIs denn dann an Daten geliefert werden? Ich vermute, das daher deine krummen Kurven kommen. Auch wenn ich dein VI nicht verstehe...das ist mir zu unaufgeräumt...um es mal - entgegen meinem momentanen Empfinden dem gegenüber - höflich auszudrücken!

Kann es sein, dass deine HW eben nur ein Zähler ist? Für's zählen ist es ja egal, wie schnell...die HW kriegt jeden Count mit. Für eine Darstellung über Zeit/Drehwinkel/etc pp. brauchst du halt noch die Werte für die entsprechende X-Achse (z.B. Zeitstempel von der HW).

A.


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - Lucki - 12.07.2012 07:19

Was für eine NI-Karte hast Du denn für Analog In/Out? Normalerweise haben die Universalmesskarten von NI auch einen Quadratur-Encoder, den würde ich dann verwenden. Dann hättest Du das Problem nicht. Die Messwerterfassung erfolgt bei diesen Karten autark auf der Karte. Die Messergebnisse werden über Puffer übergeben und sind völlig unabhängig vom Programm, also auch von der evtl unterschiedlichen Geschwindigkeit von irgendwelchen Schleifen.
Falls Deine Karte nichts anderes macht als einen momentanen Zählerstand auszugeben, dann sehe ich jedenfalls schwarz. Das Ganze passt dann nicht zu einen Nicht-Echtzeit-Betriebssystem wie Windows.


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - eb - 12.07.2012 08:29

Hallo,

erkenne ich es richtig, dass du immer nur einen Kanal mit einem Wert pro Schleifendurchlauf einließt? Wie schnell müsste deine Schleife laufen, damit alles korrekt funktioniert?
Ich würde empfehlen, dass beim DAQ-Read immer 1/10 der Messfrequenz an Samples pro Schleifendurchlauf für einen Kanal erfasst werden. Bsp: Du erfässt mit 1000Hz einen Kanal -> DAQ-read wäre dann 1KanalNElemente(100SamplesProKanal). So hat deine Schleife 100ms Zeit...

Und ja, ich kenne dass auch so wie Achim es geschrieben hat. Läuft eine TimedLoop wird der aktuelle SDL (Schleifendurchlauf) nicht abgebrochen, nur weil es Zeit wird. Dafür wird dann an den nächsten SDL die Info "verspätete Beendigung" oder so ähnnlich weitergerechet und es gibt die TimedLoop-Einstellungen für die verpassten SDL und die Beibehaltung der (zeitlichen) Phase - die spielen in diesem Zusammenhang auch eine Rolle.


Gruß


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - SiroCool - 12.07.2012 09:26

Also die Karte für die analogen IO ist eine USB-6251. Die Quadbox gibt nur den zählerstand aus und immer wenn sich der count ändert, soll das in einen Winkel umgerechnet werden. Über die Anzahl der Schleifendurchläufe(hier bei der Timed Loop dann die Periode) wird dann die Geschwindigkeit berechnet. Oder ist da das problem? Das ich statt der Periode besser den zähler der timed loop nehme. Oder ist das das gleiche.
Die analogen Kanäle sind eigentlich ja nicht das Problem. Wenn ich die aus der Schleife nehme und das System manuell mit gleicher Geschwindigkeit betreibe habe ich immer noch den falschen Winkelverlauf

Aber auch wenn sich der count nur sehr langsam ändert, viel langsamer als ein Schleifendurchlauf, kommen diese Kurven bei der Geschwindigkeit bzw beim Winkelverlauf.

Die Hardware war so gegeben und ich kann daran nichts ändern.

Ich kenne mich auch nicht wirklich mit timed loops aus. Ich dachte die Schleife kann ruhig schnell laufen(dt 1ms). Wenn sich nichts ändert wird ja durchgelaufen bis sich der count ändert und in dem Moment hab ich ja über die timed loop einen Zeitstempel.


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - Lucki - 12.07.2012 09:43

da hast Du aber Glück mit Deiner NI-Karte. Auszug aus Spezifikation:

General-Purpose Counter/Timers
Number of counter/timers 2
Resolution 32 bits
Counter measurements Edge counting, pulse, semi-period, period, two-edge separation
Position measurements X1, X2, X4 quadrature encoding with Channel Z reloading; two-pulse encoding
Output applications

Pulse, pulse train with dynamic updates, frequency division, equivalent time
sampling
....

Mit der anderen Karte, das ist vermutlich eine Sackgasse. Wenn Du Anfänger bist, dann studiere erst mal ein paar Tage die LV - Beispiele zu Messung von Winkel, Winkelgeschwindigkeit etc. Es ist sogar wahrscheinlich, dass eines der Beispiele recht genau auf Deine Anwendung passt.


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - GerdW - 12.07.2012 09:45

Hallo Siro,

Zitat:Die Hardware war so gegeben und ich kann daran nichts ändern.
Es verlangt doch niemand Änderungen an der Hardware. Aber du kannst die vorhandene Hardware doch besser ausnutzen: verwende den Counter der USB6251-Karte...


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - SiroCool - 12.07.2012 11:11

Ok. Mh und den Inkrementalgeber kann ich so an die NIBox anschließen? Dann werde ich das mal ausprobieren. Könnt ihr mir erklären warum das dann besser ist und mit der Quadbox nichts wird? Denn wenn ich jetzt manuell drehe ist der Zähler ja mehr als schnell genug. Ich versteh das nicht^^


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - Lucki - 12.07.2012 12:07

Warum den Zähler dieser Karte nehmen?
Weil das was die Karte leistet viel mehr als einfaches Zählen ist. Das ganze System zur Erfassung von Winkelgeschwindigkeiten, bestehend aus Echtzeitsystem mit Counter, Timer und dem nötigen Programmcode ist auf der Karte mit enthalten. Das Einzige, was (neben der Kartenkonfiguration) noch zu machen ist: Die mundgerecht im Puffer bereitliegenden Daten abzurufen.


RE: Bei gleichförmiger Bewegung zählt Counter unterschiedlich schnell - SiroCool - 12.07.2012 12:17

OK super danke für die Hilfe. Ich werde das morgen ausprobieren. Wenn ich den Inkrementalgeber an die NIBox angeschlossen bekomme.Das son 5 pol kabel oder so^^ naja