EMC for Linux - 3 bis 6 Achsen
EMC steht für Enhanced Machine Controller. Hiermit kann man unter Linux CNC-Maschinen steuern. Typische Anwendungen sind CNC-Fräsmaschinen mit 3-6 Achsen, mit denen sowohl 2D wie auch 3D gefräst werden kann.
EMC besteht aus einem G-Code Interpreter und diversen Motorsteuerungsmodulen, die sowohl Schrittmotoren wie auch Servomotoren ansteuern können. Damit sind auch PID-Regler und Inkrementalgeber-Feedback realisiert. Die Ausgabe der Motorsteuerung kann über ein oder mehrere Parallelports oder über spezielle Karten geschehen.
Wer bisher Programme PC-NC, WinPC-NC , cncplayer, turbocnc, Mach1, Mach2, Master5 oder Trimeta EdiTasc-CNC einsetzt, für den könnte EMC eine freie Alternative sein.
Ein Vorteil von EMC gegenüber kommerziellen Lösungen ist, daß EMC durch den offenen Quellcode problemlos an nicht-karthesische Maschinenkinematiken anpassbar ist, wie auf der Internetseite des ISW der Uni Stuttgart anhand von Beispielen zu sehen ist.
Homepage: http://www.linuxcnc.org/
Servoansteuerung z.B. über die ServoToGo-Karte oder die MOTENC-100 Karte
Remote GUI von einem Linux-, Windows- oder Mac OS X Rechner, auch VNC ist möglich
EMC wurde am National Institute of Standards & Technology (NIST) bereits ab etwa 1994 entwickelt. Kernstück ist der sehr gut dokumentierte Quellcode des RS274 G-Code Interpreters von Thomas Kramer. Dieser liest den G-Code ein und erzeugt Maschinen-Steuerbefehle, die an intelligente Steuerungen direkt weitergegeben werden können. Später entstand daraus EMC, welches die Intelligenz auf den PC verlagert und somit mit einfachen Motorkarten auskommt. Bei Schrittmotoren reicht z.B. eine Steuerung, die Takt und Richtung pro Achse über den Parallelport empfängt.
Im Jahr 2000 wurde EMC als Open-Source Projekt freigegeben und auf Sourceforge gehostet. Seither entsteht eine freie Entwicklergemeinde, die dieses Projekt weiter entwickelt. Derzeit (Januar 2005) sind 44 Entwickler bei Sourceforge eingetragen. Das Projekt kam 2004 durch die Entwicklung von EMC2 wieder mehr in Fahrt.
EMC ist so ausgereift, dass es in einer Vielzahl von Anwendungsfällen im echten produktivem Einsatz ist. Sowohl im kommerziellen Bereich wie auch im Hobbybereich. Und dies schon seit mehreren Jahren.
Die Installation und Konfiguration des System gestaltet sich jedoch nicht gerade einfach. Damit EMC einfacher installiert werden kann und für freie Entwickler attraktiver wird, wird sie gerade in eine für freie Projekte konforme Struktur gebracht. Dies verfolgt der EMC2 Zweig im CVS bei Sourceforge. EMC2 beinhaltet auch einen Hardware-Abstraction-Layer (HAL). Dieser stellt eine einheitliche Schnittstelle für alle Schnittstellenhardware zur Verfügung. Damit wird es sehr leicht möglich sein, spezielle Motorsteuerungskarten einzubinden. Auch die Pinbelegung wird so flexibel anpassbar. Man könnte z.B. für Schrittmotoren eine Digitale-IO-Karte anstatt des Parallelports verwenden. Für Servosysteme können Karten anderer Hersteller recht einfach eingebunden werden. EMC2 ist also gerade für Programmierer und Systemintegratoren eine interessante Fortentwicklung.
Die Konfiguration des Systems ist etwas anspruchsvoller, weil EMC in ganz unterschiedlichen Umgebungen laufen soll, ob nun Stepper- oder Servomotor mit aller möglicher Steuerungshardware. Man bekommt zwar relativ schnell was ans Laufen, für die Feinheiten braucht man jedoch einiges an Zeit. Es gibt 3 recht ausführliche Handbücher, wer jedoch etwas tiefer ins System eindringt, merkt schnell, dass Entwicklungen und Veränderungen der letzten Jahre teilweise schlecht oder nicht dokumentiert wurden. Hier gibt es in den nächsten Jahren sicherlich noch einiges zu tun. Aus diesem Grund entsteht auch diese Wiki-Seite.
Eine erste, experimentielle Version eines EMC Konfigurations-Assistenten findet man hier: emcconfig. Die Software leitet den Benutzer durch verschiedene Dialoge, das Editieren der "*.ini" Datei per Hand für die Grundeinstellung soll (mit der stabilen Version) entfallen. Da dem Autor von emcconf, Martin D. Krenz, nur zöllige (inch) Maschinenkonfigurationen zur Verfügung stehen, wird um Feedback von Nutzern mit metrischen Maschinen gebeten.
Minimale Voraussetzung ist ein IBM-Kompatibler Pentium 200 MHz mit 128 MB Speicher. Jedoch sollte man dann eher die älteren BDI-Versionen nutzen (z.B. 2.18). Vernünftig wäre ein Pentium 500 MHz mit 256 MB Speicher. Bei älteren Versionen ist es auch wichtig, eine geläufige Grafikkarte installiert zu haben.
More information about EMC click here