开源数控EMC2入门手册
作者:dennis丁雷 翻译        

前言:EMC2软件,现在改名Linuxcnc,香橙派和狗板都可以使用。

免责声明

   本文作者坚决不对任何读者因使用本文而导致的任何财产损失或者身体伤害承担任何责任。

LinuxCNC控制CNC机器。它可以驱动铣床,车床,3D打印机,激光切割机,等离子切割机,机械臂,六脚架等。

在Linux下运行(可选,带有实时扩展)。

在Debian和Ubuntu上简单安装,或通过我们的Live / Install DVD / USB映像安装。

接受G代码输入,以响应方式驱动CNC机床。

提供了几种不同的GUI。

支持刚性攻丝,刀具补偿和许多其他高级控制功能。


目录
第 1 章  计算机配置

1.1  最小配置

700 MHz x86 处理器 (1.2 GHz x86 更佳).

384 MB 内存 (512 MB — 1 GB 更佳).

4 GB 硬盘空间.

显卡分辨率最低800*600,不要使用 NVidia 或者 ATI fglrx 这样专有的驱动程序,也不要使用集成显卡,因为它们会和CPU抢内存用。

1.2 不推荐的配置

笔记本一般不适于运行EMC2,集成显卡通常不适合用于EMC2这样的实时系统。

第 2 章  关于EMC

EMC特点:
    – 提供几种不同的用户界面供选择使用
    – G代码解释器(基于RS-274机床编程语言)
    – 带预处理功能的实时运动规划系统
    – 可直接操作底层的机床电器如传感器、电机驱动器等
    – 易于使用的“面包板层”(”breadboard” layer),使您像使用“面包板”做电路实验一样很容易的创建适合您机器的独有配置文件
    – 可用梯形图编程操作的PLC软件(指ClassicLadder)
    – 所有这些都集成到一张Live-CD上面,易于安装。

不提供CAD和CAM功能,不能画图,也不能从图直接导出G-Code。

9轴联动,支持不同接口。可以实现闭环运动控制,也可以使用开环控制。能够控制模拟或PWM接口的伺服电机。

运动控制特点:刀具半径和长度补偿、路径偏差可限制在给定的误差范围内、车床车 螺纹、多轴联动、自适应进给速度、手动进给覆盖(operator feed override)、恒 速控制。

通过调整运动学模块的参数,可以提供对非笛卡尔运动系统的支持。EMC2支持的其他架构包括:六足系统(Stewart或类似的机器人平台)、带旋转关节的系统(通常为PUMA或SCARA机器人提供运动支持)。

EMC运行在使用实时扩展模块(RTAI或者RTLinux)的Linux操作系统中。

第 1 章  前言 Foreword

第 2 章  EMC2 The Enhanced Machine Control

  2.1  关于本手册

  2.2  EMC2如何工作

    可不敢把EMC2想象成另外一个CNC数控加工程序,它能做的可多了。它可以控制机床、机器人、自动化设备,还能控制伺服电机、步进电机、继电器以及其它机床电器。

    EMC2由四个主要部分:运动控制器、离散IO控制器、任务执行器(用来协调这四个部件)、图形用户界面。

另外还有一个硬件抽象层HAL(Hardware Abstraction Layer),有了HAL,无需重新编译EMC2,就可以按照实际需要配置EMC2的硬件。

PC机上运行着Linux操作系统和EMC2程序,控制信号则从打印口(并口)传送到电机驱动器上,电机驱动器根据控制信号驱动步进电机(当然EMC2也可以通过伺服接口卡或使用与扩展并口相连的外部控制卡来控制伺服电机)。

我们接下来会介绍EMC2系统的每一个组成部分,在介绍的过程中可能会反复提到这幅图片。

  2.3  用户接口

    用户接口是EMC2的一部分,机床操作员与这个接口交互从而达到操作机床的目的。EMC2提供了几种不同的用

户接口供用户选择使用:

    AXIS 界面:是一个基于“OpenGL”的图形用户界面,有一个交互式的G代码预览器。AXIS界面目前仍然处于持续开发升级的过程中。

    Keystick界面:是一个基于字符的界面,没有图形,只不过字符排列有规律,看起来像图形一样。只能用键盘操作。如果目标系统没有X server,还想使用EMC2的话,就只能用这个将就了。

    Xemc界面:一个X Windows的图形用户界面。

    TkEMC界面和Mini界面:两个基于“Tcl/Tk”的图形用户界面。

    halui用户接口:基于HAL的用户接口,允许使用开关、旋钮控制EMC2系统。

    emcrsh用户接口:基于telnet的用户接口,允许用远程计算机发来的命令控制EMC2系统。

2.4  语言

    EMC2使用翻译文件把用户接口翻译成多种语言。你只需用你想使用的语言登录进操作系统,然后当你启动EMC2时,你看到的界面就已经采用你想使用的语言了。如果你想使用的语言还没有被翻译,而你恰好想帮忙翻译,可以通过“IRC”或邮件列表的方式与开发人员取得联系。

2.5  像机床操作员一样思考

2.6  操作方式 Modes of Operation

    当一个EMC2系统运行时,输入命令的方式主要有三种:手动、自动、MDI。在这三种方式下,EMC2 的行为表现差异很大。有些事情在一种方式下可以,在另一种方式下却不可以。比如在手动方式时,操作员可以原点复归某个轴,但在自动和MDI方式下却不行。又比如在自动方式下,操作员可以执行一个全部是G代码的文件,但在手

