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, turbocnc, Mach1, Mach2, Mach3 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 anhand dieser Scherenkinematik gesteuert mit EMC2 zu sehen ist.
Homepage: http://www.linuxcnc.org/
Lizenz: GPL
Unterthemen
Veraltete Unterthemen
Features
- Schrittmotoransteuerung über Takt/Richtung
Servoansteuerung z.B. über die Mesa-Karten 5i20/7i33, ServoToGo-Karte oder die MOTENC-100 Karte
- bis zu 6 Achsen simultan, damit auch für Hexapoden geeignet
- sowohl für lineare wie für rotierende Achsen
- PID-Regler mit Feed-Forward-Gain
- EIA-RS 274-D GCODE kompatibel
- Achsgeschwindigkeiten getrennt einstellbar
- 3 Grafische Frontends (tkemc, mini, AXIS), Shell-Frontend
- "Eingebautes" Digital-Oszilloskop zur Anzeige von Position, Beschleunigung, Geschwindigkeit und Zeit
- Quellcode-offen, kann somit leicht angepasst werden
- RTAI oder rtlinux Realtime-Interface
- Konfiguration über Textdatei (Ini-File-Style)
Remote GUI von einem Linux-, Windows- oder Mac OS X Rechner, auch VNC ist möglich
- externer Notaus-Schalter
- Homing-Schalter mit Polaritätsauswahl
- Limit-Endschalter mit Polaritätsauswahl
- 2. parallele Schnittstelle für weitere Steueraufgaben
- Steuerung Kühlflüssigkeit.
- Spindel on/off, rechts/links, Drehzahl (mit entspr. IO-Karte).
- max. Schleppabstand/Schleppfehler einstellbar
- freie Auswahl IO-Adressen für parall. Schnittstellen
- Vorschub-Überlagerung
- manuelles Verfahren mit einstellbarem Achsvorschub
- mm und Zoll als Einheiten
- Backplot, Werkzeugbahnen können in verschiedenen Ansichten dargestellt werden
- Spindelspielkorrektur (Backlash)
- einstellbare Motordrehrichtung
- 3 verschiedene Bahnsteuerungsmodis (Exakt versus Speed)
- Achsbeschleunigung (ein Wert für alle Achsen)
- G-Code Programme lassen sich anhalten und an beliebiger Stelle neu aufsetzen
- direkte Eingabe von G-Codes zur manuellen Steuerung (G-Code Kommandozeile (MDI))
- durch Linux vollen Netzwerkzugriff zum Steuerungs-PC (nfs, samba, ftp, ssh, scp, ppp)
- durch Linux Multitasking: Während der Abarbeitung des Programms kann mit anderen Applikationen gearbeitet werden.
- bis zu 60 kHz Schrittfrequenz
- und vieles mehr
Entwicklungs-Stand und Historie
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 gestaltete sich anfangs jedoch nicht gerade einfach. Damit EMC einfacher installiert werden kann und für freie Entwickler attraktiver wird, wurde sie 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 is es sehr leicht möglich, 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 Vortentwicklung.
Hardware-Voraussetzungen
Bei aktuellen Versionen braucht die grafische Oberfläche Rechenleistung, zumal der Realtime-Kernel einem ja Rechenleistung abzieht. Ein modernes Linux mit grafischer Oberfläche (KDE/Gnome) braucht schon mindestens einen 800MHz Rechner mit 512 MB Speicher, um komfortabel arbeiten zu können. Mit EMC und Realtimekernel im Hintergrund sollten es dann schon mindestens 1 GHz sein. 512MB Speicher sollten ausreichen. Auch wenn EMC auf langsameren Rechnern prinzipiell läuft, lässt sich nicht flüssig damit arbeiten.
Weblinks
Grundlegendes
Handbücher und Dokumentationen
Foren
EMC Anwenderseiten
Linux Programme zur Erzeugung von G-Code
dxf2cnc: Kommandozeilenprogramm für die Erzeugung von G-Code aus .dxf Dateien
TTT TrueTypeTracer: Erzeugt EMC-optimierten G-Code aus skalierbaren TTF Schriften
C Quellcode für: Rechtecktasche, Rechteckausschnitt, Kreistasche, Gewindefräsen, Lochbilder etc.
Mit "Stippler" lassen sich digitale Photos in G-Code umwandeln. Lizenz: GPL
OpenCAM ist ein CAM Programm speziell für die Herstellung von PCBs (Platinen). Es lässt sich im "piped Modus" betrieben, d.h. Ausgaben von z.B. Inkscape oder QCad werden "on the fly" in Verfahranweisungen übersetzt. OpenCAM verhält sich in diesem Fall wie ein Druckertreiber. Lizenz: GPL
GCAM-GNU Computer Aided Manufacturing ist ein CAM System basierend auf GTK+, GtkGlExt und OpenGL. Lizenz: LGPL
cam-occ ist ein CAM System basierend auf Qt und OpenCascade. Lizenz: GPL
CNC-Suite ist ein 2D/3D-CAM System basierend auf GTK und OpenGL. Lizenz: GPL
tkBacktracer ist ein TCL/Tk Script zur 3D-Darstellung von Werkzeugwegen. Lizenz: GPL
PyCAM ist ein 2D/3D-CAM-Programm zur Erzeugung von G-Code aus 3D-STL-Modellen oder 2D-SVG/PS/DXF-Konturen. Verschiedene Werkzeugformen und Pfadstrategien sind verfügbar. Stützbrücken und vielfältige G-Code-Parameter sind konfigurierbar. Die Oberfläche basiert auf GTK und OpenGL und wird in Python entwickelt. Lizenz: GPL3
Bedienoberflächen
AXIS: Eine neue Bedieneroberfläche für EMC/EMC2, basierend auf Python und OpenGL
Optimal Controller for a 5-axis Machine Tool: Speziell für die 3D Bearbeitung auf fünfachsigen Maschinen, basierend auf QT, STL und OpenCascade. Nicht auf EMC einsetzbar, aber da im Quellcode vorliegend ein hervorragendes Anschauungsobjekt für Programmierer. Lizenz: GPL
Hardware
Sonstiges
- group:alt.machines.cnc
"Hexapod Software Model" erzeugt u.a. Kalibrierungskoeffizienten für Hexapoden
CNC-Master - eine weiter Linux-Alternative zu EMC (noch Alpha-Status)
Tuxcnc: EMC-Fork Paul war ein zentraler Entwickler von EMC und hat das BDI-System erstellt. Weil ihm einige Entwicklungen von EMC2 nicht gefielen, führt er nun (2006) mit Tuxcnc seinen eigenen Fork weiter, basierend auf EMC1. Bleibt zu hoffen, dass sich dadurch ein weiteres interessantes Linux-CNC-Projekt entwickelt.
emcconfig - EMC-Konfigurationsassistent, mittlerweile veraltet