Elektronik für eine CNC-Fräse

Die Elektronik für eine Fräse ist relativ umfangreich und besteht aus mehreren Komponenten. Für jede Achse wird ein Motor und eine entsprechende Ansteuerelektronik benötigt. Diese werden von einer Steuerung bedient, welche mit dem Steuerrechner kommuniziert und die Verfahrbefehle in synchronisierte Bewegungen der Motoren umsetzt. Auch wird eine Energieversorgung benötigt, die im Bereich von mehreren 100 Watt liegt. Zusätzliche Komponenten sind ein Notausschalter (wichtig!), Endschalter und Steuerbare Relais, mit denen z. B. die Frässpindel oder eine Absauganlage automatisch ein- und ausgeschaltet werden können. Auch eine Möglichkeit zum händischen Verfahren für das Einrichten der Maschine sowie die Möglichkeit, analoge Werte auszugeben sind sinnvoll. Das Ganze muss natürlich sehr robust sein und zudem EMV-technisch stabil. Daher ist ein stabiles Metallgehäuse ebenso empfehlenswert wie hochwertige Schalter, Stecker, geschirmte Kabel und sonstige Komponenten.

Die Motortreiber

Die Fräse sollte, wie die meisten Fräsen ihrer Größe, mit kräftigen Schrittmotoren betrieben werden, für die geeignete Treiber benötigt wurden. Obwohl es zahlreiche Treiber fertig zu kaufen gibt, habe ich mich für eine Eigenentwicklung entschieden. Nach langer Suche und dem Vergleich diverser Alternativen, fiel die Entscheidung auf den IC A4989 von Allegro. Der IC kann einen bis zu 500-Watt-starken Schrittmotor über zwei externe H-Brücken ansteuern. Die zusätzlichen acht Mosfets für diese H-Brücken bedeuteten zwar mehr Schaltungsaufwand, jedoch ist dieser bei derartigen Leistungen nicht mehr vermeidbar. Voll integrierte Schrittmotor-ICs, die diese Brücken bereits enthalten, können nur Motorströme von ca. 2 Ampere handhaben, während mit externen Brücken Ströme bis zu einer Größe von 10 A gut machbar sind. Der A4989 kann zudem mit Spannungen bis zu 50 Volt betrieben werden, wodurch eine recht hohe Dynamik erreichbar ist. Er bietet Microstepping bis zu 1/16-Schritten, wobei ein spezieller Sinus-DAC dafür sorgt, dass diese Schritte gleichmäßig verteilt sind. Auf die Details der Funktionsweise und Ansteuerung von Schrittmotoren will ich hier nicht weiter eingehen, darüber gibt es im Netz hinreichend viel zu finden. Der A4989 hat ein klassisches Step-Direction-Interface, wie es bei vielen Schrittmotortreibern üblich ist. Wird am Step-Eingang ein Puls angelegt, dreht sich der Schrittmotor um einen Schritt weiter, wobei der Pegel am Direction-Eingang die Richtung bestimmt. Bei der Verschaltung des A4989 und der H-Brücken habe ich mich strickt an das Datenblatt des Herstellers gehalten. Für die H-Brücken kamen Doppel-Mosfets des Typs IRF7351 zum Einsatz, welche bei einer Spannung von bis zu 60 Volt Ströme von 8 Ampere schalten können. Jedoch wurde auch einiger zusätzlicher Schaltungsaufwand betrieben, um die Treiber mit weiteren Features auszustatten.

BILD-FEHLT

Zunächst einmal wurde eine galvanische Trennung aller Steuersignale realisiert, was für die EMV-Stabilität erhebliche Vorteile schafft. Ein Motortreiber, der große Ströme mit hohen Frequenzen schaltet, ist eine erhebliche Quelle für EMV-Störungen. Diese Quelle von der Steuerung elektrisch zu entkoppeln ist sehr Vorteilhaft. Bei meinen ersten Versuchen mit dem Bau einer Fräse vor einigen Jahren hatte ich die Treiber nicht entkoppelt, was zu Abstürzen der Steuerung führte. Zum Entkoppeln wurden schnelle (10 Mbit/s) Optokoppler vom Typ HCPL-2630 eingesetzt. Es handelt sich dabei um die Dual-Variante des bekannten 6N137-Optokopplers. Insgesamt gab es 4  Signale, die entkoppelt wurden: die bereits erwähnten Step- und Direction-Signale sowie ein Enable-Signal und ein Signal mit dem sich der Motorstrom im Ruhezustand reduzieren lässt. Eigentlich wären nur für das Step- und das Direction-Signal schnelle Optokoppler nötig, jedoch wurden auch die anderen beiden Signale über HCPL-2630-Optokoppler entkoppelt. Ein weiterer Optokoppler wurde für die Rückmeldung des Zustands an die Steuerung verwendet. Hierfür kam ein einfacher PC817 zum Einsatz, dessen Ausgangsseite in den Strompfad des Enable-Signals integriert war. Die Idee dahinter war, dass sich die Schaltung in einem Fehlerfall selbst das Enable-Signal wegnehmen konnte, was automatisch zur Abschaltung des Motors führte. Die Steuerung könnte zudem feststellen, dass kein Strom mehr in der Leitung des Enable-Signals fließt, und so den Störfall erkennen, ohne dass eine zusätzliche Leitung benötigt wird. Grundsätzlich funktioniert das Prinzip auch, jedoch wurde die Ansteuerung zunächst falsch ausgelegt, wodurch diese Funktion nicht nutzbar war. Allerdings wurde sie bis dato auch nicht vermisst.

