本文主要是介绍LinuxCNC学习-Machinekit手册介绍,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
原文链接 http://www.machinekit.io/docs/common/user_intro/
1 Machinekit用户手册
1.1 关于手册
本手册的重点是如何“使用” Machinekit。 安装并配置了Machinekit后,您就可以使用它。 安装请参阅《入门指南》,以获取安装的逐步说明。 有关Machinekit的安装和配置的详细信息,请参阅《Integrator 手册》。
1.2 Machinekit组件
增强型机器控制器Enhanced Machine Controller(Machinekit)不仅限于一个CNC铣削程序。 它可以控制机床,机器人或其他自动化设备。 它也可以控制伺服电机,步进电机,继电器和其他与机床相关的设备。
Machinekit软件包含四个主要组件:
1、运动控制器(EMCMOT)
2、离散量I / O控制器(EMCIO)
3、协调他们的任务执行者(EMCTASK)
4、图形用户界面(GUI)
此外,还有一个称为HAL(硬件抽象层)的层,它允许配置Machinekit而无需重新编译。
Figure 1. Simple Machinekit Controlled Machine
上图显示了一个简单的框图,显示了典型的3轴Machinekit系统的外观。 该图显示了步进电机系统。 Linux作为其操作系统,PC实际上是通过打印机端口发送信号来控制步进电机驱动器的。 这些信号(脉冲)使步进驱动器移动步进电机。 Machinekit系统还可以通过伺服接口卡或使用扩展的并行端口与外部控制板连接来运行伺服电动机。当我们检查构成Machinekit系统的每个组件时,我们会让读者想起这种典型的机器框图。
1.3 图形用户界面
用户界面是机床操作员与之交互的Machinekit的一部分。
Machinekit带有几种类型的用户界面:
1、‘Axis’, the standard GUI interface.
Figure 2. Axis GUI
2、‘Touchy’, a touch screen GUI.
Figure 3. Touchy GUI
3、‘NGCGUI’, a subroutine GUI that provides ‘fill in the blanks’ programming of G code. It also supports concatenation of subroutine files to enable you to build a complete G code file without programming.
一个子例程GUI,它提供G代码的“填空”编程。 它还支持子例程文件的串联,使您无需编程即可构建完整的G代码文件。
Figure 4. NGCGUI GUI embedded into Axis
4、‘Mini’, a Tcl/Tk-based GUI
Figure 5. The Mini GUI
5、‘TkMachinekit’, a Tcl/Tk-based GUI
Figure 6. The TkMachinekit GUI
6、‘Keystick’, a character-based screen graphics program suitable for minimal installations (without the X server running).
Figure 7. The Keystick GUI
‘Xemc’, an X-Windows program. A simulator configuration of Xemc can be ran from the configuration picker.
‘halui’ - a HAL based user interface which allows to control Machinekit using knobs and switches. See the Integrators manual for more information on halui.
‘machinekitrsh’ - a telnet based user interface which allows commands to be sent to Machinekit from remote computers.
1.4 虚拟面板
‘PyVCP’ a python based virtual control panel that can be added to the Axis GUI or be stand alone.
Figure 8. PyVCP with Axis
‘GladeVCP’ - a glade based virtual control panel that can be added to the Axis GUI or be stand alone.
Figure 9. GladeVCP with Axis
See the Integrators manual for more information on Virtual Control Panels.
1.5 支持的语言
Machinekit使用翻译文件将Machinekit用户界面翻译成多种语言。您只需要使用您打算使用的语言登录,在启动Machinekit时便会以该语言显示。
1.6 像机器一样思考
这本书不会教您如何操作铣床或车床。因为成为机械师需要时间和艰苦的工作。一位作者曾经说过:“如果有的话,我们可以从经验中学习。”破碎的工具,被挖的恶习和伤痕是教训的证据。良好的零件表面光洁度,紧密的公差和精心的工作是所汲取的经验教训的证明。没有机器,没有计算机程序 可以代替人类的经验。
在开始使用Machinekit程序时,您需要将自己置于操作员的位置。您需要考虑自己是负责机器的人的角色。它是一台等待您的命令或正在执行您刚给出的命令的机器。在这些页面中,我们将为您提供信息,这些信息将帮助您成为Machinekit系统的良好操作者。您将需要在此处的一些信息,以便您以后的理解。
1.7 操作方式
当Machinekit运行时,有三种不同的主要模式用于输入命令。
“手动”,“自动”和“ MDI”。
从一种模式切换为另一种模式时,在Machinekit控件的行为方式上会有很大的不同。例如在一种模式下可以完成某些特定的事情,而在另一种模式下则无法完成某些特定的事情。操作员可以在手动模式下回原点,但不能在自动或MDI模式下回原点。操作员可以使机器在自动模式下执行包含G代码的整个文件,但不能在手动或MDI下执行。
在手动模式下,每个命令都是单独输入的。手动命令可能是“打开冷却液”或“以每分钟25英寸的速度慢进X”。这些操作大致等效于拨动开关或转动手轮作为轴。通常在图形界面之一上通过用鼠标按下按钮或按住键盘上的键来处理这些命令。在自动模式下,可以使用类似的按钮或按键来加载或开始运行存储在文件中的G代码的整个程序。在MDI模式下,操作员可以键入一段代码,并通过按键盘上的<return>
或<enter>
键来告诉机器执行该代码。
某些运动控制命令可用,并且将在所有模式下引起相同的运动变化。这些包括“中止”,“停止”和“进给倍率”)。这样的命令应该可以自我解释。
AXIS用户界面通过使自动命令在大多数时间可用而隐藏了自动模式和其他模式之间的某些区别。由于某些“手动”命令(如“触摸关闭”)实际上是通过发送MDI命令实现的,因此它也模糊了“手动”和MDI之间的区别。它通过自动更改为用户请求的操作所需的模式来实现。
2 重要应用概念
本章介绍了重要的用户概念,在尝试使用g代码运行CNC机床之前应了解这些概念。
2.1 轨迹控制
2.1.1轨迹规划
通常,轨迹规划是Machinekit遵循G代码程序指定的路径,同时在机械限制内运行的方式。G代码程序不能完全被遵循。 例如,假设您将以下动作指定为单行程序:
G1 X1 F10 (G1 is linear move, X1 is the destination, F10 is the speed)
实际上,整个动作无法在F10进行,因为机器必须从静止开始加速,朝X = 1移动,然后减速后再停止。 只有部分移动是在F10处完成的,但是对于许多移动(尤其是短位移),则根本无法达到指定的进给速度。 如果在G64 Pn中未使用“naive cam detector’”,则G代码中的短位移可能会导致机器减速并加快较长的动作。
上面描述的加减速并不复杂,也没有可以弥补的办法。 在INI文件中,轨迹规划器必须遵守指定的机器约束,例如最大轴速度和轴加速度。
2.1.2 路径跟随
一个不太直接的问题是路径跟随问题。 当用G代码编程一个拐角时,轨迹规划器可以做几件事情,在某些情况下这都是正确的:它可以精确地减速到拐角的坐标处,然后沿新的方向加速。 它也可以进行混合的,即在通过转角时保持进给速度加快,因此有必要将转角变圆以遵守机器的限制。 您会发现这里有一个折衷方案:您可以放慢速度以获得更好的路径跟随,或者保持速度加快并获得更差的路径跟随。 根据特定的切口,材料,工具等,程序员可能希望做出不同的折衷。
快速移动也服从当前的轨迹控制。 在没有加速度且没有指定路径公差的机器上进行足够长的移动以达到最大速度时,您可以获得一个相当圆的角。
2.1.3 对规划器进行编程
轨迹控制命令如下:
“ G61”-(精确路径模式)精确地访问了编程点,即使这意味着它可能暂时停止完全停止以将方向更改为下一个编程点。
“ G61.1”-(“精确停靠模式”)告诉规划器在每个细分的末尾精确停靠。
‘G64’-(无容差模式混合)启动Machinekit时,G64是默认设置。 G64只是混合而未启用naive cam detector。 G64和G64 P0告诉规划器牺牲轨迹跟随精度,以保持进给速度。对于某些类型的材料或工具来说,这是必须的,因为这些材料或工具的精确停止是有害的,并且只要程序员谨慎地记住工具的路径比程序指定的弯曲程度更大,它就可以很好地工作。在G64上使用G0(快速)移动时,请注意间隙移动,并根据机器的加速能力留出足够的距离来清除障碍物。
‘G64 P- Q-’-(混合公差模式)这将启用“naive cam detector”并启用公差混合。如果编写了G64 P0.05,则告诉计划器要连续进给,但是要在编程的拐角处使其减速足够慢,以使刀具路径可以保持在编程路径的0.05个用户单位之内。减速的确切数量取决于所编程拐角的几何形状和机器约束,但是程序员唯一需要担心的是公差。这使程序员可以在折衷之后完全控制路径。混合公差可以在整个程序中根据需要进行更改。请注意,G64 P0规范与单独的G64具有相同的作用(上述),这是旧G代码程序向后兼容所必需的。有关G64 P- Q-的更多信息,请参见G代码章节。
“无公差融合”-控制点将至少在每个点上触摸每个指定的运动。机器将永远不会以无法在当前运动(或下一个运动,如果您在混合开始时暂停)下的精确停止的速度停止运动。距移动终点的距离必须与保持最佳轮廓进给所需的距离一样大。
“naive cam detector”-仅涉及XYZ轴线偏离直线的XYZ轴的连续G1运动被合并为一条直线。为了融合公差,此合并的机芯取代了单个G1机芯。在连续运动之间,受控点从运动的实际端点经过的距离不得超过P-。在每个动作中,受控点将至少触摸一个点。机器将永远不会以无法在当前运动结束时(或下一运动,如果您已在混合开始时暂停)的精确停止的速度移动,则在G2/3上以G17(XY)平面运动当圆弧与直线的最大偏差小于G64 Q-公差时,圆弧将分为两条线(从圆弧的起点到中点,从中点到终点)。然后对这些行进行朴素的凸轮算法处理。因此,线-弧,弧-弧和弧-线情况以及线-线都受益于“naive cam detector”。通过简化路径,可以提高轮廓加工性能。
在下图中,蓝线代表实际的机器速度。红线是机器的加速能力。每个图下方的水平线是计划的移动。上方的图显示了轨迹规划器在遇到短距离移动以保持在机器加速度设置的范围内以能够在下一个移动结束时精确停止时如何降低机器速度。底部的图显示naive cam detector组合动作并更好地保持速度如计划那样的效果。
Figure 1. Naive Cam Detector
2.1.4 规划动作
确保移动“足够长”以适合您的机器/材料。 主要是因为这样的规则:机器永远不会以当前移动结束时无法完全停止的速度移动,因此有一个最小的移动长度,可以使机器保持所要求的进给速度。 给定的加速度设置。
加速和减速阶段每个都使用ini文件MAX_ACCELERATION的二分之一。 在完全相反的混合中,这将导致总轴加速度等于ini文件MAX_ACCELERATION。 在其他情况下,实际的机器加速度略小于ini文件的加速度。
为了保持进给速度,移动距离必须大于从0加速到所需进给速度然后再次停止所花费的距离。
加速度 A = MAX_ACCELERATION / 2
F作为进给速度(单位为每秒)
则加速时间为ta = F/A ,加速距离为da= F * ta / 2。 减速时间和距离相同,因此临界距离d = da + dd = 2 * da = F2/A.
例如,对于每秒1英寸的进给速度和10英寸/秒2的加速度,临界距离为1*1/10 = 1/10 = 0.1英寸。
对于每秒0.5英寸的进给速度,临界距离为0.5*0.5/10 = 25/1000 = 0.025英寸。
2.2 G代码
2.2.1 默认值
当Machinekit首次启动时,默认情况下会加载许多G和M代码。可以在AXIS界面的“活动G代码:”窗口中的MDI选项卡上查看当前有效的G代码和M代码。这些G和M代码定义了Machinekit的行为,并且在运行Machinekit之前,需要了解每个G代码的功能。运行G代码文件时,可以更改默认值,并将其设置为与启动Machinekit会话时不同的状态。最佳做法是在G代码文件的序言中设置作业所需的默认值,而不是认为默认值没有被更改。
2.2.2进给速度
进给速度的施加方式取决于与移动有关的轴是否为旋转轴。如果您有旋转轴或车床,请阅读并理解“进给速率”部分。
刀具半径偏移
刀具半径补偿(G41 / 42)要求刀具能够沿每个编程的移动接触某处,而不用刨切两个相邻的移动。如果使用当前刀具直径无法做到这一点,则会出现错误。较小直径的工具可以在同一路径上运行而不会出现错误。这意味着您可以对刀具进行编程,使其通过比刀具窄的路径,而不会出现任何错误。有关更多信息,请参见半径补偿部分。
2.3 机床回零
启动Machinekit之后,必须先回零,然后再运行程序或MDI命令。
如果您的机器没有原点开关,则每个轴上的匹配标记可以帮助每次将机器坐标归位到同一位置。
回零后,将使用ini文件中设置的软限制。
如果不想使用默认回零,或者要使用Mini界面,则需要在ini文件的[TRAJ]部分中设置选项NO_FORCE_HOMING = 1。
2.4 坐标轴
坐标系统起初可能会令人困惑。 在运行CNC机床之前,您必须了解Machinekit使用的坐标系的基本知识。 有关Machinekit坐标系的详细信息,请参见本手册的“坐标系”部分。
2.4.1 G53机床坐标系
将Machinekit回零后,对于每个回原点的轴,将G53机器坐标系设置为0。
回零不会更改其他坐标系或刀具偏置。
唯一一次在G53机床坐标系中移动是在与移动相同的一行上编写G53时。 通常,您使用的是G54坐标系。
2.4.2 G54-59.3用户坐标
通常,您使用G54坐标系。当将偏移量应用于当前用户坐标系时,当DRO显示“位置:轴上的相对实际值”时,一个带有线条的小蓝球将位于机器的原点。如果偏移量是暂时的,请使用“机床”菜单中的“零坐标系”或G代码文件末尾的程序G10 L2 P1 X0 Y0 Z0。更改P编号以适合您要清除偏移的坐标系。
关闭LinuxCNC时,将保留存储在用户坐标系中的偏移量。
使用Axis中的“触摸关闭”按钮可以为所选的用户坐标系设置偏移量。
2.4.3 当你迷路时
如果您认为应该在DRO上获取0,0,0时遇到问题,则可能已编写了一些偏移量,需要将其删除。
用G53 G0 X0 Y0 Z0移至机床原点
用G92.1清除所有G92偏置
将G54坐标系与G54一起使用
将G54坐标系设置为与G10 L2 P1 X0 Y0 Z0 R0的机床坐标系相同
用G49关闭刀具补偿
从菜单打开相对坐标显示
您应该位于机器原点X0 Y0 Z0上,并且相对坐标系应该与机器坐标系相同。
2.5 机器配置
下图显示了一个典型的铣床,其中显示了刀具的行进方向以及铣床工作台和限位开关。 注意铣床工作台如何沿“工具方向”图像所示的直角坐标系箭头的相反方向移动。 这使“工具”相对于材料沿正确的方向移动。
下图显示了一个典型的车床,显示了刀具和限位开关的行进方向。
这篇关于LinuxCNC学习-Machinekit手册介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!