=====GRBL 通信协议=====
===串口参数===
波特率:115200
*注:一些旧的板子波特率为9600。
---------------------
===TCP网络参数===
IP地址:自行配置
TCP端口:23(telnet)
---------------------
===协议格式===
GRBL接收两种形式的命令,一种是单字节的实时命令,直接发送单个字节的命令,GRBL就会返回信息。
另一种是以\r结尾的一行命令。GRBL返回信息时,都以\r\n代表一行的结束。
一般命令执行成功,返回ok\r\n或是错误返回error:N\r\n, 其中的N是错误号。当触发限位或遇到其他意外时,GRBL主动会主动向上位机发送信息,应用开发者应随时接收下位机的信息,当遇到\r\n时,就可以解释结果了。
GRBL的命令缓冲区一般为128节字,请不要一次发送超过128字节的命令。
----------------------------
===常用命令举例===
这里仅说明一些常用的命令,供大家做测试,想自行开发上位机软件的朋友还需自行参考完整的英文资料。
https://github.com/gnea/grbl/wiki
----------------------------
===状态查询===
上位机发送
?\r
主板响应
\r\n
ok\r\n
其中的Idle表示板子处于空闲状态,其他状态还有
Run --- 运行中
Alarm --- 警告、异常
MPos 后跟的是机器坐标,具体含义参考官方文档。为了方便,后面的文档省略\r\n。
-------------------
===版本信息查询===
上位机发送
$I
主板返回
[VER:1.3a#R1.20210218:]
[OPT:BW$#]
[MSG:Using machine:BACHIN_3AXIS]
[MSG:Mode=AP:SSDI=GRBL_ESP:IP=192.168.0.1:MAC=AC-67-B2-70-70-A5]
[MSG:No BT]
ok
以上是ESP32板子的返回信息,如里是328P板子,返回的信息略少。
-------------------
===参数查询===
上位机发送
$$
主板返回
$0=3
$1=250
$2=0
$3=1
$4=0
$5=1
$6=0
$10=1
$11=0.010
$12=0.002
$13=0
$20=0
$21=0
$22=1
$23=4
$24=1000.000
$25=1000.000
$26=250.000
$27=2.000
$30=255.000
$31=0.000
$32=1
$N1=
$N0=
$100=400.000
$101=80.000
$102=400.000
$103=100.000
$104=100.000
$105=100.000
$110=2200.000
$111=2000.000
$112=500.000
$113=1000.000
$114=1000.000
$115=1000.000
$120=3000.000
$121=200.000
$122=300.000
$123=200.000
$124=200.000
$125=200.000
$130=300.000
$131=300.000
$132=300.000
$133=300.000
$134=300.000
$135=300.000
ok
-------------------
===参数设置===
设置X轴步进数为200
$100=200
主板返回
ok
设置X轴加速度为3000
$110=3000
主板返回
ok
-------------------
===激光开关===
激光开,功率设置为1000
M3S1000
激光关
M5
-------------------
===运行控制===
移动X轴到100MM,最高速限定为200mm/分钟
G1 X100 F200
移动X轴到100MM,Y轴到10.2MM
G1 X100 Y10.2
移动X轴到反方向9MM
G1 Z-9
X轴返回起点
G1 X0
XY轴返回起点
G1 X0 Y0
坐标清零
G92 X0Y0Z0
设置当前从标为XYZ(0,10,20)
G92 X0Y10Z20
回限位原点
$H
----------------------------
===尾声===
可能有些朋友会问,抬笔下笔怎么做?舵机怎么控制?怎么写一个字?怎么切割一个图案?怎么雕刻照片?圆怎么画?
我这里提示一下,不同的写字机,抬笔下笔的指令不同,步进电机一般控制Z轴,抬笔时,指定Z轴往正方向走,下笔时指定Z轴往负方向走。如果是舵机,舵机的控制信息是PWM,也就是和激光功率的控制一样,也是M3Sxx来控制,输出两个不同的PWM,舵机就转动不同的角度来抬笔下笔了。至于写字,画图,板子是不会识别文字图案的,我们雕刻一张图片,不是把整张图片往主板上发送,主板处理不了,我们需要上位机软件,把图案拆分为一段段直线,把这一段段直线的坐标通过上面介绍的G1指令告诉机器怎么走。画一个圆也是把一个圆拆成很多的细小直线。
需要更多信息,请自行百度GRBL,GCODE。
有定制软件需求的,可以加我微信ljx20671218