Jump to content

LinuxCNC

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by 89.27.61.165 (talk) at 07:47, 30 September 2010 (History: link to ladder logic). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

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

  • 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.
  • 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
  • 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
  • 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
  1. ^ "Installing EMC2 ... and supported platforms". Linuxcnc Board of Directors. September 18, 2010. Retrieved 2010-09-29.