动和MDI方式下却不行。

 在手动方式下,每个命令是分开输入的,用人类的语言讲,这些命令类似于“开启冷却”或者“在X轴上每分钟前进25英寸”等等,它们大致相当于拨动一个开关或者转动某个轴上的手轮,具体操作则是在某个图形用户界面上用鼠标点击某个按钮或按住键盘上的某个按键完成的。在自动方式下,点击一个按钮就可以装载或启动预先

存储在某个文件里面的全部G代码程序。在MDI方式下,操作员可以键入一批代码,然后按回车键命令机床执行。

    AXIS用户界面有一个特点,就是它隐藏了一些如上所述的三种操作方式的区别。它在大部分情况下都能提供自动命令,从而隐藏了自动方式和其它两种方式的区别;它也淡化了手动方式和MDI方式的区别,像“Touch Off”这种手动命令也可以通过发送MDI命令来执行。在用户提出请求时,它会自动切换到相应的操作方式,从而实现这种隐藏,而用户在感觉上没有什么异常。

第 3 章  用户概念 User Concepts

    本章包含重要的用户概念,在使用G代码运行一个CNC机床之前,应当理解本章的概念。

3.1  轨迹控制 Trajectory Control

3.1.1  轨迹规划 Trajectory Planning

    轨迹规划是指EMC2跟踪G代码所指定路径的方法,轨迹规划时不能超出机床工作台的运行范围。从某种程度讲,G代码程序永远不能被机床严格执行。就比如下面这一行程序:

   G1 X1 F10 (G1 表示线性移动, X1 是目的位置, F10 代表速度)

   事实上,这个动作不可能完全以F10的速度完成,因为机床必须从静止开始加速,向 X=1的位置进发,在要到达目标位置之前还要减速最后停止。这样就只有部分运动是以F10完成的,如果路程比较短,可能 F10这个速度根本就不会达到。在“G64 Pn”的方式下,如果不指定“ naive cam detector”参数即“Q-”参数,则采用短运动段会让机床运行变慢,采用长运动段可以让机床运行的快一点。

    机床加速性能和减速性能取决于机床本身,经实验确定以后,作为机床的特性固定下来,没什么要讨论的。

另外机床最大速度也是机床的一个特性。这些特性参数都保存在INI文件中,轨迹规划器必须遵守这些特性。

3.1.2  路径跟随 Path Following

    路径跟随的问题要稍微简单一些。当你用 G代码设计的产品有个棱角的时候,轨迹规划器有几种不同的轨迹规划方式处理这个棱角:比如可以减速并停在棱角所处的坐标位置,然后再按照新的方向加速并离开棱角;它还可以采用混合模式(blending):在通过棱角时保持进给速度,由于机床特性方面的限制,这样做的结果必然在

棱角处产生一个圆角。因此在棱角处的路径跟随就存在这样一种情况:要获得更好的路径跟随效果就必须减速,要保持速度,就必然导致差一点的路径跟随效果。具体如何抉择,要由程序员根据具体产品、材料、刀具等情况权衡而定。

    快速加工也遵循当前采用的轨迹控制方式。比如采用 G64方式,不指定误差条件,且加速度较低时,让机床运行足够长的距离并达到最大速度,就可以得到非常好的圆角效果。

3.1.3  编程确定轨迹规划方式 Programming the Planner

    轨迹控制命令如下:

    G61:准确路径方式。准确跟踪编程位置,如果到下一个编程位置需要改变方向,则机床会完全停止再改变方向。

    G61.1:准确定位方式。在每一个程序段结束时,机床都会停止到相应的编程位置。(无论下一个运动的方向是否需要改变)

    G64:不附加误差条件的混合方式。这个方式也是启动EMC2时默认的方式。G64只是混合方式,没有采用“naive cam detector”功能。“G64”和“G64 P0”是一样的效果,都是告诉轨迹规划器牺牲路径跟随的精度,保证提升进给速度。有时候程序设计人员就想要一个圆角,那么这个模式就用的上了,当然设计人员要清楚采用这种方式加工出的圆角可能和设计值有一定偏差,曲率会大一点。当使用“G0 G64”组合进行快速加工时,要根据机床的加速度性能预留足够的加速空间以保证切削效果。

    G64 P- Q- :附加误差条件的混合方式。其中“Q-”参数将打开“naive cam detector”功能,“P-”参数指定误差条件。程序代码“ G64 P0.05”指示轨迹规划器采用连续加工方式(即混合方式blending),但要在棱角处降速以确保轨迹误差不大于0.05个用户单位(英寸或毫米)。具体降速的程度取决于待加工产品的几何尺寸以及机床特性,但这些算法都不需要程序员考虑,程序员只需要考虑他想要多少误差就行了。这种方式给了程序员很大的轨迹跟随控制力,在程序中,他可以随时改变这个误差值来获得他想要的任何效果。要注意的是“G64 P0”和“G64”是一样效果,它只是为了和旧G代码程序保持兼容而设计的。参考 G代码相关的章节可以获得更多关于“G64 P- Q-”的信息。

    不附加误差条件的混合方式(两个原则):一是实际轨迹的控制点至少要经过每个设计轨迹运行段中的至少一个点;二是机床不会加速到一个它想停都停不下来的速度(当轨迹规划器觉得按照当前的机床特性和当前的速度以及当前位置与运动终点的距离计算,它没办法在运动终点停止,它就会停止加速或者开始减速)。所以要保持最佳的轮廓进给速度,就应当在终点以前留足够的距离供机床加速和减速用。

    Naive Cam Detector:在连续的运动之间,当后面的G1直线运动代码坐标只含XYZ轴时,如果该运动偏离上一运动直线的值小于“Q-”参数,则该运动合并到上一运动的直线中。这样做的目的是要把误差混合掉。

    在连续的运动之间,实际经过的控制点和理论(程序)上的端点之间不能有大于“P-”参数的误差。实际轨迹的控制点至少要经过每个设计轨迹运行段中的至少一个点,机床不会加速到一个它想停都停不下来的速度(当轨迹规划器觉得按照当前的机床特性和当前的速度以及当前位置与运动终点的距离计算,它没办法在运动终点停止,它就会停止加速或者开始减速)(以混合方式开始运行后,即使暂停了机床的运行,那么再启动后仍然遵循这些原则,只不过运动终点可能会重新计算了)。

    在G17(XY)平面上做G2、G3圆弧运动时,如果圆弧偏离运动方向的偏离值小于Q-参数,该圆弧将由两个直线运动(起点到圆弧中点、圆弧中点到圆弧终点)代替,而这两个直线运动也适用“naive cam detector”算法。这样一来,直线转圆弧、圆弧转圆弧、圆弧转直线运动都可能被化解为直线转直线运动,也就都能享受

