LinuxCNC学习-Machinekit手册介绍

2023-05-16

原文链接 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 机器配置

下图显示了一个典型的铣床,其中显示了刀具的行进方向以及铣床工作台和限位开关。 注意铣床工作台如何沿“工具方向”图像所示的直角坐标系箭头的相反方向移动。 这使“工具”相对于材料沿正确的方向移动。
在这里插入图片描述

下图显示了一个典型的车床,显示了刀具和限位开关的行进方向。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

LinuxCNC学习-Machinekit手册介绍 的相关文章

随机推荐

  • webpack vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin

    场景 webpack2 4 集成vue loader 64 15 2 4报错 vue loader was used without the corresponding plugin Make sure to include VueLoad
  • slamugv使用说明--5.电机编码测速

    电机编码器测速 编码器 xff08 encoder xff09 是将信号 xff08 如比特流 xff09 或数据进行编制 转换为可用以通讯 传输和存储的信号形式的设备 编码器把角位移或直线位移转换成电信号 编码器分类及原理 xff1a 按
  • STM32相关名词解释

    L N NO NC COM名词解释 L是line的意思 xff0c 相线 xff0c 俗称火线 xff1b N是neutral xff0c 中性线的意思 xff0c 在两相线中也称为零线 NO xff1a 也就是常开 xff0c 即在未通电
  • 三轴加速度计、三轴陀螺仪、三轴磁力计

    1 今天要做的事情 列出 xff1a 可能影响因素 xff0c 对影响因素做实验 如何设置对比实验 xff1f 如何设置对比实验 xff1f 三轴加速度计 1 加速度计的原理 三轴加速度 xff1a 输出的速度是去掉重力后的整体加速度 xf
  • zed相机使用

    zed立体相机 43 pyhon 43 opencv zed相机网上资料都是关于安装的教程 xff0c 后续的一些使用介绍的不是很多 xff0c 因为官方文档已经介绍的很详细 xff0c 这里介绍一下自己的学习过程 xff0c 以备查阅 x
  • 思岚A1激光雷达hector_mapping建图与定位

    ROS中最常见的定位包还是gmapping xff0c gmapping是需要里程计的数据也就是IMU或者视觉里程计的数据 xff0c 但是目前还是仅仅在电脑中测试 xff0c 并未实现树莓派与飞控通信 xff0c 因此使用不用里程计数据的
  • 科技概念/名词解释

    文章目录 自然科学算法类无人机互联网软件类硬件类计算机架构类人工智能 自然科学 量子 百度百科 量子 xff08 quantum xff09 是现代物理的重要概念 即一个物理量如果存在最小的不可分割的基本单位 xff0c 则这个物理量是量子
  • 自动驾驶基础知识(一)——英文缩写(持续更新...)

    这一篇就先整理一下接触到的英文缩写 xff0c 相当于给自己补补课 xff0c 以后遇到新的 xff0c 会持续更新上来 xff01 英文缩写中文全称英文全称ABS防抱死制动系统Anti lock Braking SystemACCS自适应
  • 自动驾驶基础知识(二)——术语中英文对照

    文章目录 深度学习自动驾驶深度增强学习计算机视觉其他 深度学习 中文名称英文名称人工智能系统Artificial Intelligence System认知负荷Cognitive Load深度学习Deep Learning3D卷积神经网络3
  • 使用Typora绘制流程图

    Typora可以直接在markdown中画流程图 xff0c 而且语法简洁易懂 xff0c 这是个让我异常惊喜的功能 Typora使用flowchart js来生成简单的SVG流程图 xff0c 此外它还支持mermaid engine 要
  • 自动驾驶算法-滤波器系列(八)——IMM交互多模型介绍

    IMM交互多模型介绍 1 简介 xff08 1 xff09 IMM Interacting Multiple Model xff08 2 xff09 马尔科夫概率转移矩阵 2 算法流程 xff08 1 xff09 输入交互 xff08 模型
  • Vue2.* computed property ' ' was assigned to but it has no setter.

    场景分析解决 场景 父组件传递了一个属性给子组件 xff0c 子组件需要在完成某个动作之后 xff0c 修改这个动作 当我将这个计算属性在computed处理后 再次修改的时候 xff0c 会有警告而且修改没有成功 computed pro
  • 深度学习入门(七)——深度学习和视觉的基础数学知识

    深度学习和视觉的基础数学知识 线性变换和非线性变换点积和投影矩阵乘法的几何意义本征向量和本征值奇异值分解线性可分性和维度非线性变换 概率论条件概率和独立期望值 方差和协方差熵最大似然估计KL散度 维度诅咒采样和维度高维空间中的体积和距离中心
  • 深度学习入门(八)——深度卷积神经网络

    深度卷积神经网络 卷积神经网络卷积层和特征响应图参数共享稀疏连接多通道卷积激活函数池化 不变性和感受野分布式表征分层表达卷积神经网络结构 LeNetAlexNet网络结构局部响应归一化 GoogLeNetNetwork In Network
  • 深度学习入门(九)——深度学习框架概览

    深度学习框架概览 CaffeTheanoTensorFlowTorchPytorchMXNetcuda convnet2NeonDeeplearning4jCNTKPaddlePaddleKeras 工欲善其事 xff0c 必先利其器 深度
  • 高级篇之ENC1V2新用法USB/RS232串口转Visca-Over-IP

    高级篇之ENC1V2新用法USB RS232串口转Visca Over IP 术语背景现实需求 大家好 xff0c 最近ENC1 V2卖的很火 xff0c 主要是因为发现了它的一个新用法 xff0c 究竟是什么 xff0c 马上揭晓 术语
  • win10+Python3.7 安装 labelImg, lxml无法找不到DLL

    问题 E labelImg gt labelImg Traceback most recent call last File 34 e anda lib runpy py 34 line 193 in run module as main
  • const和#define的区别,详细!

    区别 xff1a xff08 1 xff09 就起作用的阶段而言 xff1a define是在编译的预处理阶段 起作用 xff0c 而const是在 编译 运行 的时候起作用 xff08 2 xff09 就起作用的方式而言 xff1a de
  • ubuntu16.04使用USB转TTL(ch340)串口转usb调试过程

    输入命令 xff1a lsmod grep usbserial 输入 xff1a lsusb 发现了ch341的一些相关信息 输入命令 xff08 查看USB转串口接入状态 xff09 xff1a dmesg usb 6 1 ch341 u
  • LinuxCNC学习-Machinekit手册介绍

    原文链接 http www machinekit io docs common user intro 1 Machinekit用户手册 1 1 关于手册 本手册的重点是如何 使用 Machinekit 安装并配置了Machinekit后 x