linuxCNC


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]

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值