“naive cam detector”算法的好处,简化了路径,提高了轮廓加工的性能。

    下图中(参见英文原版图片,实则是上下两个图),蓝线代表程序设定的机床速度,红线代表机床的加速

能力,每张图最下面的水平线代表规划的运动路线(可以看出上图的规划路线分成了几段,由不同颜色区分)。

上图显示的情况是:在小运动段的情况下,为了能在每个运动段的终点停下来,轨迹规划器会根据机床加速度参数的限制情况给机床减速直至停止;下图显示的是采用“Naive Cam Detector”算法的效果,重组了运动并较好的保持了期望速度。

3.1.4  规划“移动”(最小运动段距离计算)    Planning Moves

    用某个机床切削某种物质时,要确保一次移动足够长的距离。理由仍然是“机床不会加速到一个它想停都停不下来的速度”。在给定加速度的情况下,要达到某个速度,可以算出一个必须满足的最小移动距离。

    INI文件中有一个参数叫“MAX_ACCELERATION”,加速阶段和减速阶段各分一半“MAX_ACCELERATION”。在混合模式情况下,加速阶段使用全部的“MAX_ACCELERATION”,其它情况下机床实际的加速性能要比ini文件里面的“MAX_ACCELERATION”小一些。

    要保持进给速度,运动段的长度必须大于机床加速到该速度并重新停止所需要的路程。设:

    A = 1/2*MAX_ACCELERATION

    F为需要达到的速度,单位是 units每秒(“units per second”),units是英寸或毫米。

    则加速时间 ta = F/A ,加速距离是 da = 1/2*F*ta ,减速时间和距离同加速时间和距离相同,则总距离为:

    d = da + dd = 2 * da = F * F / A

    例如,进给速度是1英寸每秒,加速度是10英寸每平方秒,则最小距离为1*1/10=0.1英寸。同样加速度如果加速到0.5英寸每秒,则最小距离为0.5*0.5/10=0.25英寸。

3.2  G代码

3.2.1  默认配置

    EMC2启动时,一些G代码和M代码会默认启动。在“AXIS”界面的MDI页的“Active G-Codes:”窗口里可以看到这些默认启动的代码。这些代码定义了EMC2的默认行为,在运行EMC2之前理解它们的含义非常重要。在执行G代码文件时,可以在G代码文件中改变这些默认设置,从而改变EMC2的行为。在进行具体的加工工作时,要在相应的G代码文件中设定你想要的任何默认设置,不要指望EMC2默认启动的设置(它们随时可能会变的)。

在15.2节的“G代码快速参考”非常有用,打印一份在手边以备随时参考。

3.2.2  进给速度 Feed Rate

    进给速度的确定和相关轴是否是旋转轴有关。如果你的系统是一个车床或者有一个旋转轴,一定要阅读一下9.2.5节的内容。

3.2.3  刀具半径补偿

    刀具半径补偿(G41、G42)以后,刀具要能够沿着编程的运动路线运动而不会干涉到两边相邻的运动路线,如果用当前的刀具半径不能满足这个条件,可能会产生一个错误。尝试用小一点半径的刀具走相同的路线可能会消除这个错误。同样道理,如果一个刀具走某个路线没有错误,那么用比它细一些的刀具肯定也不会有错误。

关于刀具补偿的信息还可参见11.3节。

3.3  原点复归 Homing

    启动EMC2以后,要想运行程序或MDI命令,还必须先给每个轴执行原点复归操作。要避免这样做,或者要使用Mini界面,可以在ini文件的“TRAJ”参数段设置“NO_FORCE_HOMING = 1”达到目的。关于原点复归的详细信息参见综合手册“Integrators Manual”。

3.4  刀具更换 Tool Changes

    有几个关于手动换刀的选项。关于它们的配置信息请参考综合手册“Integrators Manual”中“EMCIO”部分。同时也参考一下本手册的G28和G30部分。

3.5  坐标系统

    刚开始学EMC2时可能会觉得坐标系统有点难学。但是在实际运行一个机床以前,还是必须先搞清楚EMC2使用的坐标系统的一些基本概念。关于EMC2坐标系统更深的知识在本手册第 10 章可以找到。

3.5.1  G53 机床坐标系统

    当你执行EMC2原点复归命令时,就相当于设定了G53机床坐标系统各个轴的原点。

    原点复归操作不改变其它坐标系统或刀具补偿的设置。

    只有你在代码行里面指定G53代码,你才在G53机床坐标系里移动。其它情况下你处在G54坐标系里面。

