Drehgeber auf Position innerhalb Umdrehung runterrechnen

W

weißnix_

Guest
Ich habe für eine unserer Maschinen eine neue Steuerung gebaut. Die Maschine ist ein Rundläufer mit 12 Arbeitsstationen. Weil es sich so schön rechnete hab ich primär für die Drehzahlregelung und unterschwellig für Positionierungen im Einrichtmodus einen Drehgeber mit 3600 Inc/U eingesetzt. Ausgewertet wird über Zählerkarte mit Vierfachauswertung (14400 Counts/U).
Nun habe ich den Einrichtmodus nachgerüstet und bin prompt in eine Anfängerfalle getappt. 3600 lässt sich zwar schön durch 360° und durch 12 Stationen teilen aber ist keine Zweierpotenz. Der 32-bit Counter der Zählerkarte schon :eek:.

Nun zum Problem.
Im Einrichtmodus wollte ich für schrittweisen Betrieb die Maschine jeweils um eine Arbeitsstation vorwärts und rückwärts positionieren. Der Einrichter kann beliebig einen Referenzpunkt setzen. Dies setze ich einfach um durch Nullsetzen des Counters in der Zählerkarte. Vorwärts positionieren: Kein Problem. Rückwärts eine Positionsverschiebung um ca. 1/2 Arbeitsstation. Zwei Becher Kaffe später kam ich drauf: 4294967296 (2^32) ist kein ganzzahliges vielfaches von 3600.
Rotorposition= count mod 14400
Werkzeugposition = Rotorposition mod 1200

Meine Lösung:
Ich setze für den Referenzpunkt den Counter auf 1440000, also auf 0+100 Rotorumdrehungen. Im Einrichtmodus ist es so unwahrscheinlich, das ein Überlauf stattfindet. Im Betriebsmodus ist es ohne Belang, weil dort nicht positioniert wird.

Das ganze funktioniert.

Nun die Frage:
Gibt es noch eine elegantere Lösung? Irgendwie scheint mir das unbeholfen. Ich rechne den Counter Modulo runter auf die Position der Arbeitsstation. Ich habe keine NC-Unterstützung in der SPS.
Zumindest kenne ich jetzt den Grund für die gängige Staffelung der Drehgeberauflösungen in Zweierpotenzvielfachen.
 
Wenn du einen "normalen" Drehgeber hast, dann hat der doch bestimmt ein Referenz / Null Signal.
Damit kannst du jede den Zähler bei jeder Umdrehung auf Null setzen und das Thema Überlauf sollte erledigt sein.

Persönlich verwende ich für solche Aufgaben intelligente Profibus- / Profinet-Geber (z.B. tr-electronic).
Damit hat man kein Theater.

Gruß
Blockmove
 
Mein drehgeber hat eine Nullspur. Hier sehe ich aber keine Lösung weil:
1.Mein Problem der Rückwärtsüberlauf von 0 auf 4294967295 ist. Das wäre Modulo auf die Werkzeugposition gerechnet ein Sprung.
2. Meine Zählerkarte (EL5152) keinen N-Eingang hat
3. das Referenzieren nicht das Problem ist, weil es beliebig nach Gusto des Werkers bzw. nach Erfordernis gemacht werden kann

Genaugenommen ist der Schrittbetrieb nur eine Hilfestellung für den Werkzeugwechsel. Da ich eine Lösung gefunden habe, bin ich hier vor allem an Meinungen interessiert.
Beim nächsten mal werde ich wohl den Drehgeber sorgfältiger auswählen müssen. Ich habe es jetzt mal schnell mit einem 1024er überschlagen. Da wäre der Positionsfehler im Nullsprung nur 4 Incremente.
Alternativ könnte ich auch einen CX mit NC-Unterstützung nehmen. Der ist 250€ teurer, aber die NC-Task macht das für mich.
Genaugenommen war das jetzt wohl lernen auf die harte Tour. Gut das Positionierbetrieb nicht im Lastenheft stand :ROFLMAO:
 
Zurück
Oben