Forum: Mikrocontroller und Digitale Elektronik Ansteuerung von Servo-Treibern


von Marcel H. (marcelh)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

ich habe ein älteres CNC-Bearbeitungszentrum bei dem ich die etwas in 
die Tage gekommene Steuerung durch eine eigene Computersteuerung 
ersetzen möchte. Hierzu möchte ich die originale Steuerelektronik 
weiterverwenden und lediglich den Mikrocontroller auf dem Mainboard 
nebst PC-Anbindung ersetzen.
Dies ist auch alles soweit kein Problem, allerdings macht mir die 
Ansteuerung der Servo-Motoren Schwierigkeiten:

Für die Ansteuerung der Servo-Motoren ist je Achse ein Axor CD180 
Servo-Treiber verbaut, welcher per PWM oder 0/10V-Signal angesteuert 
werden kann (Technische Daten hierzu: 
http://www.lakshmielectro.com/axon/ManualeCD180%28GB%2902%5B1%5D.pdf).

In der Steuerung für die Ausgabe des analogen Steuersignals ein 12bit 
AD-Wandler (Analog Devices AD7549) verbaut. Den entsprechenden 
Schaltplan habe ich anbei angehängt. Ebenso liegen die Tacho-Signale 
nicht nur am Servo-Treiber sondern jeweils auch an der Steuerung an, wo 
die Drehrichtung ausgewertet wird und die Schritte gezählt werden (s. 
zweiter angehängter Schaltplan).

Nun zu meinem Problem:
Bei einem Verfahrensweg von knapp 5m auf der X-Achse macht dies beim 
12bit-Analogwandler eine rein rechnerische Auflösung von knapp 1,22mm 
pro Schritt (jegliche Toleranzen und Fehler noch gar nicht mit 
einbezogen).
Leider liegt die Steuerung gerade vollkommen zerlegt vor mir, so dass 
ich die tatsächliche Genauigkeit leider gerade nicht vermessen kann; 
jedoch kommt mir dieser Wert aus Erfahrungen der Vergangenheit deutlich 
zu hoch vor.

Daher frage ich mich, ob ich hier irgendetwas übersehe bzw. etwas bei 
der Ansteuerung der Servo-Treiber missverstanden habe.
Ebenfalls erschließt sich mir das Auswerten der Encoder-Signale seitens 
der Steuerung nicht ganz. Kann ich hieraus während des Fräsvorgangs 
irgendwelche Informationen zur Erhöhung der Genauigkeit ziehen? 
Irgendeine Kopplung an die ausgegebene analoge Steuerspannung fällt mir 
schwer, da Abweichungen hier ja erst verzeichnet werden können, wenn die 
Soll-Position bereits verfehlt wurde.


Viele Grüße,
Marcel

von Illi (Gast)


Lesenswert?

Moin,

der Trick daran ist, dass es sich im eigentlichen Sinne nicht um eine 
Steuerung sondern eine Regelung handelt:

Der Servo-Treiber-Ausgang stellt ein Steuersignal für die 
Geschwindigkeit der Achse dar, nicht für die Position. Beachte, dass es 
ein +/-10V Signal sein muss.

Über die Rückmeldung der Impulse vom Drehgeber kann die CNC die 
Istposition der Achse berechnen. Zusammen mit der intern gebildeten 
Sollposition kann nun ein Positionsregelkreis aufgebaut werden, dessen 
Ausgang das +/-10V Signal für den Servotreiber ist.

Die Auflösung der Position hängt also von der Auflösung des Gebersystems 
ab.

Gruß Illi

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Richtig, du musst also in der neuen Steuerung den Lageregelkreis 
schließen. Am einfachsten dürfte es sein, einen PC mit LinuxCNC zu 
verwenden. Dazu eine Motion-Control Karte von AddiData, Adlink o.ä. und 
fertig ist die NC-Steuerung.

Mit freundlichen Grüßen
Thorsten Ostermann

von Marcel H. (marcelh)


Lesenswert?

Vielen Dank für die ausführliche Erklärung und die Tipps!
So macht das ganze jetzt auch Sinn. Mit den passenden Stichworten aus 
euren Beiträgen konnte ich mich nun auch etwas in das Thema einarbeiten 
und werde mich nun einmal an einer entsprechenden Implementierung 
versuchen.

Viele Grüße,
Marcel

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.