3.5.2  G54—G59.3 用户坐标系统

    通常情况下你会使用G54坐标系统。当对一个用户坐标系统设置了偏移并且DRO页面里轴坐标显示格式是“ Position: Relative Actual”时,一个被线穿过的小的蓝色球将出现在机床原点位置。如果你的偏移是临时的,可以用“Machine->Zero Coordinate System”菜单命令删除偏移,也可以在程序尾部用“G10 L2 P1 X0 Y0 Z0”代码删除偏移。“P”后面的数字是想要删除偏移的用户坐标系统编号。

    EMC2关闭时,保存在用户坐标系统的偏移值不会丢失。

    在AXIS用户界面中使用“Touch Off”按钮为选定的用户坐标系统设置偏移值。

3.5.3  失位后怎么办
    当你认为回到了机床原点,但DRO页面的坐标值却没有显示0,0,0时,可能是由于编程设置了一些偏移导致的。现在需要移除它们:

    要移动到机床原点,使用  G53 G0 X0 Y0 Z0

    用下面命令清除任何G92偏移G92.1

    用下面命令启用G54坐标系统 G54

    用下面命令设置G54坐标系统为和机床坐标系统一样的坐标系统 G10 L2 P1 X0 Y0 Z0

    用下面命令关闭刀具补偿G49

    从菜单打开相对坐标显示

    现在你应该在机床原点X0 Y0 Z0了,相对坐标系也和机床坐标系一致了。

第 4 章  安装EMC2

图5–光盘启动5.gif

如果你看到了这个界面,那么恭喜你,前面的工作一切顺利,你已经和EMC2握手寒暄了。


第 6 章  EMC2配置过程

6.1  Latency Test

    延迟测试(Latency Test)可以判断你的计算机CPU对请求响应速度的快慢程度。当一台CNC机床运行时,有些硬件可能会中断CPU的运行,从而导致丢步的情况发生,所以,计算CPU的实际响应时间就尤为重要。因此第一件要做的事情就是按照7.2.1节的介绍执行延迟测试。

6.2  Sherline机床
6.3  Xylotex电机驱动

    EMC2显然也有一些合作伙伴,Sherline和Xylotex应该就属于这一类的吧,所以这两家的产品自然被EMC2支持的完善一些。Sherline的机床直接有预定义的配置,只要启动EMC2时选择一下就可以直接使用了,根本无需配置。Xylotex电机驱动,虽然也要配置一下,但并不需要收集信息什么的,在配置向导stepconf里面就可

以直接快速配置了。(译者注:如果不是EMC2的合作伙伴,那就只能按6.4、6.5、6.6逐步收集信息,再运行配置向导一步一步的生成配置了)

6.4  机床信息

    收集机床所使用的各个轴(电机或电机驱动)的信息(单位是纳秒)。这些信息应该可以由电机或电机驱动的供应商提供。在配置向导里有一些预设的类型可供选择,注意Gecko驱动是新型号的,和老型号的参数不再一样,不要搞混了。Wiki网//wiki.linuxcnc.org里面有一些补充的品牌或类型可以参考一下。

6.5  引脚信息

    收集机床和PC计算机并口的连接信息,确定并口各引脚的功能。注意不用的引脚要设成“Unused”。如果需要,这些设置都可以用配置向导随时修改。 

6.6  机械信息

    收集机械传动过程中相关的传动比信息。这些信息最终会被换算成单位长度所需的步进脉冲数保存到.ini文件的SCALE项里面,供EMC2使用。

    Steps per revolution:电机转一圈需要发出的脉冲数量

    Micro steps:电机转一步需要发出的脉冲数量

    Motor & Leadscrew Teeth:电机齿轮齿数和丝杠齿轮齿数之比

    Leadscrew pitch:工作台移动单位长度需要的丝杠转动圈数。如果是英制,就是工作台移动一英寸丝杠转的圈数;如果是公制,就是丝杠转一圈工作台移动多少毫米。
   

6.7  配置向导

Run the Stepconf Wizard in chapter (7)

    现在可以根据第 7 章的内容运行配置向导了(Stepconf Wizard)。

6.8  修改配置

    配置向导可以新建一个新的配置,也可以修改一个旧的配置。启动配置向导(Stepconf Wizard)以后,选择“Modify aconfiguration…”,然后就可以挑一个旧的配置文件(.stepconf后缀的文件)进行修改了。文件的头部可以告诉你这个文件是否允许手工修改。

第 7 章  配置向导(Stepconf Wizard)

    配置向导(Stepconf Wizard)只是EMC2的一个比较基本的配置功能。EMC2可以通过许多不同的硬件接口控制许多不同类型的机器设备。当机器设备使用并口和PC机连接,且可以用“脉冲信号+方向信号”控制时,使用Stepconf Wizard生成配置文件是最好的选择。Stepconf Wizard在安装EMC2时被自动安装了,可以在CNC

菜单中找到。

    Stepconf Wizard 会在 emc2/config文件夹下放置一个文件存储你在运行向导过程中创建或选择的各种配置信息,文件的后缀是.stepconf,记住这个文件的名字,以后修改时可以找到它。

    Stepconf Wizard需要至少800*600的屏幕分辨率,否则底部的按钮可能会看不到。(译者注:如果用虚拟机,可能要1024*768才行)

7.1  Entry Page(入口页、功能选择页面)

    Create New :创建一个新的配置。

    Modify :修改一个旧的配置。选择此项后,接下来的页面就是一个文件选择页面(如果是新建一个配置,就不会出现这个文件选择页面),在此页面,你可以选择要修改的配置文件(.stepconf后缀)。(译者注:配置向导在新建配置时,除了在emc2/config文件夹下放置一个.stepconf后缀的文件以外,还在该文件夹下新建了一个文件夹my-mill,里面有六个文件custom.hal,custom_postgui.hal,my-mill.hal,my-mill.ini,README,tool.tbl,“my-mill”是Stepconf Wizard默认的一个名字,你可以在向导中修改成你喜欢的名字)。选择Modify功能后所做的修改将覆盖到my-mill.hal 和 my-mill.ini文件中,“覆盖”意味着如果你曾用其它编辑工具(如vim)对这两个文件做了手动修改,那么经过使用Stepconf Wizard的Modify功能后,这些修改都会丢失。而custom.hal 和 custom_postgui.hal则不会受到影响,Stepconf Wizard的Modify功能对它们不起作用。

    Create Desktop Shortcut :为my-mill文件夹创建一个桌面快捷方式。

    Create Desktop Launcher :为启动包含my-mill相关配置的EMC2应用程序创建一个快捷方式。

