⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 integrator_intro.lyx

📁 CNC 的开放码,EMC2 V2.2.8版
💻 LYX
📖 第 1 页 / 共 2 页
字号:
#LyX 1.3 created this file. For more info see http://www.lyx.org/\lyxformat 221\textclass book\begin_preamble\usepackage[plainpages=false,pdfpagelabels,colorlinks=true,linkcolor=blue]{hyperref}\end_preamble\language english\inputencoding default\fontscheme bookman\graphics default\float_placement !!h\paperfontsize 10\spacing single \papersize Custom\paperpackage a4\use_geometry 1\use_amsmath 0\use_natbib 0\use_numerical_citations 0\paperorientation portrait\paperwidth 8.5in\paperheight 11in\leftmargin 1.2in\topmargin 1in\rightmargin 0.6in\bottommargin 0.6in\secnumdepth 5\tocdepth 5\paragraph_separation skip\defskip smallskip\quotes_language english\quotes_times 2\papercolumns 1\papersides 2\paperpagestyle default\layout Chapter\begin_inset LatexCommand \label{first-section}\end_inset The Enhanced Machine Control\layout Standard\begin_inset Notecollapsed false\layout Standardadd the latency test somewhere\end_inset \layout SectionIntroduction\begin_inset LatexCommand \label{sec:Introduction}\end_inset \layout StandardFor normal stepper based installations see the Getting Started Guide. Once EMC is installed and configured see the User Manual for information on using EMC.\layout StandardThe Integrator Manual scope is on more complex machines, configurations and installations. As the system integrator your task is bringing together all the component subsystems into a whole and ensuring that those subsystems function together. EMC being one of the subsystems. \layout SectionThe Big CNC Picture\begin_inset LatexCommand \label{sec:The-Big-CNC}\end_inset \layout StandardThe term CNC has taken on a lot of different meanings over the years. In the early days CNC replaced the hands of a skilled machinist with motors that followed commands in much the same way that the machinist turned the hand wheels. From these early machines, a language of machine tool control has grown. This language is called RS274 and several standard variants of it have been put forward. It has also been expanded by machine tool and control builders in order to meet the needs of specific machines. If a machine changed tools during a program it needed to have tool change commands. If it changed pallets in order to load new castings, it had to have commands that allowed for these kinds of devices as well. Like any language, RS274 has evolved over time. Currently there are several dialects. In general each machine tool maker has been consistent within their product line but different dialects can have commands that cause quite different behavior from one machine to another.\layout StandardMore recently the language of CNC has been hidden behind or side-stepped by several programming schemes that are referred to as \begin_inset Quotes eld\end_inset Conversational\begin_inset Footcollapsed false\layout StandardOne machine tool manufacturer, Hurco, claims to have a right to the use of these programming schemes and to the use of the term conversational when used in this context. \end_inset  programming languages.\begin_inset Quotes erd\end_inset  One common feature of these kinds of programming schemes is the selection of a shape or geometry and the addition of values for the corners, limits, or features of that geometry.\layout StandardThe use of Computer Aided Drafting has also had an effect on the CNC programming languages. Because CAD drawings are saved as a list or database of geometries and variables associated with each, they are available to be interpreted into G-Code. These interpreters are called CAM (Computer Aided Machining) programs.\layout StandardLike the CAD converters, the rise of drawing programs, like Corel\begin_inset Formula $^{\textrm{TM}}$\end_inset  and the whole bunch of paint programs, converters have been written that will take a bitmap or raster or vector image and turn it into G-Code that can be run with a CNC.\layout StandardYou're asking yourself, \begin_inset Quotes eld\end_inset Why did I want to know this?\begin_inset Quotes erd\end_inset  The answer is that the EMC2 as it currently exists does not directly take in CAD or any image and run a machine using it. The EMC2 uses a variant of the earlier CNC language named RS274NGC. (Next Generation Controller). All of the commands given to the EMC2 must be in a form that is recognized and have meaning to the RS274NGC interpreter. This means that if you want to carve parts that were drawn in some graphical or drafting program you will also have to find a converter that will transform the image or geometry list into commands that are acceptable to the EMC2 interpreter. Several commercial CAD/CAM programs are available to do this conversion. At least one converter (Ace) has been written that carries a copyright that makes it available to the public.\layout StandardThere has been recent talk about writing a \begin_inset Quotes eld\end_inset conversational\begin_inset Quotes erd\end_inset  or geometric interface that would allow an operator to enter programs is much the same way that several modern proprietary controls enter programs but it isn't in there yet. \layout SectionComputer Operating Systems\begin_inset LatexCommand \label{sec:Computer-Operating-Systems}\end_inset \layout StandardThe EMC2 code can be compiled on almost any GNU-Linux Distribution (assuming it has been patched with a real time extension). In addition to the raw code, some binary distributions are available. The latest packages have been created around the Ubuntu\begin_inset LatexCommand \index{Ubuntu}\end_inset  GNU-Linux\begin_inset LatexCommand \index{GNU-Linux}\end_inset  Distribution. Ubuntu is one of the distributions that is aimed at novice Linux users, and has been found to be very easy to use. Along with that, there are lots of places around the world that offer support for it. Installing EMC2 on it is trivial, see section \begin_inset LatexCommand \ref{sec:EMC2-Ubuntu-Live-CD}\end_inset \layout StandardThe EMC2 will not run under a Microsoft (TM) operating system. The reason for this is that the EMC2 requires a real-time environment for the proper operation of its motion planning and stepper pulse outputs. Along with that, it also benefits from the much-needed stability and performance of the Linux OS.\layout SectionHistory of the Software\begin_inset LatexCommand \label{sec:History-of-the}\end_inset \layout StandardThe EMC code was started by the Intelligent Systems Division at the National Institute of Standards and Technology in the United States. The quotation below, taken from the NIST\begin_inset LatexCommand \index{NIST}\end_inset  web presence some time back, should lend some understanding of the essential reasons for the existence of this software and of the NIST involvement in it.\layout QuotationAs part of our (NIST) collaboration with the OMAC\begin_inset LatexCommand \index{OMAC}\end_inset  User's Group, we have written software which implements real-time control of equipment such as machine tools, robots, and coordinate measuring machines. The goal of this software development is twofold: first, to provide complete software implementations of all OMAC modules for the purpose of validating application programming interfaces; and second, to provide a vehicle for the transfer of control technology to small- and medium-sized manufacturers via the NIST Manufacturing Extension Partnership. The EMC software is based on the NIST Real-time Control System (RCS\begin_inset LatexCommand \index{RCS}\end_inset ) Methodology, and is programmed using the NIST RCS Library. The RCS Library eases the porting of controller code to a variety of Unix and Microsoft platforms, providing a neutral application programming interface (API) to operating system resources such as shared memory, semaphores, and timers. The RCS Library also implements a communication model, the Neutral Manufacturing Language, which allows control processes to read and write C++ data structures throughout a single homogeneous environment or a heterogeneous networked environment. The EMC software is written in C and C++, and has been ported to the PC Linux, Windows NT, and Sun Solaris operating systems. When running actual equipment, a real-time version of Linux is used to achieve the deterministic computation rates required (200 microseconds is typical). The software can also be run entirely in simulation, down to simulations of the machine motors. This enables entire factories of EMC machines to be set up and run in a computer integrated manufacturing environment. \layout StandardEMC has been installed on many machines, both with servo motors and stepper motors. Here is a sampling of the earliest applications. \layout Itemize3-axis Bridgeport\begin_inset LatexCommand \index{Bridgeport}\end_inset  knee mill at Shaver Engineering. The machine uses DC brush servo motors and encoders for motion control, and OPTO-22 compatible I/O interfaced to the PC parallel port for digital I/O to the spindle, coolant, lube, and e-stop systems. \layout Itemize3-axis desktop milling machine used for prototype development. The machine uses DC brush servo motors and encoders. Spindle control is accomplished using the 4th motion control axis. The machine cuts wax parts. \layout Itemize4-axis Kearney & Trecker horizontal machining center at General Motors Powertrain in Pontiac, MI. This machine ran a precursor to the full-software EMC which used a hardware motion control board. \layout StandardAfter these early tests, Jon Elson found the Shaver Engineering notes and replaced a refrigerator sized Allen Bradley 7300 control on his Bridgeport with the EMC running on a Red Hat 5.2 distribution of Linux. He was so pleased with the result that he advertised the software on several newsgroups. He continues to use that installation and has produced several boards that are supported by the software. \layout StandardFrom these early applications news of the software spread around the world. It is now used to control many different kinds of machines. More recently the Sherline\begin_inset LatexCommand \index{Sherline}\end_inset  company \begin_inset LatexCommand \url{http://www.sherline.com}\end_inset  has released their first CNC mill. It uses a standard release of the EMC. \layout StandardThe source code files that make up the controller are kept in a repository\begin_inset LatexCommand \index{CVS}\end_inset  on \begin_inset LatexCommand \url{http://cvs.linuxcnc.org}\end_inset . They are available for anyone to inspect or download. The EMC2 source code (with a few exceptions\begin_inset Footcollapsed false\layout Standardsome parts of EMC2 are released under the \begin_inset Quotes eld\end_inset Lesser\begin_inset Quotes erd\end_inset  GPL (LPGL), which allows them to be used with proprietary software as long as certain restrictions are observed.\end_inset ) is released under the GNU General Public License (GPL). The GPL\begin_inset LatexCommand \index{GPL}\end_inset  controls the terms under which EMC2 can be changed and distributed. This is done in order to protect the rights of people like you to use, study, adapt, improve, and redistribute it freely, now and in the future. To read about your rights as a user of EMC2, and the terms under which you are allowed to distribute any modifications you may make, see the full GPL at \begin_inset LatexCommand \url{http://www.gnu.org/copyleft/gpl.html}\end_inset .\layout SectionHow EMC2 Works\begin_inset LatexCommand \label{sec:How-EMC2-Works}\end_inset \layout StandardThe Enhanced Machine Controller (EMC2) is a lot more than just another CNC\begin_inset LatexCommand \index{CNC}\end_inset  mill program. It can control machine tools, robots, or other automated devices. It can control servo motors, stepper motors, relays, and other devices related to machine tools. In this handbook we focus on only a small part of that awesome capability, the mini mill.\layout Standard\begin_inset Float figurewide falsecollapsed false\layout Caption\begin_inset LatexCommand \label{fig:Typical_machine}\end_inset Simple EMC2 Controlled Machine\layout Standard\align center \begin_inset Graphics	filename whatstep1.png\end_inset \end_inset \layout StandardFigure \begin_inset LatexCommand \ref{fig:Typical_machine}\end_inset  shows a simple block diagram showing what a typical 3-axis EMC2 system might look like. This diagram shows a stepper motor system. The PC, running Linux\begin_inset LatexCommand \index{Linux}\end_inset  as its operating system, 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 EMC2 can also run servo motors via servo interface cards or by using an extended parallel port to connect with external control boards. As we examine each of the components that make up an EMC2 system we will remind the reader of this typical machine.\layout StandardThere are four main components to the EMC2 software: a motion controller (EMCMOT), a discrete I/O controller (EMCIO), a task executor which coordinates them (EMCTASK), and a collection of text-based or graphical user interfaces. An EMC2 capable of running a mini mill must start some version of all four of these components in order to completely control it. Each component is briefly described below. In addition there is a layer called HAL\begin_inset LatexCommand \index{HAL}\end_inset  (Hardware Abstraction Layer) which allows simple reconfiguration of EMC2 without the need of recompiling.\layout SubsectionGraphical User Interfaces\begin_inset LatexCommand \label{sub:Graphical-User-Interfaces}\end_inset \layout StandardA graphical interface is the part of the EMC2 that the machine tool operator interacts with. The EMC2 comes with several types of user interfaces: \layout Itemizea character-based screen graphics program named keystick\begin_inset LatexCommand \index{keystick}\end_inset  \begin_inset LatexCommand \ref{fig:The Keystick Interface}\end_inset \layout Itemizean X Windows programs named xemc\begin_inset LatexCommand \index{xemc}\end_inset  \begin_inset LatexCommand \ref{fig:XEMC_Graphical_Interface}\end_inset  \layout Itemizetwo Tcl/Tk-based GUIs named tkemc\begin_inset LatexCommand \index{tkemc}\end_inset  \begin_inset LatexCommand \ref{fig:TkEmc_Graphical_Interface}\end_inset  and mini\begin_inset LatexCommand \index{mini}\end_inset  \begin_inset LatexCommand \ref{fig:The Mini Graphical Interface}\end_inset . \layout Itemizean OpenGL-based GUI, with an interactive G-Code previewer, called AXIS\begin_inset LatexCommand \index{AXIS}\end_inset  \begin_inset LatexCommand \ref{fig:The AXIS Graphical Interface}\end_inset \layout Standard\begin_inset Float figurewide falsecollapsed false\layout Standard\align center \begin_inset Graphics	filename axis.png

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -