EMC (the Enhanced Machine Control)
EMC (the Enhanced Machine Control) is a software system for computer control of machine tools such as milling machines and lathes.
EMC is free software with open source code. Current versions of EMC are entirely licensed under the GNU General Public License and Lesser GNU General Public License (GPL and LGPL)
- EMC provides:
- several graphical user interfaces including one for touch screens
- an interpreter for "G-code" (the RS-274 machine tool programming language)
- a realtime motion planning system with look-ahead
- operation of low-level machine electronics such as sensors and motor drives
- an easy to use "breadboard" layer for quickly creating a unique configuration for your machine
- a software PLC programmable with ladder diagrams
- easy installation with .deb packages or a Live-CD
It does not provide drawing (CAD - Computer Aided Design) or G-code generation from the drawing (CAM - Computer Automated Manufacturing) functions.
- It can simultaneously move up to 9 axes and supports a variety of interfaces.
- The control can operate true servos (analog or PWM) with the feedback loop closed by the EMC software at the computer, or open loop with "step-servos" or stepper motors.
- Motion control features include: cutter radius and length compensation, path deviation limited to a specified tolerance, lathe threading, synchronized axis motion, adaptive feedrate, operator feed override, and constant velocity control.
- Support for non-Cartesian motion systems is provided via custom kinematics modules. Available architectures include hexapods (Stewart platforms and similar concepts) and systems with rotary joints to provide motion such as PUMA or SCARA robots.
- EMC runs on Linux using real time extensions. Support currently exists for version 2.4 and 2.6 Linux kernels with real time extensions applied by RT-Linux or RTAI patches.