TOC PREV NEXT INDEX

Handbook - The Enhanced Machine Controller


Block diagram of stepper system An often asked question is, "So what is the EMC anyway?" Here is part of the official NIST definition: "The Enhanced Machine Controller (EMC) program is a NIST effort to develop and validate a specification for interfaces to open architecture controllers."In simpler terms, EMC is a free and open source CNC controller program. The EMC can control machine tools, robots, or other automated devices. It can control servo motors, stepper motors, relays,and other devices related to machine tools.

On the right side of your screen is a simple block diagram showing what a typical 3-axis EMC system might look like.

This diagram shows a stepper motor system. The PC, running Linux as it's OS, is actually controlling the stepper motor drives by sending signals through the printer port. These signals (pulses) make the stepper drives move the stepper motors. The EMC can also run servo motors via servo interface cards or by using an entended parallel port to connect with external control boards.


Block diagram of EMC using the G-code interpreter.


Here is a block diagram of how a personal computer running the EMC is used to control a machine with G-code. The actual G-code can be sent using MDI (Machine Device Interface) or sent as a file. These choices are made by the operator and entered using the gui.

G-code is sent to the interpreter which sends blocks of cannonical commands to the task and motion planning programs.


The GUI for EMC comes in many variations, text based, X Windows, Tcl/Tk, Java, etc... The user interface for EMC can easily be customized by users.

Four axis display

Here is an example of the X Windows GUI. This one has been modified a bit to show the position of each of four axes.

 

Below is an example of how the Tkemc GUI can be modified rather easily to include or exclude some functions.

Tkemc with embedded program editor

This GUI has an editor built into the right side of the screen. Some of the original buttons that weren't needed for the particular machine, were removed. The axis readouts on the left side of the screen has also been shrunk slightly to make room for the editor.


EMC is open sourced, so it's easily used for other applications. Ray Henry has created a backplotting program, using EMC as the underlying guts. This program will accept a G-code file and plot out on the screen the graphical representation of the program's toolpath. Here is a screenshot showing one of the test G-code files that is included with most EMC releases. The file is named isd.ngc.


RF 45 retrofit Machines such as Sherline mills and lathes all the way up to Kerney & Trekker HMCs have been controlled with EMC. Currently, I have two machines in my shop running with EMC controls. One is a common mill/drill running stepper motors, that I use for engraving. The other is a RF-45 mini bed mill run with Servo Lite drives and servo motors that mills brass, steel, aluminum, plastic, mother of pearl, and wood.


These are pictures of my RF-45 that I retrofitted with the EMC.

RF 45 cutting brass.

Milled brass part.


Credits

This is a preliminary copy of a chapter to be included in the part programming section of the EMC cookbook. This page is maintained by Dan Falck. Comments, criticism, additions, subtractions, and editing are welcomed.



TOC PREV NEXT INDEX