LabVIEWForum.de - Gebersignal auslesen

LabVIEWForum.de

Normale Version: Gebersignal auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo,

ich habe ein kleines Problem. Ich möchte die Drehzahl bzw. Frequenz eines Drehgebers auslesen (Kanäle A, A/, B, B/ Z, Z/). Die Signale kann gehen in einen Umrichter und von dort gibt es eine Möglichkeit sie wieder auszulesen. Ich habe die PCI-6229 Messkarte . Über den Counter müssten das doch eigentlich gehen. Hab nun schon einiges probiert, habe es aber nicht hinbekommen. Hat hiermit jemand schon Erfahrung und kann mir ein paar Tipps oder Bsp-Programm geben?

Danke schon mal für eure Hilfe

Pascal
' schrieb:Hallo,

ich habe ein kleines Problem. Ich möchte die Drehzahl bzw. Frequenz eines Drehgebers auslesen (Kanäle A, A/, B, B/ Z, Z/). Die Signale kann gehen in einen Umrichter und von dort gibt es eine Möglichkeit sie wieder auszulesen. Ich habe die PCI-6229 Messkarte . Über den Counter müssten das doch eigentlich gehen. Hab nun schon einiges probiert, habe es aber nicht hinbekommen. Hat hiermit jemand schon Erfahrung und kann mir ein paar Tipps oder Bsp-Programm geben?

Danke schon mal für eure Hilfe

Pascal

Hi! Ich habe leider keine Messkarte mit digitalen zählereingängen, so dass ich nicht ganz die ahnung habe, was so ein zähleriengang alles kann (außer zählen natürlich).

Aber vom Prinzip her ist das doch simpel:
Beispiel:
Kommando: Zähler resetten,
Timer: 1000 ms (je nach dynamik)
Nach Timerablauf: Wert auslesen, Drehzahl berechnen, Zähler reset.

Wo hakt es denn? Signale sind aber am eingang?!
Hallo,

es hakt an verschiedenen Stellen. Zuerst ist die Frage, welcher Kanal erstellt werden soll. Hierbei gibt es ja: Frequenz, Periode, Flanken zählen, Impulsbreite, Halbperiode, Position (Winkel), Flankenabstand. Eigentlich sollte es mit Frequenz messen funktionieren. Kann hierbei aber pro Counter nur einen Kanal auslesen (z.B. Kanal A). Habe es ausprobiert mit verschiedenen Beispielen. Bei den Beispiel "Meas Dig Frequency - low Frequ 1 Ctr" bekomme ich einen Fehler: "Fehler 200474 bei DAQmX Read: Die Angegebene Opertion konnte nicht ausgeführt werden, da der angegebene Timeout überschritten wurde". Bei dem Beispiel "Measure Dig Frequecy - Cont. High Frequency 2 Ctr" bekomme ich "Fehler 200284: Es wurden einige oder alle der angeforderten Werte noch nicht erfasst". Die Fehlermeldungen kommen auch, wenn noch kein Signal angeschlossen ist. Kann hiermit jemand etwas anfangen?

Über die Position (Drehwinkel) kann ja theoretisch auch die Drehzahl erfasst werden. Die Position wird aus allen Kanälen bestimmt (A,B,Z). Mit Hilfe der Ableitung, müsste man auf die Drehzahl kommen. Mit dem Beispiel " Measure angular Position" bekomme ich keine Werte, bei "Measure Angular Pos - buffered - Cont -Ext- Clk bekomme ich wieder die Fehlermeldung 200284.

Kann mir jemand weiterhelfen.

Gruß Pascal
' schrieb:Über die Position (Drehwinkel) kann ja theoretisch auch die Drehzahl erfasst werden. Die Position wird aus allen Kanälen bestimmt (A,B,Z). Mit Hilfe der Ableitung, müsste man auf die Drehzahl kommen. Mit dem Beispiel " Measure angular Position" bekomme ich keine Werte, bei "Measure Angular Pos - buffered - Cont -Ext- Clk bekomme ich wieder die Fehlermeldung 200284.

Kann mir jemand weiterhelfen.

Gruß Pascal

Hi!

Ich glaube den Winkel zu erfassen und den abzuleiten und darüber die Drehzahl zu erfassen ist ein wenig zu übertieben und zu aufwendig für eine einfache Drehzahlerfassung.

