Enhanced Machine Controller
Encyclopedia
Enhanced Machine Controller, or EMC2, is a FLOSS
Floss
Floss may refer to:* Dental floss, used to clean teeth* Embroidery thread, machine or hand-spun yarn for embroidery* Fairy floss or candyfloss, alternative names for cotton candy* Rousong, i.e. meat floss-Computing:...

 GNU/Linux software system to implement numerical control
Numerical control
Numerical control refers to the automation of machine tools that are operated by abstractly programmed commands encoded on a storage medium, as opposed to controlled manually via handwheels or levers, or mechanically automated via cams alone...

 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
Numerical control
Numerical control refers to the automation of machine tools that are operated by abstractly programmed commands encoded on a storage medium, as opposed to controlled manually via handwheels or levers, or mechanically automated via cams alone...

 of machines such as milling machine
Milling machine
A milling machine is a machine tool used to machine solid materials. Milling machines are often classed in two basic forms, horizontal and vertical, which refers to the orientation of the main spindle. Both types range in size from small, bench-mounted devices to room-sized machines...

s, lathe
Lathe
A lathe is a machine tool which rotates the workpiece on its axis to perform various operations such as cutting, sanding, knurling, drilling, or deformation with tools that are applied to the workpiece to create an object which has symmetry about an axis of rotation.Lathes are used in woodturning,...

s, plasma cutters
Plasma cutting
Plasma cutting is a process that is used to cut steel and other metals of different thicknesses using a plasma torch...

, routers, cutting machines
Punch press
A punch press is a type of machine press used to cut holes in material. It can be small and manually operated and hold one simple die set, or be very large, CNC operated, with a multi-station turret and hold a much larger and complex die set.-Description:...

, robots
Industrial robot
An industrial robot is defined by ISO as an automatically controlled, reprogrammable, multipurpose manipulator programmable in three or more axes...

, hexapods
Stewart platform
A Stewart platform is a type of parallel robot that incorporates six prismatic actuators, commonly hydraulic jacks. These actuators are mounted in pairs to the mechanism's base, crossing over to three mounting points on a top plate. Devices placed on the top plate can be moved in the six degrees...

, etc. It can control up to 9 axes or joints of a CNC machine using G-code
G-code
G-code is the common name for the most widely used computer numerical control programming language, which has many implementations. Used mainly in automation, it is part of computer-aided engineering. G-code is sometimes called G programming language...

 (RS-274NGC) as input. It has several GUIs
Graphical user interface
In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

 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
DEC Alpha
Alpha, originally known as Alpha AXP, is a 64-bit reduced instruction set computer instruction set architecture developed by Digital Equipment Corporation , designed to replace the 32-bit VAX complex instruction set computer ISA and its implementations. Alpha was implemented in microprocessors...

, SPARC
SPARC
SPARC is a RISC instruction set architecture developed by Sun Microsystems and introduced in mid-1987....

). It makes extensive use of a real time-modified kernel
Real-time operating system
A real-time operating system is an operating system intended to serve real-time application requests.A key characteristic of a RTOS is the level of its consistency concerning the amount of time it takes to accept and complete an application's task; the variability is jitter...

, and supports both stepper-
Stepper motor
A stepper motor is a brushless, electric motor that can divide a full rotation into a large number of steps. The motor's position can be controlled precisely without any feedback mechanism , as long as the motor is carefully sized to the application...

 and servo
Servomechanism
thumb|right|200px|Industrial servomotorThe grey/green cylinder is the [[Brush |brush-type]] [[DC motor]]. The black section at the bottom contains the [[Epicyclic gearing|planetary]] [[Reduction drive|reduction gear]], and the black object on top of the motor is the optical [[rotary encoder]] for...

-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
G-code
G-code is the common name for the most widely used computer numerical control programming language, which has many implementations. Used mainly in automation, it is part of computer-aided engineering. G-code is sometimes called G programming language...

).
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 FreeBSD
FreeBSD
FreeBSD is a free Unix-like operating system descended from AT&T UNIX via BSD UNIX. Although for legal reasons FreeBSD cannot be called “UNIX”, as the direct descendant of BSD UNIX , FreeBSD’s internals and system APIs are UNIX-compliant...

 or Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, interfacing to various hardware motion control systems.

The demonstration project was very successful and created a community of users and volunteer contributors. Some time around 2000, these contributors took the EMC project to the next stage, relocating it to sourceforge.net
SourceForge.net
SourceForge is a web-based source code repository. It acts as a centralized location for software developers to control and manage open source software development. The website runs a version of SourceForge Enterprise Edition, forked from the last open-source version available...

 under the Public Domain
