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 steh gerade auf dem Schlauch. Ich hab ein Signal vom Inkrementalgeber und zähl die Flanken. Soweit funktioniert das Ganze. Mir ist auch klar dass ich über den Umfang des Förderbandes auf die Geschwindigkeit schließen kann...und diese berechnen. Mein Drehgeber macht 100 Impulse / Umdrehung......wie kann ich die Flanken jetzt auslesen und mit der Zeit verknüpfen dass ich von Umdrehungen/s auf m/s umrechnen kann?
Wäre euch dankbar wenn ihr mir schnell meinen Knoten im Hirn lösen könntet.
1. Zeit messen zwischen zwei Impulsen
2. Zeit * 100 = Umdrehungszeit [ms] (circa)
3. Umdrehungszeit[ms] / 1000 = Umdrehungszeit[s]
4. Umdrehungszeit[s] * Umfang = Bandgeschwindigkeit
Dabei machst du einen kleinen Berechnungsfehler, den man im allgemeinen jedoch vernachlässigen kann (<1%).
Flankenauswertung einfach mit einem Schieberegister und der Anweisung:
NOT (Alter Zustand) & (Neuer Zustand) = Flanke positiv
WENN Flanke Positiv -> "Tick Count" - "Alter Tick Count" = Zeitabstand zwischen zwei Impulsen
Tick Count in Schieberegister.
Neuen Zustand in Schieberegister reinschreiben.
Einziges Problem hierbei sind die Anfangsdurchläufe, da hier noch falsche Werte angezeigt werden. Spätestens nach dem dritten Inkrement jedoch ist der richtige Wert berechnet.
danke für deine Ausführungen. Das mit der Zeiterfassung leuchtet mir ein. Das mit dem Schieberegister muss ich mir mal in Ruhe anschauen, denn damit hab ich noch nichts gemacht.
Aber gibt es denn für die "Allerweltsanwendung" kein Beispielprogramm? Hab schon gesucht aber nicht passendes gefunden. Ich denke dass eine Geschwindigkeitserfassung über Drehgeber doch zum Standardprogramm gehört.
Welche DAQ-Hardware hast du?
Bei Verwendung der passenden Hardware kannst du dir mit einem Counter-Task direkt die Drehzahl und bei Verwendung von DAQmx-Skalierungen auch gleich die Umrechung auf eine Geschwindigkeit ausgeben lassen.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
Dazu gibt es eine ganz einfache Methode:
NI Example Finder öffnen.
Unter der Hardware-Liste unten links die verwendete Hardware hinzufügen.
Dann die Beispiel-Liste auf diese Hardware-Liste einschränken.
Ergebnis: Mit der 6010 kannst du Frequenz, Periode, Pulsbreiten, etc. pp. messen. Frequenz mit entsprechender Skalierung entspricht dann der Geschwindigkeit.
Gruß, Jens
Wer die erhabene Weisheit der Mathematik tadelt, nährt sich von Verwirrung. (Leonardo da Vinci)
!! BITTE !! stellt mir keine Fragen über PM, dafür ist das Forum da - andere haben vielleicht auch Interesse an der Antwort!
ich hab noch eine Frage zur Drehgebererfassung mit der PCI 6010.
Wie ich die Frequenz über die PCI 6010 erfasse und anschließend zu einer Bandgeschwindigkeit komme ist mir klar. Hab aber festgestellt dass das VI beim Wertelesen immer auf mind. eine Flanke wartet. Ich würde gerne aber kontinuierlich messen und wenn keine Flanke ankommt steht das Band einfach.
Der Eingang "Timeout" am DAQmx-Read-VI bietet sich hier an. Sofern du einen sinnvollen Timeout wählst, wird bei unterschreiten einer bestimmten Drehfrequenz (1/Drehfrequenz/100 < Timeout) ein Fehler ausgegeben, wodurch du weißt, das das Band wahrscheinlich steht. Wahrscheinlich schreibe ich, denn es könnt ja auch der Drehgeber runtergefallen sein (oder ähnliches). Zu beachten ist dabei allerdings, dass bei dieser Karte, wie bei jeder anderen auch, nicht nur eine obere sondern auch eine untere Grenze gilt. Der Grund hierfür liegt in der Taktfrequenz und der Auflösung. Ich würde so aus dem Bauch heraus eine halbe Sekunde warten, was in etwa 1 U/min entspricht.
Das mit dem Timeout hab ich schon bemerkt.....und den Fehler bei keiner Drehbewegung auch....wollte aber nicht bewusst eine Fehlermeldung erzwingen und diese dann quittieren. hmmm....ist ja auch nicht ganz die elegante art wenn ich die Frequenz immer abfrage und den fehler anschließend gleich resete um keinen programmstillstand zu bekommen. :-(
Dann find ich es fast noch besser nur bei einer wirklichen Drehbewegung die Frequenz abzufragen.