Winkelencoder & Schrittmotor

Post Reply
Kannnix
Posts: 2
Joined: 08 Feb 2018, 17:07

Winkelencoder & Schrittmotor

Post by Kannnix »

Hallo,
ich kenne den RevPi nicht. Ich habe nur eine kurze Frage, bevor ich mich in das Ding einarbeite.
Ich muss einen Winkelencoder (A/B-Signale, 90° Phasenverschiebung) abfragen und die Pulse zählen. (5V, max. 1KHz).
Das geht mit einer SPS nur schwer (Logo geht, aber nur mit Hindernissen).
Dann muss ich mit Hilfe der gezählten Pulse die Drehrichtung erkenn ( also die Richtung der Phasenverschiebung detektieren). Bei einem Arduino würde ich dazu das A & B Signal auf Interrups legen.
Geht das????

Weiterhin muss ich einen Schrittmotortreiber mit Pulsen ansteuern. Das sollte mit mehreren KHz gehen, damit nix brummt und ruckelt.

O.K., kann mir jemand dazu eine Auskunft geben, der sich schonmal mit dem Gerät beschäftigt hat, bitte?

Mit verschneiten Grüßen,
Ingo
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41

Re: Winkelencoder & Schrittmotor

Post by volker »

Ein RevPi DIO hat die Möglichkeit, ein Eingangspaar als A/B Signale eines Encoders zu definieren und kann dann bis zu 2 kHz Signalfrequenz verarbeiten. Allerdings müssen dies 24 V Signale sein (viele Encoder arbeiten mit 5 V).
Dabei wird natürlich die Drehrichtung erkannt und der Zählerwert incrementiert oder decrementiert. Der Zählerwert wird allerdings bei Verwendung von 1 DIO an einem RevPi Core nur ca. alle 3 ms in das Prozessabbild geschrieben. D.h. Du kannst mit Software nicht auf einen Zählerstand genau den Antrieb ausschalten, da die Steuerung durch die begrenzte Zykluszeit der PiBridge mit ca. 2 x 3 ms den zu steuernden Ausgang bei Überschreiten eines Schwellwertes am Encodereingang schaltet.

Einen Schrittmotor kannst Du definitiv NICHT mit einem DO (oder DIO) Modul ansteuern, dazu sind die Zykluszeiten viel zu lang und in der Regel auch die 24 V Digitalausgänge ungeeignet. In einer industriellen Lösung würde man auch eher einen "intelligenten" Antrieb verwenden, der über einen Feldbus von der SPS den Stellwert bekommt, zu dem er positionieren muss.
Unser RevPi Motto: Don't just claim it - make it!
Kannnix
Posts: 2
Joined: 08 Feb 2018, 17:07

Re: Winkelencoder & Schrittmotor

Post by Kannnix »

O.K., Danke für die ausführliche ANtwort,
Ingo
afri
Posts: 5
Joined: 02 Feb 2017, 16:24

Re: Winkelencoder & Schrittmotor

Post by afri »

Hallo Volker,
ich verwende den Encoder-Modus zur Wegmessung mit einem A/B-Drehimpulsgeber
und möchte nun die maximal Geschwindigkeit berechnen.

Zur maximalen Frequenzauflösung steht im Rev_Pi DIO Datenblatt:
"2 kHz (entspricht 500 Hz Encoder Sequenz)"
Was ist mit Encoder Sequenz gemeint?

Wenn mein Encoder 1000 Impulse/Umdrehung hat, kann ich dann maximal
2 Umdrehungen pro Sekunde
oder
0,5 Umdrehungen pro Sekunde
fahren?

Vielen Dank!
User avatar
volker
Posts: 1046
Joined: 09 Nov 2016, 15:41

Re: Winkelencoder & Schrittmotor

Post by volker »

Hallo afri,
Ein Ecoder hat ein komplexes phasenveschobenes Doppelsignal. Was ist bei Dir ein "Impuls" von Encoder???
Das Encodersignal besteht aus 4 Phasen, die sich durch 2 Bit codieren: 00, 01,11,10. Für mich ist die Encoderfrequenz immer bezogen auf den Ablauf aller 4 Phasen. Also 1 Encoderperiode ended nach 4 Phasen. Alle 4 Phasen müssen aber sauber am Digitaleingang erkannt werden. Damit brauchen die Digitaleingänge sogar die 4-fache zeitliche Auflösung, müssen alo mit der 4-fachen Frequenz zurecht kommen. Wir "sampeln" die Eingänge mit ca. 4 kHz. damit können wir also ein 2 KHz Rechtecksignal gerade so erkennen oder aber ein 1 KHz Encodersignal. Um auf der sicheren Seite zu sein, sollte diese Frequenz aber halbiert werden.
Ein Encoder, der 1000 "Impulse" pro Umdrehung hat, wird in der Regel 1000 4-Phasen Perioden pro Umdrehung erzeugen. Du wirst irgendwo zwischen 0,5 und 1 Umdrehung pro Sekunde liegen. Aber bitte beachte auch folgendes: Was nutzen Dich 500 oder 1000 Encoderwerte pro Sekunde, wenn Du nicht direkt auf einen Wert reagieren kannst? Die Werte werden ja nur alle 5-10 ms ins PA geschrieben und von dort musst Deine Applikation Pollen, verarbeiten und die Reaktion ins PA schreiben. Dann dauert es wieder 5-10 ms bis Deine DIO Ausgänge durchschalten... in der Zwischenzeit ist Deine Achse schon um 20 Zählerwerte weiter... Da diese Verzögerungszeit einen großen Jitter von max. 2 PiBridge Zykluszeiten hat, kannst Du sie auch nicht durch einen konstanten Offset weg kalibrieren. Es hat seinen Grund, warum wir immer sagen, dass ein RevPi nicht für Motion Steuerungen geeignet ist. Dafür müssen dann intelligente Drives mit Busansteuerung eingesetzt werden.
Unser RevPi Motto: Don't just claim it - make it!
afri
Posts: 5
Joined: 02 Feb 2017, 16:24

Re: Winkelencoder & Schrittmotor

Post by afri »

Hallo Volker,
mir geht es darum ein Objekt auf einem Förderband zu verfolgen.
Den Fehler durch die Zykluszeit kann ich dabei akzeptieren.
Ich will nur vermeiden dass der Zähler wegen einer zu hohen Eingangsfrequenz
nicht mehr richtig zählt. Daher ist deine Antwort sehr hilfreich.

Vielen Dank!
Post Reply