LinuxCNC学习-Machinekit手册介绍

2023-11-03 14:40

本文主要是介绍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手册介绍的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/338876

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

性能测试介绍

性能测试是一种测试方法,旨在评估系统、应用程序或组件在现实场景中的性能表现和可靠性。它通常用于衡量系统在不同负载条件下的响应时间、吞吐量、资源利用率、稳定性和可扩展性等关键指标。 为什么要进行性能测试 通过性能测试,可以确定系统是否能够满足预期的性能要求,找出性能瓶颈和潜在的问题,并进行优化和调整。 发现性能瓶颈:性能测试可以帮助发现系统的性能瓶颈,即系统在高负载或高并发情况下可能出现的问题

水位雨量在线监测系统概述及应用介绍

在当今社会,随着科技的飞速发展,各种智能监测系统已成为保障公共安全、促进资源管理和环境保护的重要工具。其中,水位雨量在线监测系统作为自然灾害预警、水资源管理及水利工程运行的关键技术,其重要性不言而喻。 一、水位雨量在线监测系统的基本原理 水位雨量在线监测系统主要由数据采集单元、数据传输网络、数据处理中心及用户终端四大部分构成,形成了一个完整的闭环系统。 数据采集单元:这是系统的“眼睛”,

Hadoop数据压缩使用介绍

一、压缩原则 (1)运算密集型的Job,少用压缩 (2)IO密集型的Job,多用压缩 二、压缩算法比较 三、压缩位置选择 四、压缩参数配置 1)为了支持多种压缩/解压缩算法,Hadoop引入了编码/解码器 2)要在Hadoop中启用压缩,可以配置如下参数

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

图神经网络模型介绍(1)

我们将图神经网络分为基于谱域的模型和基于空域的模型,并按照发展顺序详解每个类别中的重要模型。 1.1基于谱域的图神经网络         谱域上的图卷积在图学习迈向深度学习的发展历程中起到了关键的作用。本节主要介绍三个具有代表性的谱域图神经网络:谱图卷积网络、切比雪夫网络和图卷积网络。 (1)谱图卷积网络 卷积定理:函数卷积的傅里叶变换是函数傅里叶变换的乘积,即F{f*g}