Projekt 5-Achs-Controller für CNC-Fräsmaschine

Ursprünglich ging es mir eigentlich nur darum, meine alte CNC-Fräsmaschine von Isel von drei auf vier Achsen aufzurüsten. Die inzwischen komplett veraltete Steuerung (8-Bit Microcontroller, 32kB Speicher) mußte durch etwas besseres ersetzt werden , und eine Endstufe für den vierten Schrittmotor mußte her. Da mich die Produkte der Fa. Isel bisher nicht 100%ig überzeugt haben, und mir professionelle CNC-Steuerungen zu teuer waren, kam nur ein Eigenbau in Frage. Mir war durchaus bewußt, daß es zum Thema Schrittmotoren im Hobbybereich (siehe cnc-de) schon eine Reihe von brauchbaren Lösungen gibt. Aber irgendwie hatte ich den Ehrgeiz, etwas eigenes zu entwickeln, weil ich dachte, ohne viel Aufwand etwas besseres schaffen zu können. Hätte ich damals gewußt, auf was ich mich eingelassen habe, hätte ich wahrscheinlich nicht angefangen, aber inzwischen habe ich schon soviel Arbeit hineingesteckt, daß es kein zurück mehr gibt.

Anders als bei den meisten Industrie- und Hobby-Maschinensteuerungen, die meistens PC- oder IPC-basiert sind, wollte ich ein selbst entwickeltes Microprozessor-Karte (siehe auch Projekt ColdFire) einsetzen. Wegen der relativ hohen Rechenleistung, Echtzeitfähigkeit und sehr universell einsetzbaren FPGA-Bausteins (Field Programmable Gate Array) schien diese Karte praktisch prädestiniert für die Aufgabe. Die Idee war, für jede Achse ein extra Rechenwerk (eine Art Co-Prozessor) in den FPGA einzubauen, das die Interpolation der Bahn durchführt und die Schritt- und Richtungssignale für die Schrittmotoren erzeugt. Dadurch wird der Hauptprozessor stark entlastet, und es sind sehr hohe Schrittfrequenzen möglich (derzeit bis 16MHz!). Es können also mit dieser Steuerung auch Microschritt-Endstufen oder Servo-Einheiten mit hochauflösenden Encodern (10000 Schritte/Umdrehung und mehr) verwendet werden, ohne daß die Maximalgeschwindigkeit durch die maximale Ausgabefrequenz der Steuerung begrenzt wird.


Bild 1: ColdFire Microprozessorkarte im Originalzustand

Das obige Bild zeigt die Microprozessorkarte, die für die CNC-Steuerung eingesetzt wurde. Der große Chip in der Mitte ist ein Motorola ColdFire-Prozessor vom Typ MCF5206e. Er bietet eine Rechenleistung von ca. 20MIPS bei 32MHz Taktfrequenz und 32 Bit Busbreite, sowie zahlreiche Zusatzfeatures wie integrierter DRAM-Controller, UARTs, Timer, Chipselectlogik und vieles mehr. Links oben unter dem weißen Aufkleber befinden sich 4 statische RAMs mit zusammen 256kB Speicher. Dieser kann mit einem standard SIM-Modul, wie es auch in PCs verwendet wird, auf bis zu 32MB erweitert werden (ganz oben). Rechts oben ist der FPGA von Altera zu sehen. Er bietet Platz für selbstentwickelte Logikschaltungen bis zu 24000 Gatteräquivalenten Komplexität und kann beliebig oft wiederprogrammiert werden. In diesem Chip wurde (unter anderem) beispielsweise eine Komplette VGA-Grafikkarte implementiert (!), der Monitoranschluß ist unten rechts (15polige HD-SUBD-Buchse). Rechts in der Mitte (Sockel unter dem FPGA) ist das Flash-EPROM mit 512kB für Programm und Parameter. Der Sockel ist nur für den Notfall, Softwareupdates können ohne Wechsel des Flashs über die serielle Schnittstelle (links oben) durchgeführt werden. Links unten befindet sich der integrierte Spannungsregler, der 7..40V Eingangsspannung verträgt (ohne Kühlung), sodaß auch ein Betrieb an ungeregelten Netzteilen oder der Kfz-Batterie möglich ist. Die Leistungsaufnahme beträgt etwa 2W ohne und 3-4W mit RAM-Modul. Unten in der Mitte befinden sich 4 Western-Buchsen für den Anschluß von IO-Erweiterungsmodulen über einen selbstentwickelten Feldbus. An den Pfostensteckern in der Mitte und rechts ist ein zusätzlicher serieller, ein paralleller Port und diverse zusätzliche IO-Leitungen herausgeführt.


Bild2: Microcontrollerkarte mit Huckepack-Platine

