公众号【嵌入式er笔记】持续记录和分享C/C++、Linux、ARM、Android、IoT等技术相关知识,以及职场、生活经验和感悟。
分类: LINUX
2012-12-13 17:55:51
DISCLAIMER
----------
THE AUTHORS OF THIS LIBRARY ACCEPT ABSOLUTELY NO LIABILITY FOR
ANY HARM OR LOSS RESULTING FROM ITS USE. IT IS _EXTREMELY_ UNWISE
TO RELY ON SOFTWARE ALONE FOR SAFETY. Any machinery capable of
harming persons must have provisions for completely removing power
from all motors, etc, before persons enter any danger area. All
machinery must be designed to comply with local and national safety
codes, and the authors of this software can not, and do not, take
any responsibility for such compliance.
免责声明
--------
本文作者坚决不对任何读者因使用本文而导致的任何财产损失或者身体伤害承担
任何责任。仅仅指望计算机软件或技术文件来确保和解决安全问题也是极不明智的表
现。任何机器,只要它有伤人的可能,就必须制定严格的制度来管理它。比如可以规
定“在人体进入危险区域之前,必须确保所有电机断电”等条款。事实上,设计任何
一种机器设备都需要遵循所在国家或地区的各种不同级别的安全标准,本文的作者显
然无法了解和满足如此多的标准要求,所以也就不能承担相关的责任。
Mission Statement
-----------------
EMC2 is an offshoot of the original NIST Enhanced Machine
Controller. The new version is (primarily) a GPL'd project.
The major goals are:
1) Make the project more friendly to new developers. This
means a simpler build process, as well as other changes
listed below. (DONE)
2) Reduce complexity by eliminating support for platforms
other than Linux on x86, with either RTAI or RTLinux for
realtime. (DONE)
3) Incorporate a Hardware Abstraction Layer that makes the
realtime code more modular and allows pins and I/O devices
to be reconfigured easily. (DONE)
4) Add some of the features that were discussed at the 2003
NAMES show on EMC Monday - these include rigid tapping
and single point threading, improved contouring, a built-
in PLC using ClassicLadder, and others. (mostly DONE, yet
new features will constantly be added)
任务描述
---------
EMC2最初是 NIST Enhanced Machine Controller 项目的一个分支,现在它是一
个GPL的项目,EMC2目前致力于以下四个目标:
1)使EMC2项目对新手来说更加易于使用,且易于编译与安装。
2)为了减少复杂度,决定:除了X86-Linux平台以外,EMC2都不提供支持。在实时性
方面,也只提供RTAI或者RTLinux的支持。
3)EMC2包括了一个硬件抽象层(Hardware Abstraction Layer),HAL使得硬件相关
的实时代码更加模块化,从而让外部接口(pins and I/O devices)更易于配置,这
样就提高了软件的灵活性以及适应能力。
4)增加了一些功能,包括刚性攻丝和单点线程、增强的轮廓功能、用ClassLadder实
现的内置PLC功能(rigid tapping and single point threading、improved
contouring、built-in PLC using ClassicLadder) 等等。
----------------------以上节选自源码包根目录的README文件
目录
第 1 章 计算机配置
1.1 最小配置
The minimum system to run EMC2 and Ubuntu may vary depending on the exact
usage. Stepper systems in general require faster threads to generate step
pulses than servo systems. Using the Live-CD you can test the software
before committing a computer. Keep in mind that the Latency Test numbers
are more important than the processor speed for software step generation.
More information on the Latency Test is in Section (7.2.1).
Additional information is on the EMC Wiki site:
事实上,最小配置是什么样的并不确定,这取决于具体的应用。总的来说,分管
线程切换的时间片分配系统(Stepper systems)要足够快,起码要能产生比伺服系
统还要快的步进脉冲才行。要注意, CPU的速度肯定是越快越好,但不是最终决定因
素,相对而言,Live-CD里面提供的Latency Test功能反而更加重要,Latency Test
可以最终判断目标机器是否适合运行EMC2系统。关于Latency Test的详细信息参见(
7.2.1)。要了解更多信息,您还可以去下面的网址去看看:
EMC2 and Ubuntu should run reasonably well on a computer with the following
minimum hardware specification. These numbers are not the absolute minimum
but will give reasonable performance for most stepper systems.
700 MHz x86 processor (1.2 GHz x86 processor recommended).
384 MB of RAM (512 MB up to 1 GB recommended).
4 GB hard disk.
Graphics card capable of at least 800x600 resolution, which is not using
the NVidia or ATI fglrx proprietary drivers, and which is not an onboard
video chipset that shares main memory with the CPU.
A network or Internet connection (not strictly needed, but very useful
for updates and for communicating with the EMC community).
当然,这里还是给出了一个推荐的配置。虽然这不一定是最合适的,但它在大多数情
况下可以获得相当不错的性能。
700 MHz x86 处理器 (1.2 GHz x86 更佳).
384 MB 内存 (512 MB --- 1 GB 更佳).
4 GB 硬盘空间.
显卡分辨率最低800*600,不要使用 NVidia 或者 ATI fglrx 这样专有的驱动程序,
也不要使用集成显卡,因为它们会和CPU抢内存用。
有网络,能上Internet最好,这样可以方便升级,也利于及时从社区里面查找相关
的技术信息。
1.2 不推荐的配置
1.2.1 Laptops
Laptops are not generally suited to real time software step generation.
Again a Latency Test run for an extended time will give you the info you
need to determine suitability.
1.2.2 Video Cards
If your installation pops up with 800 x 600 screen resolution then most
likely Ubuntu does not recognize your video card or monitor. Onboard video
many times causes bad real time performance.
笔记本一般不适于运行EMC2,当然具体能不能用还是取决于Latency Test。
如果系统安装后,显示器分辨率是800*600,那多半是Ubuntu没能识别你的显卡或显示
器。再说一遍,集成显卡通常不适合用于EMC2这样的实时系统。
第 2 章 关于EMC
2.1 是什么和不是什么
EMC (the Enhanced Machine Control) is a software system for computer
control of machine tools such as milling machines and lathes.
EMC is free software with open source code. Current versions of EMC are
entirely licensed under the GNU General Public License and Lesser GNU
General Public License (GPL and LGPL)
EMC provides:
– a graphical user interface (actually several interfaces to chose from)
– an interpreter for 'G-code' (the RS-274 machine tool programming language)
– a realtime motion planning system with look-ahead
– operation of low-level machine electronics such as sensors and motor drives
– an easy to use 'breadboard' layer for quickly creating a unique
configuration for your machine
– a software PLC programmable with ladder diagrams
– easy installation with a Live-CD
It does not provide drawing (CAD - Computer Aided Design) or G-code
generation from the drawing (CAM - Computer Automated Manufacturing) functions.
It can simultaneously move up to 9 axes and supports a variety of interfaces.
The control can operate true servos (analog or PWM) with the feedback loop
closed by the EMC software at the computer, or open loop with 'step-servos'
or stepper motors.
Motion control features include: cutter radius and length compensation, path
deviation limited to a specified tolerance, lathe threading,