7.2  基本信息

    Machine Name :机床名称。只能用“大小写英文字母、数字、-、_ ”组成。
   
    Axis Configuration :轴配置。只能是XYZ (Mill), XYZA (4-axis mill) or XZ (Lathe)三者之一。

    Machine Units :机床尺寸单位,英制或公制。该向导后面的参数设置将根据这个选项的值做相应调整。

    Driver Type :电机驱动器类型。如果在下拉列表框中能找到你的电机驱动器型号,就选择它,接下来的四个时间参数也就不用填了。否则,你要从电机驱动器的参数表里面找到这四个时间参数,还要注意把所有的时间参数都换算成纳秒。http://wiki.linuxcnc.org网站上也能找到一些常用电机驱动器的时间参数。另外,有些信号条件或隔离条件也会影响这些时间参数(比如分线板、转接板上面的光耦、RC滤波电路),必要的话,对时间参数进行微调来适应这些电机驱动器以外的影响因素。比如:EMC2对Sherline机床预设的配置里面就涵盖了对这些因素的考虑。

    Step Time :步进脉冲的宽度,t3,纳秒

    Step Space :步进脉冲之间的宽度,t4,纳秒

    Direction Hold :电机方向切换后保持的时间,这个时间以后才能发步进脉冲,t7,纳秒

    Direction Setup :步进脉冲发完后,应保持这个时间,然后才能切换方向,t6,纳秒

    (以上四个项目参见图6 步进脉冲时间参数6)(如果需要此图,请留个E-mail,我会给你发过去)

    First Parport :通常保持默认的0X378就可以了

    Second Parport :并口2、并口3。如果你想使用更多的并口,就填写它们的地址,选择它们的类型。关于附加并口的更多信息参见Integrators Manual。

    Base Period Maximum Jitter :Latency Test的测试结果就用到这里。在这个页面里有一个”Test Base
Period Jitter”按钮,可以直接启动Latency Test,详细信息参见7.2.1节。

   Max Step Rate :向导会根据录入的参数自己计算,无需干预。

  Min Base Period :向导会根据录入的参数自己计算,无需干预。

    Onscreen Prompt For Tool Change :如果选中这个选项,EMC2在遇到M6指令时,会暂停并提醒你换刀。
除非你想通过修改custom.hal文件实现自动换刀操作,否则应当选中这个选项。

7.2.1  延迟测试(Latency Test)
    延迟测试时,你应当尽量骚扰计算机:移动窗口、网上冲浪、拷贝大文件、听音乐、运行类似glxgears的3D软件等等,总之就是要测出最严酷情况下的时间参数。

    不要在延迟测试时运行EMC2 。延迟测试至少要运行几分钟,时间越长效果越好。这是针对计算机的测试,所以不需要把其它的硬件接到计算机上。

    “延迟”是指PC机需要多长时间才能停下它正在做的事情,转而响应一个外部的请求。延迟测试时,请求就是一个周期性的心跳,每一跳都是一个步进脉冲的时序参考点。延迟时间越短,心跳就可以越快,也就意味着步进脉冲可以更快更平稳。

    “延迟”是最后综合的结果,比CPU的速度更重要。因为CPU不是决定“延迟”的唯一因素,主板、显卡、USB接口等等好多因素都影响着“延迟”。

    在延迟测试界面上,最重要的是“max jitter”对应“Base Thread”的那个数字,记下这个数字并把它填到“Base Period Maximum Jitter”那个编辑框里面。

    如果 Max Jitter小于15000-20000纳秒,那么EMC2会运行的相当好。如果这个值在35000-50000之间,也还不错,但是“maximum step rate”这个参数可能有些难看,尤其是你使用微步脉冲或者你使用一个细牙丝杠的时候。如果这个值超过了100 微秒,那么这个计算机已经不建议使用了。如果超过了1毫秒,那么无论什么情况,都不应当使用这台计算机跑EMC2了。

7.3  并口配置

    EMC2的并口有17个引脚可用。对Stepconf Wizard来说,是12个输出引脚+5个输入引脚(当然还有其它的并口组合可用,不过不在Stepconf Wizard讨论范围之内)。在这个页面你能做的是为每个引脚选择功能(输出引脚有23种功能可选,输入引脚有 40种功能可选,具体选哪个要参考你要和并口连接的硬件了)。如果信号电平是反的(0V代表true/active,而5V代表false/inactive),那就要把该引脚的“invert”选项勾上。

    Output pinout presets :Sherline机床和Xylotex驱动的并口顺序都是固定的,所以EMC2在这个页面为它们准备了两个快捷键,可以自动设置第 2-9 脚。

    Inputs and Outputs :不用的输入引脚或输出引脚都要设成“Unused”。

    External E Stop : 外部急停开关,要设在某一个输入引脚上。典型的急停开关回路应使用常闭触点实现。

    Homing & Limit Switches :原点和限位开关,要设在某一个输入引脚上。

    Charge Pump : 电荷泵,有的驱动板需要一个电荷泵信号输入。这时可以选一个输出引脚把它设成电荷泵功能,再把该引脚接到驱动板的电荷泵输入端就可以了。Stepconf会把电荷泵输出和base thread关联起来,电荷泵输出的频率将是“maximum step rate”(参见7.2节)的一半。