Die Hardware für die CNC-Steuerung war dann auch relativ schnell fertig. Eine Huckepackplatine paßt genau auf den Parallelport und den IO-Port der Hauptplatine. Sie trägt die fünf Steckverbinder zum Anschluß der Endstufen (schwarz, unten), zahlreiche Klemmen (orange, oben) für den Anschluß der End/Referenzschalter, Relais und Bedienelemente und noch einige SMD-Bauteile auf der Unterseite (hier nicht sichtbar) zur Filterung und Pegelwandlung (5/24V). Auch das Logikdesign für die Interpolationsrecheneinheiten war innerhalb weniger Tage fertiggestellt. Es paßt zusammen mit der VGA-Grafikeinheit und den Feldbuscontrollern gerade noch in das Altera-FPGA.

Wesentlich mehr Arbeit war die Programmierung der Steuersoftware. Hier bestätigte sich leider die Murphy-Regel für Softwareentwicklung: Um den tatsächlichen Zeitaufwand für ein Softwareprojekt zu berechnen, nehme man die geschätze Entwicklungszeit, verdopple die Zahl und nehme die nächsthöhere Einheit. Aus geplanten zwei Wochen wurden so vier Monate... Der Grund dafür war jedoch nicht etwa, daß ich soviel Zeit für das Debuggen benötigte, sondern die recht hoch gesteckten Ziele:

Die Software ist inzwischen schon recht weit fortgeschritten. Die Fräse hat schon erste Probeläufe hinter sich. Jetzt fehlen nur noch einige Feinheiten bei der Bedienungsoberfläche.

Als Endstufen kam eine Microschrittendstufe von Dirk Haupt für vier Schrittmotoren zum Einsatz. Die Microcontroller-Karte habe ich zusammen mit der Endstufe, Trafo und allen Kleinteilen in einen Schaltschrank eingebaut. Dies erscheint vielleicht manchen etwas übertrieben, weil der Schaltschrank fast größer ist als meine Fräse, aber ich habs gern übersichtlich, und da ich beruflich auch öfters mit Schaltschränken zu tun habe, hatte ich das meiste Material sowieso vorrätig. Der Schaltschrank bietet außerdem optimalen Schutz vor herumfliegenden Spänen und Spritzwasser (meine Fräse hat Wasser/Emulsionskühlung), und ausreichend Platz für spätere Erweiterungen (Werkzeugwechsler, Frequenzumrichter für Spindeldrehzahlregelung).


Bild 3: Schaltschrank Gesamtansicht innen

Ganz oben ist die Microschritt-Endstufe mit dem großen Kühlkörper zu sehen. Darunter ein 24V-Lüfter, der für ausreichende Luftumwälzung in dem geschlossenen Schrank sorgt. rechts neben der Endstufe ist der Glättungselko und darunter der Gleichrichter angebracht. Links in der Mitte ist die eigentliche Steuerung zusammen mit zwei Relais und einigen Reihenklemmen auf einer Hutschiene montiert. Rechts daneben sitzt der Trafo (24V, 180VA). In der unteren Reihe sitzen von links nach rechts ein zusätzliches 24V-Netzteil für die Kühlmittelpumpe, Klemmen zum Anschluß von Netz und Frässpindel und ein Entstörfilter. Ganz rechts in der Tür sieht man noch einige Taster zur Bedienung. Der Bildausschnitt mit der Steuerungsplatine ist unten noch einmal vergrößert dargestellt.


Bild 4: Steuerung mit Relais, Lüfter und Endstufe

Steuerung und Endstufe sind über 6-polige Westernstecker verbunden (ein Schritt-, Richtungs- und Stromabsenkungssignal je Achse). Die fünfte Achse ist derzeit nicht verwendet. Die Relais neben der Steuerung schalten die Werkzeugspindel und die Kühlmittelpumpe.

Das folgende Bild zeigt die Fräse mit dem Schaltschrank daneben auf einen Tisch montiert. Die Kunststoffbox um die Fräse dient als Spritzschutz wegen des Kühlwassers und der Späne.


Bild 5: Tischaufbau mit Fräse und Schaltschrank


Bild 6: Frontalansicht der Fräse

Man sieht deutlich, daß das Teil schon häufig im Einsatz war. Kühlemulsion und Späne ergeben eine gut haftende Schicht...


Bild 7: Monitor mit Bedienoberfläche

Nein, das ist kein PC! Wie gesagt, die Steuerung hat einen eigenen VGA-Ausgang. Leider kann man nicht viel erkennen, weil das Bild mit einer Videokamera aufgenommen ist. Rechts werden die Koordinaten und Schalterzustände angezeigt, links oben ist das Menü, unten werden die gerade ausgeführten Operationen angezeigt.

Als nächstes ist ein Handsteuergerät geplant, mit dem man die Achsen auch direkt mit einem "digitalen Handrad" bedienen kann, um z.B. den Maschinennullpunkt einzustellen, oder die Cnc-Fräse auch mal kurz als manuelle Fräse zu gebrauchen. Auch eine Erweiterungsplatine zur Ansteuerung von Frequenzumrichtern für den Spindelantrieb und die Ansteuermöglichkeit von Werkzeugwechselvorrichtungen ist bereits in Vorbereitung.

Fragen und Anregungen können gerne an dieMailingliste cnc-de
oder direkt an nicolas@benezan.de gesendet werden.

Copyright 2001 bei Nicolas Benezan,
Alle Rechte vorbehalten.