Zu deinen Fehlermeldungen:
Die hören sich für mich (sorry, nutze keine NI-Hanrdware) so an, als ob LabVIEW nicht mit der Hardware kommunizieren kann.
Gibt es da nicht so ein Testprogramm, womit mann die Karte testen kann? Das würde ich mal drüberlaufen lassen.


Zum Kanal:
ob du nun Kanal A /A, B /B oder Z /Z nimmst ist ja eigentlich egal.
Z ist ja wahrscheinlich nur die AND-Verknüfung aus A und B.
bei allen nichtinvertierenden Eingängen (A, B, Z) kannst du einfach positive Flanken, bei den invertierten (/A, /B, /Z) die negativen Flanken zählen.

ich würde vielleicht einfach Z nehmen, weil da die Impulse kürzer sind.
Wenn du keine Winkel auswerten willst, dann brauchst du ja auch nur einen Kanal!

Jetzt die andere Frage: Diese ganzen vorgefertigten VI's lassen einen ja kaum durch den Ablauf durchblicken.
Kannst du nicht auf die einzelnen Kanäle der Karte zugreifen?
Wenn ja, dann wähle doch mal einen Counter (oder DI) aus und verbinde den direkt mit einer Anzeige (LED, oder Zahlenanzeige). Dann drehst du mal an dem Drehgeber und guckst, ob da überhaupt was ankommt.
Oder schnapp dir ein Multimeter oder ähnliches.
Die meißten drehgeber haben TTL Pegel. Also solltest du Flanken von 0 nach 5V messen können (bei verwendung des Kanals Z)

Kann aber auch sein, dass der Drehgeber wirklich nur passiv ist. Dann wirst du so ohne weiteres nichts messen können.
Danke schon einmal,

du hast Recht, der Geber gibt 5 V TTL Signale aus (soll er zumindest). Dabei ist der Kanal B um 90° Phasenverschoben zu Kanal A, A/ und B/ sind die jeweils Invertierten Kanäle. Z oder auch N genannt gibt pro Umdrehung einen Impuls aus. A bzw B geben 500 Imp/U aus. Also wenn ich über die Kanäle A und B die Drehzahl bestimme, habe ich die doppelte Genauigkeit! K.A. ob das allerdings überhaupt messbar ist .

Ich muss jetzt noch schauen, ob ich überhaupt ein Signal bekomme.

Pascal
<div align="left">Hallo, Pascal,

zu deiner Frage gibt es unter den Beispielen einige vorgefertigte VI's, vielleicht hilft das weiter.

Hier der Screenshot:

[attachment=2673]

MfG,
Jens</div>
Hallo Jens

die hab ich ja verwendet, aber da bekomm ich die unter #3 beschrieben Fehlermeldungen.

Gruß Pascal
<div align="left">Hallo, Pascal,

wenn das so ist, da kann ich dir leider nicht weiterhelfen.

Trotzdem viel Erfolg!

Jens</div>
Hallo,

nach langem probieren, hab ich es jetzt einigermaßen geschafft. Falls jemand ähnliche Probleme hat, hier die Lösung: so die Fehlermeldung "Timeout überschritten" kommt, wenn kein Signal anliegt. Das habe ich auch relativ schnell raus bekommen. Ich habe dann nach langen suchen auch herausgefunden, warum nicht die richtige Frequenz gemessen wird. Das Signal hatte so große Störungen, das die Störungen mitgezählt wurden und ich somit immer eine Frequenz von mehrenen kHz - MHz bekam. Mit Hilfe eines externen Pegelumsetzers, kann das Signal nun verarbeitet werden.


Pascal
Danke für die Rückmeldung. :top:
Da können sich manche ein Beispiel nehmen.
Wenn man ein Problem hat, dann sollte man auch die Lösung posten, wenn man es selbst gelöst hat.
Dann kann ein anderer evtl. auch mal was damit anfangen.

Gruß Markus

' schrieb:Hallo,

nach langem probieren, hab ich es jetzt einigermaßen geschafft. Falls jemand ähnliche Probleme hat, hier die Lösung: so die Fehlermeldung "Timeout überschritten" kommt, wenn kein Signal anliegt. Das habe ich auch relativ schnell raus bekommen. Ich habe dann nach langen suchen auch herausgefunden, warum nicht die richtige Frequenz gemessen wird. Das Signal hatte so große Störungen, das die Störungen mitgezählt wurden und ich somit immer eine Frequenz von mehrenen kHz - MHz bekam. Mit Hilfe eines externen Pegelumsetzers, kann das Signal nun verarbeitet werden.
Pascal
Referenz-URLs