Step 7 Auswertung eines Quatratur Encoders mit Zählerkarte

calypso

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo! Ich habe ein Problem mit dem auswerten eines Quadratur Encoders. Der Encoder gibt ein Taktsignal und ein Richtungssignal aus. Pro Umdrehung sind das je 90 Pulse/Signal. Der Motor (Hydraulik) dreht max. mit 800 U/min. Nun habe ich eine Zählerkarte mit 2 mal 32 Bit (AB) die geht bis 100kHz. Wie kann ich meinen Code am besten aufbauen um die U/min zu berechnen. Die Karte hängt in einer Vipa SLIO mit Profibus Anbindung (einziger PB Teilnehmer 1,5Mbit). Habe schon das I-Net nach Beispielprogrammen und Handbücher durchsucht. Dies ist meine erste Programmierung mit diesen Encodern und Zählerkarten.
 
Hallo,

QuatraTur ist wenn ich das Wort richtig lese die vierfach Auswertung eines Encoders der 2 Spuren hat. Wie Du schreibst, hast Du aber nur Impuls und Richtung. So musst Du das auch in der Hardware konfigurieren, Quatratur gibt es dann nicht.
Die max. Anzahl Deiner Pulse ist 90 mal 800 pro Minute. Auch ohne Taschenrechner reichen dann 100KHz der Karte bei weitem.
Um die U/min zu berechnen kann man so vorgehen:
-Zählerstand lesen und merken
- Timer mit einer Sekunde starten
-Wenn Timer abgelaufen ist wieder den Zählerstand lesen und merken (Zähler evtl zurücksetzen)
- Differenz Zählerstand alt - neu berechnen

Nun hast Du die Anzahl der Impulse in einer Sekunde, das lässt sich leicht auf Minute umrechnen ==> fertig

Allerdings hat alles ein Ende, auch der Zählbereich einer Karte, d.h. wenn der Zähler nicht zurückgesetzt wird hat er irgendwann einen Überlauf den man abfangen muss. In Deinem Fall mit der sehr geringen Anzahl Pulse dauert das aber ewig, wahrscheinlich hast Du also davor mal Spannungswiederkehr und damit auch ein Rücksetzen des Zählers.

Gruss

Oliver
 
Danke für eure Antworten!Habe es jetzt so gemacht dass ich beim öffnen des SW-Tores den Zähler auf null setze. Alle 10ms im OB 35 den Zählerwert einlese und die Zähldifferenz bilde. Diese dann mit 6000 multipliziere (Impulse pro Minute) und durch 90 dividiere somit habe ich die U/min theoretisch! Praktisch kann ich es noch nicht testen da ich die HW noch nicht habe.
 
Zurück
Oben