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 找到。