CNC Driver Software - EMC for linux

 

p1k p1k p1k p1k p1k
p1k p1k p1k

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/

 

Features

  • Schrittmotoransteuerung über Takt/Richtung
  • Servoansteuerung z.B. über die 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.
  • etwa 20-40 KHz max. Schrittfrequenz bei Verwendung von freqmod (1/(PERIOD*2)) (500MHz Rechner ca. 25 KHz)

 

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 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.

 

Hardware-Voraussetzungen

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.

 

Tipps und Tricks

  • 22.01.2005: BDI-4.08 setzt eine i686er Hardware voraus, läuft also nicht auf Pentium I Prozessoren.
  • Wer keine Steuerung hat, aber die Ausgabe auf dem Port überprüfen möchte, kann kleine Lautsprecher an die Taktausgänge anklemmen. Diese mit z.B. 1KOhm in Reihe ankoppeln, Lautsprecher selber mit einer parallelgeschalteten Freilaufdiode betreiben, damit keine negativen Spannungen in den Port zurückwirken. Man kann sich so schön den Sound anhören, der sonst durch die Motoren verursacht würde. Damit lässt sich gut abschätzen, ob die Einstellungen korrekt sind. Als Lautsprecher eignen sich Miniatur-Signalgeber aus dem Elektronikladen (1cm Durchmesser, 1cm Hoch) oder auch Walkman-Kopfhörer.

More information about EMC
 click here


 

[Home] [Hobby] [Driver Boards] [Camtronics] [Machinetoolcamp] [Xylotex] [Pico Systems] [Stepperworld] [technologicalarts] [Uwe Wulf] [SMC800 en SMC1500] [Router Spindles - Milwaukee] [Router Spindles - Metabo] [Router Spindles - Bosch] [Router Spindles] [Router Spindles - De Walt] [Router Spindles - Porter Cable] [Router Spindles - Makita] [Router Spindles - Kress] [Router Spindles - Proxxon] [Free Cad Software] [FelixCAD LT for Windows] [Free DWG Viewer] [FreeCAD - 3D CAD with Motion Simulation] [Model Press 3.0.0.12] [eMachineShop 1.0] [Minos] [Alibre] [Contact] [CNC Driver Software - Mach2] [CNC Driver Software - Pc Dreh] [CNC Driver Software - FRS-Win-2006] [CNC Driver Software - Pc-Nc] [CNC Driver Software - cnc player] [CNC Driver Software - Turbo CNC] [CNC Driver Software - EMC for linux] [CNC Driver Software - Galaad]

old server