Skip to content
CaiZi edited this page Mar 31, 2021 · 2 revisions

欢迎来到Grbl Wiki! 请随时修改这些页面以帮助随时更新 Grbl !翻译自gnea/grbl

Grbl 标志

关于 Grbl

Grbl是一个免费开放源码高性能软件,用于控制移动机器的移动, 它使事情变得更加正常,或者使事情变得更动,并将在直线阿杜伊诺上运行。 如果制造者运动是一个行业,Grbl将成为行业标准。

大多数开放源码3D打印机的心中都有Grbl。 它已经改装成数百个项目,包括激光切割器、自动手写器、钻孔机、涂鸦画机和奇德球绘画机。 由于它的性能,它的简单性和水果硬件要求Grbl已经发展成为一种小的开放源码现象。

2009年, Simen Svale Skogsrud (http://bengler. o/grbl) 通过编写并向所有人发布Grbl 的早期版本来宽松开放源码社区(受Arduino GCode Interpreter Mike Elllery的解释)。 自2011年以来,Grbl作为一个社区驱动的开放源码项目在 Sungeun "Sonny" Jeon Ph.的务实领导下向前推进。 。 (@chamnit)。


Grbl CNC 项目的官方支持者

官方支持


谁应该使用 Grbl

制作磨粉或激光切割的制造商,他们需要一个微妙、简单的控制器来运行在无所不在的Arduino Uno上。 那些不愿与旧式电脑塔搭配空间的人只是为了平行港。 需要一个 tidy, modular C 作为项目基础的控制器的Tinketers。

精彩功能

Grbl对于轻型关税生产来说是很棒的。 我们使用它来进行我们所有的磨擦,使用我们的膝上型电脑或树莓派机来运行它,使用为Grbl编写的超级用户界面来提供G-代码作业。 Grbl 是用高度优化的C书写的,使用了Arduino的 Atmega328p 芯片的所有聪明性能,以实现精确的时间和异步操作。 它能够保持超过 30kHz 步速率,并提供干净、自由的控制脉冲流。

Grbl 是三个轴机器。 还没有旋转轴(尚未) - 只能是 X、Y和Z。

G代码解释器实现了LinuxCNC标准的子集,并且得到了大多数无问题的 CAM工具的支持。 关于这些G代码的描述,请参阅LinuxCNC的 G-代码描述文档, (G-code快速引用)Shapeoko wiki 试图列出Grbl支持的所有代码,并附有适当的评注。 请注意,只有少数偏离下文所列的G代码书面标准。 如果您注意到任何其他差异,请告诉您!

  • 不支持含有P词的G2和G3圆弧的多个完整圆弧。
  • 激光模式会更改M3、 M4和旋转速度 S字的更改。 详情请参阅 激光模式 页面。
  • 特定的停车动议以M56命令覆盖控制 其中 M56 P0 暂时禁用停车动议, M56/M56 Pxx 等于零再启用。

v1.1 中支持的 G-代码

  • G0, G1: 线性运动
  • G2, G3: Arc and Helical Motions
  • G4: 水井
  • G10 L2, G10 L20: 设置工作坐标偏移
  • G17, G18, G19: 平面选择
  • G20,G21: 单位
  • G28, G30: 转到预定义位置
  • G28.1, G30.1: 设置预定义位置
  • G38.2: Probing
  • G38.3, G38.4, G38.5: Probing
  • G40: 切割半径补偿模式关闭 (仅限)
  • G43.1, G49: 动态工具长度偏移
  • G53: 在绝对坐标中移动
  • G54, G55, G56, G57, G58, G59: 工作坐标系统
  • G61: 路径控制模式
  • G80: 运动模式取消
  • G90, G91: 距离模式
  • G91.1: Arc IJK 距离模式
  • G92: 坐标偏移
  • G92.1: 清除坐标系统偏移
  • G93, G94: 反馈模式
  • M0, M2, M30: 程序暂停和结束
  • M3, M4, M5: 拼写控制
  • M7* , M8, M9: 冷却液控制
  • M56* : 泊车移动控制

(*) 表示在config.h 默认情况下未启用的命令。

加速管理

在早期,基于Arduino的CNC控制器没有加速计划,不能全速运行,没有某种放松。 Grbl的不断加速管理和前瞻性规划人员解决了这个问题,并在微型控制器CNC世界从Marlin到TinyG的任何地方复制。 Grbl故意使用一种更简单的恒定加速度模型,这种模型足以适合家庭使用CNC。 由于这种情况,我们得以将我们的时间用于优化我们的规划算法,并确保动议是可靠和可靠的。 当安装所有功能集时,我们认为是至关重要的和完整的,不再需要我们修改我们的规划者来适应它们。 我们打算研究和实施更先进的运动控制算法,这些算法通常只留给供料费率很高的机器(例如pick-and-place)使用或在生产环境中。 最后,这里有一个链接描述了我们的高速转弯算法的基础,这样运动就可以轻松地进入最快的进给速度,并在急转弯前制动,实现快速但无急促的操作。

A. 设计上的限制

我们通过设计限制了G-code-support。 这使Grbl源代码变得简单、轻便和灵活,随着我们继续发展、改善和保持每个新功能的稳定。 Grbl 支持在输出时遇到的 CAM-tools 的所有常见操作,但是使一些人体编码器受挫。 没有变量,没有工具数据库,没有功能,没有预设循环,没有算术,没有控制结构。 只是基本机器操作和能力。 任何更加复杂的事情,我们认为接口可以很容易地处理这些人并将其翻译成Grbl。

v1.1中的新功能!

另一个 HUGE 更新 ! 此版本包括待办事宜列表上已经很长时间的最后一个优先级功能。 下面是新更改的摘要:

  • 实时覆盖 : 立即使用种子、 快速、 旋转速度、 旋转停止和冷却开关控制来改变机器运行状态。 这个超棒的新功能仅在工业机器上很常见,通常用于优化速度和进料,同时作业正在运行。 大多数爱情的CNC试图模仿这种行为,但通常有大量滞后。 Grbl 在实时和数十毫秒内执行覆盖。
  • Jogging 模式 : 新的喷雾命令独立于G代码解析器, 这样解析器状态不会被更改,如果不恢复正常,可能导致崩溃。 文档包括如何使用,以及如何使用它来控制您的机器,通过低延迟的游戏杆或旋转拨电话。 我们的反应是满意的。
  • 激光模式 : 新的“激光”模式将导致Grbl 持续移动到连续的 G1 带有旋转速度变化的G2和G3命令。 当“激光”模式被禁用时,Grbl将停止以确保旋转速度正常。 旋转速度覆盖也能使用激光模式,如果你需要在作业期间调整激光能量。 通过元设置在“激光”模式和“普通”模式之间切换。
  • 动态激光能量缩放速度 : 如果你的机器速度较慢, 此选项将根据Grbl的行程速度自动缩放激光能量, 所以当你的 CNC 必须转弯时,你不会烧毁角落! 启用激光模式时由 M4 旋转《特定常规武器公约》命令。
  • 睡眠模式 : Grbl 现在可以通过 $SLP 命令放入“睡眠”。 这将禁用所有东西,包括步行驱动程序。 当你离开你的机器无人看管并想要自动停电时很好。 只有重置退出睡眠状态。
  • 重大接口改进: 调整以提高整体性能,包括更多的实时数据,并简化维护和编写GUI。 基于多个图形界面开发者和版面性能测试的直接反馈。 注意:GUI需要具体更新其代码以便与v1.1及以后兼容。
  • 新状态报告: 要核算附加覆盖数据。 状态报告已被调整为将更多的数据投放到它中,但仍然比以前要小。 文件包括在内,概述了文件如何改变。 改进的错误/闹钟反馈:所有Grbl 错误和闹钟消息都被更改为提供一个代码。 每个代码都与一个特定的问题相关,因此用户会确切知道什么是错误的,而不必猜测。 文档和易解析CSV包含在仓库中。
  • 扩展 ASCII 实时命令 : 所有覆盖和未来实时命令都定义在扩展-ASCII 字符空间中。 不幸的是,键盘上不能轻易键入键盘, 但有助于防止来自具有这些字符的 G 代码文件的意外命令,并为将来的扩展提供大量空间。
  • 消息前缀 : Grbl 中的每个消息类型都有一个唯一的前缀来帮助GUI立即确定消息是什么,并相应解析它,而不必知道上下文。 前一个接口有几个GUI必须确定电文含义的例子。 这使一切变得更加复杂。 新的 OEM 特定功能,如安全门栏、单个配置文件构建选项、EEPROM 限制和恢复控制,以及存储产品数据信息。
  • 新的安全门停车运动作为编译选项。 Grbl 将会撤回,禁用 Z max 附近的旋转/冷却剂和公园。 恢复后,它将执行这些任务,以相反的顺序并继续程序。 高度配置,甚至可以添加一个以上的停车动议。 详情请访问 config.h
  • 新的 '$' Grbl 设置为最大和最小拼写rpm。 允许将 PWM 输出更密切地匹配真正的旋转针。 当最大rpm设置为零或小于min rpm时,PWM引脚D11会像一个简单的开启/关闭输出。
  • 更新了 G28 和 G30 行为 ,从NIST 到 LinuxCNC G-代码描述。 简而言之,如果指定了中间动作,只有指定的坐标轴才会移动到储存的坐标,而不是以前的所有坐标轴。
  • 大量微小错误修复并重构以使代码更有效和更灵活。
  • 注意:Arduino Mega2560支持已转移到一个活跃的官方Grbl-Mega项目。 这里和那里的所有新事态发展都将在有意义时同步进行。

v0.9中的新功能!

  • 重要:
  • 默认串行检查现在为115200! (从 9600)
  • 在 D11 上的 Z-Axis 限制输入已经与旋转器交换。启用 D12 以支持变量旋转PWM 输出。
  • 没有QUEE 状态:队列多余而被移除。 搁置现在暂停Grbl,只允许实时命令。 循环开始续传,然后重置退出。
  • *NEW* 超级平滑Stepper 算法: 完成对步骤每个驱动程序处理的全面检查,以简化和减少每个ISR tick的任务时间。 使用新的自适应多轴步射线(AMASS)算法进行更顺利的操作。这种算法做它的名称意味着什么(详情请参阅steper.c源)。 用户应该立即看到他们的机器如何移动和整体性能的重大改进!
  • 稳定性和强硬性更新: Grbl的总体稳定性已经成为这个版本的重点。 规划器和分步执行接口已经完全重写,通过引入一个中间步骤段缓冲,实时从规划者缓冲区“结出”步骤,这样做是为了保持强大性和不可腐化。 这意味着我们现在可以毫无畏惧地将Grbl推到最高限度。 加上新的继电器算法和规划器优化,这个转换成 5x 到 10x 我们的测试总性能增加! 另外,据报告,稳定性和强度测试中,很容易运行140万(是的,百万)直线G代码程序,就像一个冠军产品一样!
  • (十四)+ 快速规划: 规划计算通过优化端到端操作而得到了四倍或更多。 这包括精简计算和采用规划器指针来确定缓冲区中无法改进的部分,而不是重新计算这些部分。
  • 变量Spindle Speed Expute: 启用 'S' G-code命令的 PWM 硬件输出。 注意: 此功能需要使用 Z-limit D11 引脚进行引脚交换,然后旋转后启用 D12 引脚访问Pin D12上的硬件PWM。 现在在D12上的 Z-limit pin应该与以前一样发挥作用。
  • 可以通过 Arduino IDE 编译! Grbl的源代码现在可能会被下载和更改。 然后直接通过Arduino IDE编纂和刷,后者应在所有平台上工作。 关于如何操作的详细信息,请参阅Wiki。
  • G-代码解析器覆盖: 完全重写从 100%-compliance* 的基础到G-代码标准。 (* NIST标准的某些部分有些过时和武断,因此我们改变了一些较小的东西,使其更具意义。 源代码中概述了差异。) 我们还采取步骤,使我们能够将G-code解析器分为不同的任务。 这是未来一些发展想法和改进的关键。
  • 独立加速和速度设置: 每个轴可以用独特的加速度和速度参数定义,而Grbl将通过路径自动计算最大加速度和速度。
  • 软限制: 检查是否有任何运动命令在执行之前超过工作空间限制,如果检测到则提醒。
  • Probing: G38.2, G38.3, G38.4, & G38.5 直观的 G38.5 代码命令现在通过 A5 pin 支持并连接。
  • 工具长度偏移: 如果没有工具长度偏移,Probing 就没有意义了 (TLO),所以我们添加了它! 现在支持G43.1动态TLO命令(由Linuxcnc.org描述)和G49 TLO取消命令。 G43.1 动态TLO像普通的 G43 TLO (NOT SUPPORTED),但需要附加一个带有偏移值的轴词。 我们这样做了,Grbl不必在其内存中跟踪和维护一个工具偏移数据库。 也许今后我们将支持一个工具数据库,但不支持这个版本。
  • 改进了弧性能: 弧半径越大,Grbl 就会更快地追踪它! 我们现在用弧形状的宽度而不是固定的长度来定义弧度。 这自动缩放弧线段长度,使真正弧线段的最大辐射误差永远不会超过超准确0的chordal容忍值。 2 毫米。
  • 新建Grbl SIMULATOR! (由 @jgeisler 和 @ashelly): 一个完全独立的 Grbl 主源代码的包装器,可以编译成计算机上的可执行文件。 不需要Arduino。 简单地模拟Grbl的反应就好像它在Arduino上。
  • CPU Pin 映射: 在Grbl 与其他 AVR 架构兼容的努力中, 例如1280或2560,一个新的 cpu_map。 Pin配置文件已创建,允许为 Grbl 编译。 目前支持用户,所以您的里程可能不同。 如果你在运行bug,请让我们知道或更好,给我们一个修复! 提前感谢!
  • 可配置的实时状态报告: 用户现在可以自定义实时数据 Grbl 报告的类型,当他们发布“?”状态报告时。 这包括如下数据:机床位置、工作位置、规划者缓冲用法、序列RX缓冲用法。
  • 更新了主航线: 设置了所有负载空间的工作空间,而不论限制切换位置。 • 关于预防犯罪中心的共同点。 但是,行为可以用编译时间选项来改变。 现在直接绑定到主要规划器和步进器模块,以减少闪光空间,并允许在寻找过程中最大速度。
  • CoreXY 支持: Grbl 现在支持入门级的 CoreXY 亲属关系学。 大多数功能已经被验证,但在这里或那里可能存在漏洞。 请报告您发现的任何问题!
  • 安全门支持: 现在支持安全门开关。 Grbl 将强制一个饲料持有,关闭旋转和冷却器, 然后等待门开关关闭,用户发布了续会。 一旦恢复,可配置的延迟和持续的冷却器将会重振活力。 对于需要此功能的OEM很有用。
  • 完全限制和控制Pin 配置: 限制和控制粉末操作现在可以被Grbl解释,不管你喜欢。 启用或禁用内置抗拉强度,或读取高或低为触发器。 这将包括所有接线和无操作或无操作系统开关场景。
  • 可选的 Limit Pin 分享: 限制开关可以合并以分享相同的粉丝来释放珍贵的 I/O 粉丝用于其他目的。 如果合并,用户必须在config.h 中调整主页循环掩码以避免同时将轴置于共享引脚上。 不要担心;严格的限制和家居周期仍然与以前一样有效。
  • 额外的编译时间功能选项: 限制/控制引脚状态报告、行号跟踪、实时进料速度报告等等。

v0.8中的新功能!

自v0.7版本以来,发生了很多事情。 我们正在推出真正很难为尊贵的Arduino创建一个简单但强大的 CNC 控制器。 下面是v0.8的新内容列表。

  • 多任务运行时命令: 主源按住受控减速,无丢失位置,在饲料持有后继续恢复,恢复状态报告。
  • 高级主循环: 不同类型机器的大量配置选项,从这些机器中移动到搜索方向的轴。 限制开关也可以用作硬限制。
  • 持久性坐标系统数据: 工作坐标系统 (G54-G59) 和预定义位置 (G28) 在EEPROM中,他们总是被设置在最后设置中。
  • 检查G-代码模式: 设置Grbl来运行你的程序而不移动任何东西。 这样您就可以检查您是否有 Grbl 可能不喜欢的错误。
  • 改进反馈: 报告实时位置,Grbl正在做什么,G代码解析状态和存储坐标偏移值。
  • 启动方块: 启动或重置时自动运行用户 G-代码方块。 可以用来设置您的默认值。
  • Pinouts: 循环开始、饲料持有和中止已经被固定到 A0、A1和A2 pins。 只需将正常打开的开关连接到引脚和地面. 就是这样!
  • 检查反馈时出现更强大的G-代码解析器。
  • 还有更多!

Grbl v0.8(及先前)是根据MIT许可证分发的,由Simen Svale Skogsrud、Sungeun K. Jeon Ph.D.和Jens Geisler编写。

Grbl是根据GPLv3许可证发放的,由Sungeun K. Jeon Ph.D.开发的。 更多详情请查看 许可


上一版本的文档