7.4  轴配置(进给轴配置)

    Motor Steps Per Revolution :电机转一圈需要的脉冲数。如果是步进电机而且你知道电机的步距角也可以自己算脉冲数,用360除以步距角就可以得到脉冲数。

    Driver Microstepping :驱动器细分数,如果是 2 细分,此处就填 2 。(针对步进电机而言)

    Pulley Ratio :传动比。如果用皮带轮连接电机和丝杠,就在此处天上传动比,如果电机直接驱动

丝杠,就填1:1 。(如果传动关系更复杂,就得好好算一算了,总之要的是电机和丝杠之间的传动比)

    Leadscrew Pitch :丝杠和工作台之间的传动比。(注意英制inch和公制mm的不同)如果你选的是inch为单位,此处应填工作台每走 1 英寸丝杠转的圈数(比如填 8 就表示8TPI(Turns Per Inch))。多头丝杠也是一样,只不过要自己换算一下。如果你选的是mm为单位,此处应填丝杠每转一圈工作台走的毫米数(比如填 2 就表示2mm/rev)(单头丝杠就是螺距,多头丝杠就是导程)。如果你在测试这个轴时,发现工作台走的方向反了,那么有两个办法可以纠正过来。一是可以在此处输入一个负数,二是可以把并口相关的方向引脚的配置启用“invert”选项(参见7.3节)。

    Maximum Velocity :最大转速。单位:inch/s 或 mm/s 。

    Maximum Acceleration :最大加速度。和最大转速一样,这两个参数都只能通过实验的方法获得,参见7.4.1节。

    Home Location :原点的位置,就是在该轴上执行原点复归操作后工作台在该轴所处的位置。没有原点开关时,需要机床操作员把工作台手动移到某个位置,然后按“Home”按钮确定原点。如果你组合使用原点和限位开关功能,你必须让原点位置和原点开关位置不同,否则会出现“joint limit”错误。


    Table Travel :工作台行程。不允许G代码超过这里规定的行程。原点位置也必须在这个行程范围内。尤其注意,把原点位置刚好设在工作台行程的某一端也是不对的。

    Home Switch Location :原点开关的位置。原点复归操作经过这个位置时,将产生压下、释放原点开关的动作。注意,只有在并口配置页面里面选择了相应轴的原点开关选项时,本参数和以下的两个参数才会出现,否则它们是灰的,不可用。如果你组合使用原点和限位开关功能,你必须让原点位置和原点开关位置不同,否则会出现“joint limit”错误。

    Home Search Velocity : 原点复归速度。原点复归操作时,工作台向原点开关运行时的速度。如果原点开关距离行程终点很近,就应当设定一个适当的复归速度,使工作台可以减速停止,以免超出行程。即使原点开关距离行程终点有一段距离,但如果不能保证原点开关从被压下时起一直到行程终点都处于压下状态,也应当设定一个适当的复归速度,使工作台可以减速停止,而且要确保原点开关不在工作台运行方向上被释放,还要确保每一次原点复归操作都是从原点开关的同一侧开始的。如果原点复归操作时,工作台运行的方向反了,把这个原点复归速度设成负数即可解决问题。

    Home Latch Direction :最终确定原点的方式。工作台压下原点开关以后,如果选“Same”,则工作台会退回一点,重新以一个非常慢的速度再次接近原点开关,原点开关再次闭合时,工作台停止,原点确定;如果选“Opposite”,则工作台非常慢的退回,原点开关释放时,工作台停止,原点确定。

    加速时间、加速距离、最大速度对应脉冲频率、单位长度脉冲数量(Axis SCALE):这几个参数都是EMC2利用你输入的参数自动计算出来的。EMC2控制的几个轴的“最大速度对应脉冲频率”可能不一样,其中最大的那个决定了EMC2的基准周期(BASE_PERIOD),这个值不能太大,大于20000Hz时可能使计算机变慢甚至死机(当然这最终取决于你计算机的能力)。“单位长度脉冲数量”被用在“ ini”文件里面,被赋值给一个叫做“SCALE”的参数。

    测试轴:是个按钮。填写完所有参数后,按这个钮将打开一个窗口,可以对这个轴做一些测试。

7.4.1  测试轴

    提供这个功能主要是方便尝试不同的速度和加速度的值。

7.4.1.1  找到最大速度

   先设一个低一点的加速度Acceleration(例如:2in/s^2 或 50mm/s^2),把速度 velocity设成你想要的速度,使用“jog”按钮把工作台移到该轴行程的中间位置。一定小心:加速度低,工作台从减速到停止走过的距离可能超出你的想象。

    根据量程,在“Test Area”里面输入一个安全的测试范围,要考虑到电机失速以后再次启动,运动方向可能是不可预料的。然后按“Run”按钮,工作台就开始沿着该轴往复运动。

    确保工作台能在测试范围里达到设定速度并巡航一段距离(巡航距离越长,测试结果越正确)是非常重要的。可以使用公式(d=0.5*v*v/a,a是设定的加速度,v是设定的速度)求出最小测试范围,在此基础上再尽可能加大测试范围。

    如果方便而且能保证安全,可以在工作台运行时反方向推工作台来模拟切削力,使实验更加接近实用。

    如果机床失速了,就把速度降一点,重新开始实验。

    测试一段时间后,如果机床没有明显的失速,可以再次按“Run”按钮(这次是使它弹起来)结束测试。