Die wichtigste Schutzschaltung sollte eine Temperaturüberwachung sein. Dafür wurde ein Temperatursensor vom Typ LM35 bei den Mosfets platziert und mit deren Kühlkörper in Kontakt gebracht, um eine thermische Kopplung zu erreichen. Der LM35 gibt eine temperaturabhängige Spannung aus, welche in einen Komparator mit Hysterese geführt wurde. Diese war so eingestellt, dass der Ausgang bei ca. 70 °C angeschaltet wird und nach einer Abkühlung auf etwa 50 °C wieder ausgeschaltet. Der Ausgang schaltet eine rote LED, die den Übertemperaturfall anzeigt. Zugleich sollte er die Notabschaltung bewirken, was, wie bereits beschrieben, nicht funktionierte. Der Grund war, dass der eingesetzte Komparator vom Typ LM393 wie die meisten Komparatoren nur recht geringe Ströme (18 mA max.) schalten kann. Auch schon bei deutlich kleineren Strömen schafft er es nicht mehr zuverlässig den Ausgang auf 0 V zu halten, sondern hat eine erhebliche Sättigungsspannung (bis zu 700 mV bei 4 mA Strom).

BILD-FEHLT Ein weiteres Feature ist eine automatische Stromabsenkung, die einsetzt, wenn für längere Zeit keine Schrittbefehle gesendet wurden. Wenn eine Achse nicht bewegt wird, muss der Motor auch weniger Kraft aufbringen, und so kann man mit einer Stromabsenkung Energie sparen und einer Überhitzung des Motors vorbeugen. Die Stärke des Stroms durch den Motor wird durch eine Referenzspannung bestimmt, welche dem A4989 zugeführt wird. Diese Spannung wird über einen Spannungsteiler aus der 5-Volt-Versorgungsspannung des ICs erzeugt und lässt sich zudem über ein Potentiometer einstellen. Die automatische Stromabsenkung besteht aus einem Komparator, der beim Durchschalten diesen Spannungsteiler verändert und somit die Referenzspannung reduziert. Der negative Eingang des Komparators ist mit einem festen Potential verbunden und der positive mit einem Kondensator, der das Zeitverhalten der Schaltung bestimmt. Ein Transistor, der über das Step-Signal angesteuert wird, ist so geschaltet, dass bei jedem Schrittbefehl der Kondensator auf die Versorgungsspannung aufgeladen wird. Ein dem Kondensator parallel geschalteter 10-Megaohm-Widerstand sorgt dafür, dass dieser sich langsam entlädt. Wenn nun für etwa 1 - 3 Sekunden kein Schrittbefehl kommt, sinkt die Spannung weit genug ab, dass der Komparator durchschaltet und der Motorstrom reduziert wird. Zusätzlich leuchtet dann eine LED, um die aktive Stromabsenkung anzuzeigen.

Der Digitalteil der Schaltung benötigte eine 5-Volt-Versorgung, die mittels eines MC34063-Schaltreglers aus der Versorgungsspannung erzeugt wurde. Da der MC34063 keine 50 Volt verträgt, wurde ihm noch eine Zenerdiode vorgeschaltet. Der A4989 verfügt über verschiedene Einstellpins für die Mikroschrittanzahl oder die Art der Stromregelung. Diese wurden über Dip-Schalter veränderbar gemacht. Als Verbindung zur Steuerung diente ein RJ-45-Stecker, in den man normale LAN-Kabel stecken kann, denn diese sind günstig und haben trotzdem hervorragende Eigenschaften, wie z. B. eine gute Schirmung.

