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!
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?
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.
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.
' 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.
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.
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.
Developer Suite Core -> LabVIEW 2015 Prof.
2006
EN
71083
Deutschland
Gebersignal auslesen
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
-------------------------------------------------------------------------- Bitte stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort !!
--------------------------------------------------------------------------