此时工作台应当回到它开始实验的位置,如果回不到这个位置,说明工作台在实验过程中失速或丢步了。应当把速度降一点,重新开始实验。

    如果不论速度怎么低,还是发生不移动、失速、丢步等现象,应当检查以下几个方面的因素:

步进脉冲波形、时序是否正确。

引脚配置是否正确,是否应当使用“Invert”选项。

电缆连接及屏蔽是否正确。

是否有机械方面的故障如电机、传动副、丝杠等等。

    如果你找到了一个最大速度,在该速度下测试时没有发生失速或丢步现象,把该速度降低10%作为该轴的最大运行速度(Maximum Velocity)即可。

7.4.1.2  找到最大加速度

    固定使用上一步找到的最大运行速度( Maximum Velocity),输入不同的加速度进行测试,测试步骤和上一步相同。测试中仍然要确保工作台能在测试范围里达到设定速度并巡航一段距离。如果你找到了一个最大加速度,在该加速度下测试时没有发生失速或丢步现象,把该加速度降低10%作为该轴的最大加速度(Maximum Acceleration)即可。

7.5  主轴配置 Spindle Configuration

    该页面并非总是出现,出现的条件是:在并口配置页面里,为某个输出引脚配置了“Spindle PWM”功能。

7.5.0.1  主轴速度控制

    当“Spindle PWM”功能被配置给并口的某个输出引脚时,要给以下参数赋值:

    PWM Rate :PWM频率。此处填写要发送给主轴的PWM信号的载波频率。如果填0,就是PDM模式,用于产生模拟控制电压。从主轴控制器的手册里可以查到这个值。

    Speed 1 and 2, PWM 1 and 2 :这四个参数用于确定“PWM数值与转速RPM数值”之间的线性比例关系,它们将被保存到配置向导产生的配置文件中。如果知道,就直接填写,如果不知道,按7.5.1的办法确定。

7.5.0.2  主轴同步运动(车床车螺纹)

    如果把主轴编码器的相关信号接到并口上,EMC2就可以支持“车螺纹”的功能。这些“相关信号”包括:

    Spindle Index :主轴每转一圈,会发出一个“Spindle Index”脉冲信号。

    Spindle Phase A :当主轴旋转经过多个等分的位置时,每经过一个位置,会发出一个“Spindle Phase A”脉冲信号。

    Spindle Phase B :(可选)这是伴随“Spindle Phase A ”脉冲的第 2 个脉冲信号,但是和“Spindle Phase A ”的位置有一个偏移。同时使用A、B两个脉冲信号的好处是可以增加抗干扰的能力以及提高分辨率。

    如果“Spindle Phase A”和“Spindle Index”在一个配置里面同时出现在并口的输出引脚上,则应当给下面的参数赋值:

    Cycles per revolution :主轴每转一圈发出的“Spindle Phase A”脉冲的数量。

7.5.1  标定主轴转速 Determining Spindle Calibration

在主轴配置页面输入如下的参数值:
               Speed 1: 0     

         PWM 1: 0
             Speed 2: 1000  

         PWM 2: 1 (译者注:此处原文有误。)
    完成配置向导的其他部分 。然后用刚刚完成的配置启动EMC2,把急停开关松开(如果是按下状态的话),按下“machine power”按钮启动机床。切换到“MDI”页(启动时一般处于“Manual Control”

页),输入“M3 S100”命令使主轴旋转。然后改变主轴速度,例如再输入“M3 S800”命令使主轴旋转,

S-number命令的number取值范围:1 到1000 。

    对刚才的两个主轴转速,都要想办法测出主轴的实际转速,把两个S-number和两个实际转速记录下来。重新启动配置向导Stepconf,再次进入主轴配置页面,把两个Speed依次填入,把对应的两个S-number除以1000以后填入对应PWM里面。至此完成主轴转速的标定。

    因为多数主轴响应曲线的线性都不太好,最好按如下原则选择这两个标定主轴的转速:

它们不应当靠的太近(转速不应相差太小)。

它们都应当在你常用转速的范围内。

    举例:如果你的主轴转速范围是0 到8000 RPM ,但你常用的转速范围是400 到 4000 RPM,那么建

议采用1600 RPM 和 2800 RPM 做两个标定主轴的转速。

7.6  高级配置选项

    Include Halui :选中此项将在配置里增加“Halui用户界面”组件。详细信息参见“Integrators”手册。

    Include pyVCP :选中此项将在配置里增加“pyVCP”虚拟控制面板的基础文件或示例文件供你使用。

详细信息参见“Integrators”手册。

    Include ClassicLadder PLC :选中此项将在配置里增加“ClassicLadder PLC”功能。详细信息参见“Integrators”手册。

7.7  机床配置完成

    最后一个页面,单击“Apply”按钮就可以完成配置工作,配置向导生成并写入相关的配置文件,然后退出。将来,还可以重新运行配置向导并调整你刚刚键入的参数。

7.8  行程、原点、原点开关

    每个轴的运动都有一个限制范围,叫行程。在物理(此处指机械)意义上的行程端点叫“hard stop”(通常是机械挡块的位置,机床运行到此点将发生碰撞事故),所以在“hard stop”之前要设置一个限位开关(硬行程开关),如果机床运行过程中碰到了它,EMC2会关闭电机放大器。在“hard stop”和硬行程开关之间的距离要足够长,要能够确保断电的电机有足够的距离滑行,直到停止。

    在硬行程开关之前还有一个软行程开关。软行程开关在软件层面起作用,如果一个“MDI”命令或 G代码指示的坐标超出了软行程开关的范围,则该命令不会得到执行。手动进给时,如果碰到了它,也会停止执行。

    原点开关可以在软行程开关行程范围内的任意位置(译者注:此处原文为between hard stops,窃以为可能有误,如各位读者认为我理解错了,欢迎提出,谢谢)。因为工作台碰到软行程开关时,不会引起电机放大器强行关闭的情形,所以软行程开关可以作为原点开关使用。

    零位是机床坐标系统在该轴上的零点位置,通常零位在软行程开关行程范围内。比如在车床上,恒切削速度模式且没有刀具补偿的情况下,X轴的零位就是主轴旋转中心的位置。

    原点位置是原点复归操作结束后工作台在该轴所处的位置。该位置在软行程开关行程范围内,但不能和软行程开关处于同一位置。

