Grbl是一种开源的嵌入式数控系统,用于控制CNC(数控机床)运动。本文详细介绍了Grbl的错误代码、报警代码、非Gcode命令、设置、支持的GCode命令、GCode参数以及系统状态。Grbl的错误代码包括对GCode命令不识别、Homing失败、软极限要求启用Homing等情况的描述。报警代码涵盖了硬限位触发、软极限报警、探针故障、Homing故障等。非Gcode命令包括用于显示设置、更改设置、查看GCode参数和状态报告的命令。设置部分列出了Grbl的各种设置,包括步进脉冲、限位反转、软硬极限等。GCode命令和参数说明了Grbl支持的运动指令和相应的参数。系统状态部分描述了Grbl可能处于的不同状态,如空闲、运动、报警等。对于更多详细信息,请参考Grbl的官方文档。
Grbl Error Codes
Grbl错误代码
代码 描述 1 GCode命令字母未找到。 2 GCode命令值无效或缺失。 3 Grbl不识别或不支持’$'。 4 期望的正值为负值。 5 回零失败。在设置中未启用回零。 6 最小脉冲宽度必须大于3微秒。 7 EEPROM读取失败。使用默认值。 8 Grbl '$'命令只在空闲时有效。 9 报警或点动状态下的GCode命令无效。 10 软限制要求启用回零。 11 超过每行最大字符数。已忽略。 12 Grbl '$'设置超过最大步进速度。 13 安全门打开,门状态已启动。 14 构建信息或启动行> EEPROM行长度。 15 点动目标超出机器行程,已忽略。 16 Jog命令缺少’='或包含禁止的GCode。 17 激光模式需要PWM输出。 20 不支持或无效的GCode命令。 21 在块中模态组中有> 1个GCode命令。 22 还未设置或未定义进给速度。 23 GCode命令需要整数值。 24 在命令块中找到> 1个使用轴字的GCode命令。 25 在块中找到重复的GCode字。 26 命令块中未找到轴字。 27 行号值无效。 28 GCode命令缺少所需的值字。 29 不支持G59.x WCS。 30 G53仅与G0和G1运动模式有效。 31 在块中发现不需要的轴字。 32 G2/G3弧需要>= 1个平面轴字。 33 运动命令目标无效。 34 弧半径值无效。 35 G2/G3弧需要>= 1个平面偏移字。 36 在块中找到未使用的值字。 37 G43.1偏移未分配到刀具长度轴。 38 刀具号大于最大值。
Grbl报警代码
代码 描述 1 硬极限触发。位置丢失。 2 软极限警报,位置保持。解锁是安全的。 3 运动中复位。位置丢失。 4 探测失败。探针未处于预期的初始状态。 5 探测失败。探针未接触工件。 6 回零失败。主动回零周期已重置。 7 回零失败。在回零周期中门打开。 8 回零失败。拉开未能清除限位开关。 9 回零失败。找不到限位开关。
Grbl 模态指令
代码 描述 $$ 显示Grbl设置。 $x=val 将Grbl设置x更改为val。 $# 查看GCode参数。 $G 查看GCode解析器状态。 $C 切换检查Gcode模式。 $H 运行回零循环。 $J=gcode 运行点动运动。 $X 终止报警锁定状态。 $I 查看构建信息。 $N 查看保存的启动代码。 $Nx=line 保存启动GCode行(x=0或1)。这些在重置时执行。 R S T = RST= RST = 恢复Grbl设置为默认值。 $RST=# 删除EEPROM中存储的G54-G59 WCS偏移和G28/30位置。 $RST=* 从EEPROM中清除并加载所有数据。 $SLP 启用睡眠模式。 Ctrl-x 软重置。 ? 状态报告查询。 ~ 从进料保持、门或程序暂停中启动/恢复。 ! 进料保持 - 停止所有运动。
注意:还有其他一些使用不可输入字符的实时命令。这些是给开发人员使用的,通常不在控制台之外使用。这些命令用于控制诸如进给覆盖之类的东西,不在此进行详细说明。
Grbl设置
设置 描述 $0 脉冲宽度,微秒 $1 空闲脉冲延迟,毫秒 $2 步进端口反转,XYZ掩码* $3 方向端口反转,XYZ掩码* $4 步进使能反转,(0=禁用, 1=反转) $5 限位引脚反转,(0=N-断开,1=N-闭合) $6 探针引脚反转,(0=N-断开,1=N-闭合) $10 状态报告,'?'状态。0=WCS位置,1=机器位置,2=计划/缓冲区和WCS位置,3=计划/缓冲区和机器位置。 $11 路径偏差,毫米 $12 弧容差,毫米 $13 以英寸为单位报告,(0=mm,1=Inches)** $20 软限位,(0=禁用,1=启用,必须启用Homing) $21 硬限位,(0=禁用,1=启用) $22 Homing循环,(0=禁用,1=启用) $23 Homing方向反转,XYZ掩码*,设置它归位到的角落。 $24 Homing进给,mm/min $25 Homing搜索,mm/min $26 Homing去抖动,毫秒 $27 Homing脱离,mm $30 最大主轴速度,RPM $31 最小主轴速度,RPM $32 激光模式,(0=关闭,1=打开) $100 X轴每毫米的步数 $101 Y轴每毫米的步数 $102 Z轴每毫米的步数 $110 X轴最大速度,mm/min $111 Y轴最大速度,mm/min $112 Z轴最大速度,mm/min $120 X轴加速度,mm/sec^2 $121 Y轴加速度,mm/sec^2 $122 Z轴加速度,mm/sec^2 $130 X轴最大行程,mm,仅用于Homing和软限位。 $131 Y轴最大行程,mm,仅用于Homing和软限位。 $132 Z轴最大行程,mm,仅用于Homing和软限位。
XYZ掩码是X、Y和Z轴的值设置。如果某个轴的移动方向错误,请更改此值。该值将为0-7。 ** 报告单位独立于Gcode中设置的单位!
Grbl支持的G代码
代码 描述 F 设置每分钟的进给速度 (参见G20/G21)。 G0 以快速进给速率进行快速定位移动。在激光模式下,激光将被关闭。 G1 直线切割移动。在当前F速率下。 G2 顺时针切割圆弧。 G3 逆时针切割圆弧。 G4 暂停命令执行,时间为Pnnn。 P指定以秒为单位的时间。其他系统使用毫秒作为暂停时间,如果未更改,可能会导致非常长的暂停时间。 G10L2 使用绝对机床坐标设置保存原点的偏移。 G10L20 与G10 L2相同,但XYZ参数是相对于当前位置的偏移。 G17 在XY平面中绘制圆弧,默认。 G18 在ZX平面中绘制圆弧。 G19 在YZ平面中绘制圆弧。 G20 所有距离和位置都以英寸为单位。 G21 所有距离和位置都以毫米为单位。 G28 前往安全位置。注意: 如果您尚未运行归位循环并设置了安全位置,则使用此命令非常不安全。 G28.1 使用绝对机床坐标设置安全位置。 G30 前往保存的G30位置。 G30.1 使用绝对机床坐标设置预定义位置,将在保存坐标之前进行快速G0移动。 G38.2 向库存探测,失败时出错。 G38.3 与G38.2相同,但失败时没有错误。 G38.4 与G38.2相同,但移开,当失去接触时停止。 G38.5 与G38.4相同,但失败时没有错误。 G40 刀具补偿关闭。Grbl不支持刀具补偿。 G43.1 动态刀具长度偏移,偏移工具末端位置以进行后续移动。 G49 取消刀具长度偏移。 G53 在此命令中使用机床坐标。 G54 激活相关的保存原点。 G55-59 与G54相同,激活不同的保存位置。 G61 精确路径模式。Grbl不支持其他任何模式。 G80 坐标循环取消。Grbl不支持此取消的任何坐标循环模式,因此它什么都不做。 G90 所有距离和位置都是从当前原点开始的绝对值。 G91 所有距离和位置都是相对于当前位置的相对值。 G91.1 设置弧增量位置模式。 G92 设置当前坐标点,用于将原点设置为零,通常称为主位置。 G92.1 将正在生效的任何G92偏移重置为零并将任何保存的值归零。 G93 逆时间运动模式。 G94 在当前F速率下的单位/分钟模式。 M0 暂停。 M1 与M0相同,但仅在可选的停止开关打开时暂停。 M2 程序结束,关闭主轴/激光并停止机器。 M3 启动主轴顺时针旋转。在激光模式下设置为恒定功率。 M4 与M3相同,在激光模式下设置为动态功率。 M5 停止主轴。 M8 泛滥冷却开启。(同M7相同) M9 关闭冷却。 M30 与M2相同。 S 在RPM或激光功率中设置主轴速度。
注意: 代码可能包含前导零,G0和G00是相同的。有很多其他的G代码,这些是Grbl支持的。许多命令是模态的,意味着它们会被记住并应用于后续的命令。例如,G0 X1后面跟着Z5记住了G0模式并将其应用于Z5。S是模态的,从上一个命令记住的。同一模态组中的两个命令不能在同一行上。
Grbl G代码参数
字母 描述 X Y Z X Y Z轴上的距离或位置。 I J K 用于G2和G3弧的距离或位置。分别对应于Z Y X轴。这些始终是增量坐标,无论G90/G91如何。 L 循环次数,支持但未使用。 N 行号,支持但未使用。 R G2和G3的弧半径。 P 多用途参数,取决于它所用的命令。 T 工具选择,未使用。
注意: 所有参数后必须跟一个数字。
Grbl 状态
状态 描述 报警(Alarm) 启用了回零,但回零循环未运行或检测到错误,例如限位开关被触发。回零或解锁以恢复。 空闲 (Idle) 等待任何命令。 手动(Jog ) 执行手动运动,直到完成为止,除了手动命令外不接受新命令。 回零 (Homing) 执行回零循环,直到完成为止不接受新命令。 检查 (Check) 启用检查模式;接受所有命令但只解析,不执行。 运行 (Cycle) 运行GCode命令,接受所有命令,当命令完成时将进入空闲状态。 暂停 (Hold) 操作暂停中,恢复以继续。 安全门(Safety Door) 安全门开关已触发,类似于暂停,但在关闭门时将恢复。您可能的机器上可能没有安全门! 休眠 (Sleep) 已接收并执行休眠命令,有时在作业结束时使用。重置或重新上电以继续。
有关更多信息和详细内容,官方文档 https://github.com/grbl/grbl 找到。