LinuxCNC
An editor has nominated this article for deletion. You are welcome to participate in the deletion discussion, which will decide whether or not to retain it. |
Enhanced Machine Controller, or EMC2, is an open source Linux software system to implement Numerical control capability using general purpose computers to control machines. It is developed by a number of volunteer developers at LinuxCNC.Org
Purpose
EMC2 is a software system for numerical control of machines such as milling machines, lathes, plasma cutters, routers, cutting machines, robots, hexapods, etc. It can control up to 9 axes or joints of a CNC machine using G-code (RS-274D) as input. It has several GUIs suited to specific kinds of usage (touch screen, interactive development). Currently it is almost exclusively used on X86 PC platforms, but a couple ports to other architectures are in use (Alpha, Sparc). It makes extensive use of a Real Time-modified kernel, and supports both stepper- and servo-type drives.
History
EMC was originally developed by NIST, as a reference implementation of the industry standard language for numerical control of machining operations, RS-274D (G-code). The software included the RS274 interpreter driving the motion trajectory planner, real-time motor/actuator drivers and a user interface. It demonstrated the feasibility of an advanced numerical control system using off the shelf PC hardware running Linux, interfacing to various hardware motion control systems.
The demonstration project was very successful and created a community of users and volunteer contributors. Sometime around 2000 these volunteers took the EMC project to the next stage: relocated it to sourceforge.net under the Public Domain license. In 2003 the community rewrote some parts of it, reorganized and cleaned up the rest, and gave it the new name, EMC2. EMC2 is still being actively developed. Licensing is under the GNU General Public License.
A major change, prompting the new name EMC2, was to split trajectory and motion planning from the motion hardware, and interpose a new layer known as HAL (Hardware Abstraction Layer) to interconnect functions easily without altering C code or recompiling. This opened up a whole range of new possibilities, and made it much easier to support gantry machines, lathe threading and rigid tapping, and a variety of other adaptations. HAL comes with some interactive tools to examine signals, connect and remove links and a virtual oscilloscope to examine signals in real time. Also, Classic Ladder (an open-source ladder logic implementation) was adapted for the real time environment for configuring complex auxiliary devices like automatic tool changers.
Platforms
Due to the need of fine grained, precise real time control of machines in motion, EMC requires a platform with Real time capabilities. It uses Linux kernel with real time extensions (RTAI or RTLinux). Installing emc2 (and the underlying real time extension) is a daunting task, therefor prebuilt binary packages have been built and are beeing distributed. The policy for emc2 is to build packages and offer support on Ubuntu LTS (long term support) releases.[1]
Configuration
References
- Proctor, F. M., and Michaloski, J., "Enhanced Machine Controller Architecture Overview," NIST Internal Report 5331, December 1993. Available online at ftp://129.6.13.104/pub/NISTIR_5331.pdf
- Albus, J.S., Lumia, R., “The Enhanced Machine Controller (EMC): An Open Architecture Controller for Machine Tools,” Journal of Manufacturing Review, Vol. 7, No. 3, pp. 278-280, September 1994.
- Lumia, "The Enhanced Machine Controller Architecture", 5th International Symposium on Robotics and Manufacturing, Maui, HI, August 14-18, 1994, http://www.nist.gov/customcf/get_pdf.cfm?pub_id=820483
- Fred Proctor et al., "Simulation and Implementation of an Open Architecture Controller", Simulation, and Control Technologies for Manufacturing, Volume 2596, Proceedings of the SPIE, October 1995, http://www.isd.mel.nist.gov/documents/proctor/sim/sim.html
- Fred Proctor, John Michaloski, Will Shackleford, and Sandor Szabo, "Validation of Standard Interfaces for Machine Control", Intelligent Automation and Soft Computing: Trends in Research, Development, and Applications, Volume 2, TSI Press, Albuquerque, NM, 1996, http://www.isd.mel.nist.gov/documents/proctor/isram96/isram96.html
- Shackleford and Proctor, "Use of open source distribution for a Machine tool Controller", Sensors and controls for intelligent manufacturing. Conference, Boston MA , 2001 , vol. 4191, pp. 19-30, http://www.isd.mel.nist.gov/documents/shackleford/4191_05.pdf or http://dx.doi.org/10.1117/12.417244
- Morar et al., "ON THE POSSIBILITY OF IMPROVING THE WIND GENERATORS", International Conference on Economic Engineering and Manufacturing Systems, Brasov, 25-26 October 2007, http://www.recentonline.ro/021/Morar_L_01a.pdf
- Zhang et al., "Development of EMC2 CNC Based on Qt", Manufacturing Technology & Machine Tool, 2008, http://en.cnki.com.cn/Article_en/CJFDTOTAL-ZJYC200802046.htm
- Leto et al., "CAD/CAM INTEGRATION FOR NURBS PATH INTERPOLATION ON PC BASED REAL-TIME NUMERICAL CONTROL", 8th INTERNATIONAL CONFERENCE ON ADVANCED MANUFACTURING SYSTEMS AND TECHNOLOGY JUNE 12-13, 2008 UNIVERSITY OF UDINE - ITALY, http://158.110.28.100/amst08/papers/art837759.pdf
- Xu et al., "Mechanism and Application of HAL in the EMC2", Modern Manufacturing Technology and Equipment 2009-05, http://en.cnki.com.cn/Article_en/CJFDTOTAL-SDJI200905037.htm
- Zivanovic et al., "Methodology for Configuring Desktop 3-axis Parallel Kinematic Machine", FME Transactions (2009) 37, 107-115, http://www.simlab.mas.bg.ac.rs/istrazivanje/biblioteka/publikacije/Transactions_FME/Volume37/3/01_SZivanovic.pdf
- Glavonjic et al., "Desktop 3-axis parallel kinematic milling machine", The International Journal of Advanced Manufacturing Technology Volume 46, Numbers 1-4, 51-60 (2009), http://dx.doi.org/10.1007/s00170-009-2070-3
- Staroveski et al., "IMPLEMENTATION OF A LINUX-BASED CNC OPEN CONTROL SYSTEM", 12th INTERNATIONAL SCIENTIFIC CONFERENCE ON PRODUCTION ENGINEERING –CIM2009, Croatian Association of Production Engineering, Zagreb 2009, http://crosbi.znanstvenici.hr/datoteka/421305.209-Staroveski-Brezak-Udiljak-Majetic-CIM_2009.pdf
- Li et al., "Control system design and simulation of parallel kinematic machine based on EMC2", Machinery Design & Manufacture 2010-08, http://en.cnki.com.cn/Article_en/CJFDTOTAL-JSYZ201008074.htm
- Li et al., "Kinematics Analysis and Control System Design of 6-DOF Parallel Kinematic Machine with Matlab and EMC2" , Advanced Materials Research (Volumes 102 - 104): Digital Design and Manufacturing Technology, 2010, http://dx.doi.org/10.4028/www.scientific.net/AMR.102-104.363
- Klancnik et al., "Computer-Based Workpiece Detection on CNC Milling Machine Tools Using Optical Camera and Neural Networks", Advances in Production Engineering & Management 5 (2010) 1, 59-68, http://maja.uni-mb.si/files/apem/APEM5-1-view.pdf
- Milutinovic et al., "Reconfigurable robotic machining system controlled and programmed in a machine tool manner", The International Journal of Advanced Manufacturing Technology, 2010, http://dx.doi.org/10.1007/s00170-010-2888-8
- ^ "Installing EMC2 ... and supported platforms". Linuxcnc Board of Directors. September 18, 2010. Retrieved 2010-09-29.
External links
- EMC2 project homepage at www.linuxcnc.org
- EMC2 project wiki
- The NIST RS274NGC Standard - Version 3 Aug 2000 also available as a PDF
- The Enhanced Machine Controller homepage at NIST