7.8.1  无行程开关(限位开关)时的操作

    机床可以没有行程开关(限位开关),也可以操作。不过在这种情况下,只能使用软件来防止发生机械碰撞事故了。而且这种功能要在机床进行原点复归的操作后才起作用。

7.8.2  无原点开关时的操作

    没有原点开关也同样可以操作机床。如果机床有行程限位开关,但没有原点开关,最好的办法是使用一个行程限位开关做原点开关(比如在并口配置时选择一个输入引脚,把它配置为“Limit + Home X”)。如果机床根本就没有行程限位开关,或者虽然有但因为某些原因不能同时做原点开关,那就只能用“肉眼”或使用对位标识来进行原点复归了,这样做显然重复性很差,但在7.8.1节所述的情形时,仍然可以用来使软件限位功能可用。

7.9  原点、限位开关接线规则

    理想的接线方式是一个输入引脚只接一个开关。但是PC并口只提供了5个输入引脚,而3轴的机床共有9个开关,显然无法按理想接线方式实现。这时候,可以把多个开关用不同方式接在一起,共用输入引脚。

    下面两个图(参见英文版的图片)演示了如何把多个开关接到一个并口引脚上。注意在这两种情况下都是当有按钮按下时,输入引脚得到一个由高到低的电平变化。这和EMC2的TRUE的逻辑关系是反的,所以在引脚配置页面对相应引脚配置时,要选中“Invert”选项。

    在“Stepconf”配置向导里,下面的组合都是允许的:

所有轴的原点开关组合到一起

所有轴的行程限位开关组合到一起

每个轴的两个行程限位开关组合到一起

每个轴的两个行程限位开关和原点开关组合到一起

每个轴的两个行程限位开关之一和原点开关组合到一起

    把原点开关和限位开关合一时,使用后两种组合是合适的。

第 8 章  pnc配置向导(Point n Click Configurator)

    pnc配置向导可以针对“Mesa 卡”配置,也可以对并口步进系统进行配置。但如果你有一个简单的并口步进系统,用Stepconf配置向导是合适的。pnc配置向导的优势是:你可以在不熟悉HAL的情况下完成一些高级配置。

    要启动pnc配置向导,可以在CNC菜单里面启动,也可以在 Linux终端里面启动。(译者注:在我的电脑上,CNC菜单里没有这个选项,只能从Linux终端里面启动)更多信息参见第10章“Linux FAQ”。

    (本章所有插图均参见原版英文的图片)

8.1  基本机床信息

    机床名字:录入你机床的名字,注意不能有空格。(译者注:本章内容介绍的极其简略,可参考第7章内容学习。)

8.2  GUI配置

    在这个页面选择GUI并配置相关参数。

8.3  Mesa 配置

    (译者注:Mesa是一个公司品牌名字,EMC2和这个品牌的运动控制卡合作密切,所以会有这个pnc配置向导存在。Mesa卡的相关信息参见http://www.mesanet.com/motioncardinfo.html 。如果你不使用Mesa卡,可以不看本章内容,如果用 Mesa卡,那么本章没有描述的部分内容恐怕要参考Mesa卡的资料了。)

8.4  Mesa卡的IO配置

8.5  Mesa卡的轴配置

8.6  高级选项

8.7  HAL组件

    在这个页面,你可以添加你需要的额外的HAL组件。(关于HAL,参见EMC2综合手册和HAL用户手册) 

第 9 章  运行EMC2

9.1  启动EMC2

    启动EMC2和启动其它Linux软件没什么区别:从命令行输入“emc”然后回车,或者使用Applications

菜单,再进入CNC菜单,选择EMC2 。

9.2  配置选择器

    启动EMC2时,默认情况下会出现配置选择器。可选配置的顶端是你自己的个性化配置,然后向下依次有一些EMC2提供的样例配置。因为每一个配置都对应某一种硬件接口,所以在没有硬件的情况下有些配置可能不能运行。但是在“sim(simulation模拟)”那个目录下的配置没有硬件也可以运行。

    单击任何一个配置,在右侧的列表栏里就会显示该配置的特定信息。双击一个配置,或者按“OK”按钮就会启动这个配置,进入EMC2的界面。“ Create Desktop Shortcut”选项如果被选中,EMC2就会在Ubuntu的桌面为该配置添加一个快捷方式,下一次想启动这个配置,直接在桌面上双击该快捷方式即可,而且这种快捷方式启动不会显示配置选择器。

    如果你选择一个EMC2提供的样例配置,EMC2将问你是否同意把该配置拷贝到你“home”文件夹下的某个位置,你必须回答“yes”。否则EMC2仍会启动,但行为会很诡异,这是因为配置文件的原文件是只读的,而你允许生成的那个拷贝才是可读可写的。

第 10 章  Linux 相关问题 (Linux FAQ)   

10.8.2  屏幕分辨率 Monitor Resolution

    在安装过程中,Ubuntu试图完成监视器的配置,但也可能失败。如果失败了,就会使用通用的监视器配置800*600 。

   

 大海作坊  www.xyzdiy.com

作者 大海作坊

红豆生南国,春来发几枝。 愿君多采撷,此物最相思