LinuxCNC

From Wikipedia, the free encyclopedia

LinuxCNC (Formerly called Enhanced Machine Controller, or EMC2,) is a FLOSS GNU/Linux software system that implements numerical control capability using general purpose computers to control CNC machines. It is developed by a number of volunteer developers at LinuxCNC.Org. Following alleged discussions with the EMC Corporation it has been decided to rename this application LinuxCNC.

Purpose[edit source | editbeta]

LinuxCNC is a software system for numerical control of machines such as milling machineslathesplasma cuttersrouterscutting machinesrobotshexapods, etc. It can control up to 9 axes or joints of a CNC machine using G-code (RS-274NGC) 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[citation needed]). It makes extensive use of a real time-modified kernel, and supports both stepper- and servo-type drives.

History[edit source | editbeta]

The EMC Public Domain software system was originally developed by NIST,as the next step beyond the National Center for Manufacturing Sciences / Air Force sponsored Next Generation Controller Program[NGC 1989] /Specification for an Open Systems Architecture[SOSAS]. It was called the ECA [Enhanced Machine Controller Architecture 1993]. Government sponsored Public Domain software systems for the control of milling machines were among the very first projects developed with the digital computer in the 1950`s. It was to be a "vendor-neutral" 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 FreeBSD[citation needed] or Linux, interfacing to various hardware motion control systems.

The demonstration project was very successful and created a community of users and volunteer contributors. Around June 2000, NIST relocated the source code tosourceforge.net under the Public Domain license in order to allow external contributors to make changes. In 2003, the community rewrote some parts of it, reorganized and simplified other parts, then gave it the new name, EMC2. EMC2 is still being actively developed. Licensing is now under the GNU General Public License.

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[dubious ] to support gantry machineslathe 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 implementation) adapted for the real time environment to configure complex auxiliary devices like automatic tool changers.

Platforms[edit source | editbeta]

Due to the need of fine grained, precise real time control of machines in motion, EMC requires a platform with real-time computing capabilities. It uses Linux kernel with real time extensions (RTAI). 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 LTS (long-term support) releases.[1]

Design[edit source | editbeta]

LinuxCNC "employs a trapezoidal velocity profile generator."[2]

Configuration[edit source | editbeta]

LinuxCNC uses a software layer called HAL (Hardware Abstraction Layer).[3]

HAL allows a multitude of configurations to be built [4] while being flexible: one can mix & match various hardware control boards, output control signals through the parallel port or serial port - while driving stepper or servo motorssolenoids and other actuators.

LinuxCNC also includes a software programmable logic controller (PLC) which is usually used in extensive configurations (e.g. complex machining centers). The software PLC is based on the opensource project Classicladder,[5] and runs within the real-time environment.

References[edit source | editbeta]

Notes
  1. ^ "Installing EMC2 ... and supported platforms". Linuxcnc Board of Directors. September 18, 2010. Retrieved 2010-09-29.
  2. ^ "Simple Tp Notes".
  3. ^ "EMC2's Hardware Abstraction Layer". Linuxcnc Board of Directors. Retrieved 2010-09-30.
  4. ^ "A couple case studies". Retrieved 2010-09-30.
  5. ^ http://membres.multimania.fr/mavati/classicladder/
Bibliography

External links[edit source | editbeta]

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