Die Steuerung

Viele selbst gebaute und auch einige kommerzielle Fräsen benutzen GRBL als Steuersoftware. Es handelt sich dabei um eine Open-Source-Software, die für den Arduino Uno geschrieben ist und diesen in eine 2,5-D-Fräsensteuerung verwandelt, die über ein PC-Programm bedient werden kann. Allerdings ist die Anzahl der Pins des Arduino Uno, der auf dem ATmega328-Mikrocontroller basiert, relativ knapp für diese Aufgabe. Da ich mehr Flexibilität im Sinne von zusätzlichen Ein-und Ausgängen und der Möglichkeit für eine vierte Achse wollte, entschied ich mich, meine eigene Hardware zu entwickeln. Die Basis bildete ein ATmegaUSB1286. Dieser Controller hat nicht nur doppelt so viele Pins wie der ATmega328 (64 statt 32), sondern auch native USB-Funktionalität. Beim Arduino ist dafür ein weiterer IC eingesetzt, der mit dem PC via USB und mit dem ATmega328 via UART kommuniziert. Durch Nutzung des ATmegaUSB1286 entfällt dieser Flaschenhals.

Um den Controller mit seinem Quarz und der Programmierschnittstelle wurden alle anderen benötigten Komponenten platziert. Neben der Schaltung zur Spannungsversorgung, der USB-Schnittstelle und den Ausgängen für die Motoren waren das 12 digitale Eingänge für Endschalter und Taster zur Bedienung, 7 digitale sowie 2 analoge Ausgänge. Die digitalen Ausgänge wurden auf einen ULN2003-Treiber-IC geführt, wodurch es möglich ist, 12-V-Relais direkt anzusteuern. Diese werden benutzt, um den Fräsmotor ein- und auszuschalten, können später jedoch auch zum Schalten von Absaug- oder Kühlsystemen benutzt werden. Die Analogeingänge benutzen die PWM-Ausgänge des Controllers, welche über ein Tiefpassfilter und eine Verstärkerschaltung eine konstante Spannung zwischen 0 und 10 Volt ausgeben können. Dies kann z. B. genutzt werden, um die Drehzahl einer Frässpindel automatisch einzustellen. Alle Ein-und Ausgänge wurden mit Kondensatoren und Suppressordioden gegen ESD geschützt.

BILD-FEHLT   BILD-FEHLT

Der Schaltkasten

BILD-FEHLT Als Gehäuse kam ein massives 19"-Rack aus Stahlblech zum Einsatz. In dieses wurden Hutschienen eingeschraubt, auf denen die Motortreiber, die Steuerung und die Relais sowie ein 12-Volt-Netzteil befestigt wurden. Für die Stromversorgung der Motoren wurde ein 48-Volt-Netzteil mit einer Leistung von 350 Watt in das Gehäuse geschraubt. Hinzu kamen ein Notausschalter, große Taster zur Bedienung, ein Netzschalter, USB-Einbaubuchsen vorne und hinten sowie Anschlüsse für Motoren und Geräte. Drei stabile Einbausteckdosen wurden in das Gehäuse eingelassen und mit den Relais verbunden. Für die Endschalter wurden Chinch-Buchsen verwendet. Die Verbindung der Motoren wurde mit hochwertigen 4-poligen, verschraubbaren Metallbuchsen realisiert, die den XLR-Verbindern der professionellen Bühnen-Audiotechnik ähnelten.

BILD-FEHLT BILD-FEHLT

Verkabelung

Auch bei den Kabeln wurde nichts dem Zufall überlassen. Die Motorkabel sind geschirmte schleppkettentaugliche Kabel von LAPP ebenso wie das Stromkabel für den Fräsmotor. Für die Endschalter wurde einfache zweiadrige Litze verwendet. Die Endschalter selbst sind sehr robust und haben zudem einen sehr präzisen Schaltpunkt. Da EMV ein wichtiges Thema war, wurden alle Metallteile und Kabelschirmungen gewissenhaft geerdet. Um eine robuste USB-Verbindung zu gewährleisten, wurde ein USB-Hub direkt neben der Steuerung am Maschinentisch befestigt und mit einem kurzen Kabel mit dieser verbunden. An diesen Hub wurde zudem ein Gamepad angeschlossen, welches zum manuellen Verfahren der Fräse benutzt werden kann. Aus Stilgründen wurde hier eine USB-Version des kultigen SNES-Gamepads eingesetzt.

© 2014 - 2017 Philipp Meißner