Encoder Impulse auf Drehzahl umrechnen

entenhausen_dd

Level-2
Beiträge
55
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute,

ich habe folgendes Problem. Ich habe einen Sensor der mir 2 unterschiedliche Signale als Pulse liefert.
Die Signale sind um 90° versetzt, sodass man erkennen kann ob man vorwärts dreht oder rückwärts dreht.

Wie kann ich nun die gezählten Pulse auf eine Drehzahl umrechnen?

Der Zähler fängt dann wieder aber einer Größe von 65535 wieder bei eins an

Codesys Version ist 2.3

Vielen Dank für die Hilfe
 
A- und B-Signale um 90° versetzt, d.h. es gibt 4 Flanken pro Periode.
Du musst uns noch aufklären, ob Du alle 4 Flanken pro Periode zählst, oder 2 oder nur 1.
Und, wie viele "Striche" pro Umdrehung der Geber hat.
Nach Erreichen von 65535 ("UINT") müsste der Zähler bei 0 weiterzählen.

Welche ZeitAbstände hast Du zwischen 2 ZählerÜberläufen ungefähr bei höchster Drehzahl?
In welcher GrössenOrdnung liegen Deine Drehzahlen (U/min)?
Welche ZyklusZeit hast Du?

PS:
Womit zählst Du die Pulse?
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Im Bild ersichtlich wie das Signal vom Sensor aussieht

Der Geber hat 125 Striche pro Umdrehung

Die Zykluszeit könnte ich per Taskkonfiguration noch eingeben. Ausgewertet wird das Signal als CNT Funktion
Die Drehzahlen liegen maximal bei 3500 rpm, die Ausgabe sollte hier auch ziemlich genau sein, auch bei niedrigen Drehzahlen
 
125Imp bei 3500 rpm und 4fach Auswertung ... Rechne da mal die Anzahl der Signalwechsel / Sekunde aus.
Also mit einfachen digitalen Eingängen geht das schon mal nicht mehr.
Stellt sich also zuerst mal die Frage nach der Hardware.
 
Wie kann ich nun die gezählten Pulse auf eine Drehzahl umrechnen?
Drehzahl = Umdrehungen pro Zeiteinheit
Daraus ergibt sich wie Du die Impulse in Drehzahl umrechnen kannst: Du mußt die Impulse in einer Zeiteinheit (z.B. 1 Sekunde) zählen und dann auf die gewünschte Zeiteinheit hochrechnen und durch die Anzahl Impulse je Umdrehung dividieren.

Daß der Zähler irgendwann überläuft, ist beim Zählumfang 65536 (0..65535) glücklicherweise kein Problem. Du mußt einfach nur mit UINT-Subtraktion die Zählerstands-Differenz bilden - das funktioniert auch über den Überlauf hinweg korrekt. Oder kann Dein Signal auch rückwärts drehen?
Bei 3500 rpm und 125 Striche und 4fach Auswertung kommen fast 30000 Impulse je Sekunde - der Messzeitraum sollte max 1 Sekunde lang sein. Die Umrechnung in Drehzahl muß in UDINT oder REAL gemacht werden.

Harald
 
Guten Morgen,
ja das ist die Steuerung wie von Heinileini geschrieben.
Könnte mir jemand ein Beispiel darstellen in ST wie von Harald beschrieben

Das ganze kann natürlich auch in die andere Richtung drehen, so müsste dann der Drehzahlwert ein Minuszeichen davor haben

Zusätzlich habe ich noch einen Ausschnitt aus der Doku angehängt für den Hardwareeingang an der Steuerung

Vielen Dank!
 
Zurück
Oben