Public domain
Works are in the public domain if the intellectual property rights have expired, if the intellectual property rights are forfeited, or if they are not covered by intellectual property rights at all...

 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 now under the GNU General Public License
GNU General Public License
The GNU General Public License is the most widely used free software license, originally written by Richard Stallman for the GNU Project....

.

The adoption of the new name EMC2 was prompted by several major changes. Primarily, a new layer known as HAL (Hardware Abstraction layer) was introduced to interconnect functions easily without altering C code or recompiling. This split trajectory and motion planning from motion hardware, making it much easier to support gantry machines
Cartesian coordinate robot
A cartesian coordinate robot is an industrial robot whose three principal axes of control are linear and are at right angles to each other. Among other advantages, this mechanical arrangement simplifies the Robot control arm solution...

, lathe
Lathe
A lathe is a machine tool which rotates the workpiece on its axis to perform various operations such as cutting, sanding, knurling, drilling, or deformation with tools that are applied to the workpiece to create an object which has symmetry about an axis of rotation.Lathes are used in woodturning,...

 threading and rigid tapping, and a variety of other adaptations. HAL comes with some interactive tools to examine signals and connect and remove links. It also includes a virtual oscilloscope to examine signals in real time. Another change with EMC2 is Classic Ladder, (an open-source ladder logic
Ladder logic
Ladder logic is a programming language that represents a program by a graphical diagram based on the circuit diagrams of relay logic hardware. It is primarily used to develop software for programmable logic controllers used in industrial control applications...

 implementation) adapted for the real time environment to configure 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 computing
Real-time computing
In computer science, real-time computing , or reactive computing, is the study of hardware and software systems that are subject to a "real-time constraint"— e.g. operational deadlines from event to system response. Real-time programs must guarantee response within strict time constraints...

 capabilities. It uses Linux kernel with real time extensions (RTAI
RTAI
RTAI stands for Real-Time Application Interface. It is a real-time extension for the Linux kernel - which lets you write applications with strict timing constraints for Linux...

 or RTLinux
RTLinux
RTLinux or RTCore is a hard realtime RTOS microkernel that runs the entire Linux operating system as a fully preemptive process.It was developed by Victor Yodaiken , Michael Barabanov , Cort Dougan and others at the New Mexico Institute of Mining and Technology and then as a commercial product at...

). Installing EMC2 (and the underlying real time extension) is a daunting task, therefore prebuilt binary packages have been built and are being distributed. The policy for EMC2 is to build packages and offer support on Ubuntu
Ubuntu (operating system)
Ubuntu is a computer operating system based on the Debian Linux distribution and distributed as free and open source software. It is named after the Southern African philosophy of Ubuntu...

 LTS (long term support) releases.

Configuration

EMC2 uses a software layer called HAL (Hardware Abstraction Layer).

HAL allows a multitude of configurations to be built while being flexible: one can mix & match various hardware control boards, output control signals through the parallel port
Parallel port
A parallel port is a type of interface found on computers for connecting various peripherals. In computing, a parallel port is a parallel communication physical interface. It is also known as a printer port or Centronics port...

 or serial port
Serial port
In computing, a serial port is a serial communication physical interface through which information transfers in or out one bit at a time...

 - while driving stepper
Stepper motor
A stepper motor is a brushless, electric motor that can divide a full rotation into a large number of steps. The motor's position can be controlled precisely without any feedback mechanism , as long as the motor is carefully sized to the application...

 or servo motors
Servomechanism
thumb|right|200px|Industrial servomotorThe grey/green cylinder is the [[Brush |brush-type]] [[DC motor]]. The black section at the bottom contains the [[Epicyclic gearing|planetary]] [[Reduction drive|reduction gear]], and the black object on top of the motor is the optical [[rotary encoder]] for...

, solenoid
Solenoid
A solenoid is a coil wound into a tightly packed helix. In physics, the term solenoid refers to a long, thin loop of wire, often wrapped around a metallic core, which produces a magnetic field when an electric current is passed through it. Solenoids are important because they can create...

s and other actuator
Actuator
An actuator is a type of motor for moving or controlling a mechanism or system. It is operated by a source of energy, usually in the form of an electric current, hydraulic fluid pressure or pneumatic pressure, and converts that energy into some kind of motion. An actuator is the mechanism by which...

s.

EMC2 also includes a software programmable logic controller
Programmable logic controller
A programmable logic controller or programmable controller is a digital computer used for automation of electromechanical processes, such as control of machinery on factory assembly lines, amusement rides, or light fixtures. PLCs are used in many industries and machines...

(PLC) which is usually used in extensive configurations (e.g. complex machining centers). The software PLC is based on the opensource project Classicladder, and runs within the real-time environment.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK