差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
grbl_通信协议 [2021/07/30 14:58] ljx |
grbl_通信协议 [2021/07/30 15:51] (当前版本) ljx |
||
---|---|---|---|
行 22: | 行 22: | ||
一般命令执行成功,返回ok\r\n或是错误返回error:N\r\n, 其中的N是错误号。当触发限位或遇到其他意外时,GRBL主动会主动向上位机发送信息,应用开发者应随时接收下位机的信息,当遇到\r\n时,就可以解释结果了。 | 一般命令执行成功,返回ok\r\n或是错误返回error:N\r\n, 其中的N是错误号。当触发限位或遇到其他意外时,GRBL主动会主动向上位机发送信息,应用开发者应随时接收下位机的信息,当遇到\r\n时,就可以解释结果了。 | ||
+ | GRBL的命令缓冲区一般为128节字,请不要一次发送超过128字节的命令。 | ||
+ | ---------------------------- | ||
===常用命令举例=== | ===常用命令举例=== | ||
行 28: | 行 30: | ||
https://github.com/gnea/grbl/wiki | https://github.com/gnea/grbl/wiki | ||
+ | ---------------------------- | ||
+ | ===状态查询=== | ||
- | ==状态查询== | + | 上位机发送 |
- | + | ||
- | 上位机发送: | + | |
<code> | <code> | ||
- | ? | + | ?\r |
</code> | </code> | ||
- | 主板响应: | + | 主板响应 |
<code> | <code> | ||
<Idle|MPos:-112.000,98751.562,7.000|FS:0,0|Pn:P>\r\n | <Idle|MPos:-112.000,98751.562,7.000|FS:0,0|Pn:P>\r\n | ||
行 48: | 行 50: | ||
Alarm --- 警告、异常 | Alarm --- 警告、异常 | ||
</code> | </code> | ||
+ | |||
+ | MPos 后跟的是机器坐标,具体含义参考官方文档。为了方便,后面的文档省略\r\n。 | ||
+ | |||
+ | ------------------- | ||
+ | ===版本信息查询=== | ||
+ | |||
+ | 上位机发送 | ||
+ | <code> | ||
+ | $I | ||
+ | </code> | ||
+ | 主板返回 | ||
+ | <code> | ||
+ | [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 | ||
+ | </code> | ||
+ | 以上是ESP32板子的返回信息,如里是328P板子,返回的信息略少。 | ||
+ | ------------------- | ||
+ | ===参数查询=== | ||
+ | |||
+ | 上位机发送 | ||
+ | <code> | ||
+ | $$ | ||
+ | </code> | ||
+ | 主板返回 | ||
+ | <code> | ||
+ | $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 | ||
+ | </code> | ||
+ | ------------------- | ||
+ | |||
+ | ===参数设置=== | ||
+ | |||
+ | 设置X轴步进数为200 | ||
+ | <code> | ||
+ | $100=200 | ||
+ | </code> | ||
+ | 主板返回 | ||
+ | <code> | ||
+ | ok | ||
+ | </code> | ||
+ | |||
+ | 设置X轴加速度为3000 | ||
+ | <code> | ||
+ | $110=3000 | ||
+ | </code> | ||
+ | 主板返回 | ||
+ | <code> | ||
+ | ok | ||
+ | </code> | ||
+ | |||
+ | ------------------- | ||
+ | |||
+ | ===激光开关=== | ||
+ | |||
+ | 激光开,功率设置为1000 | ||
+ | |||
+ | <code> | ||
+ | M3S1000 | ||
+ | </code> | ||
+ | |||
+ | 激光关 | ||
+ | |||
+ | <code> | ||
+ | M5 | ||
+ | </code> | ||
+ | |||
+ | ------------------- | ||
+ | |||
+ | ===运行控制=== | ||
+ | |||
+ | 移动X轴到100MM,最高速限定为200mm/分钟 | ||
+ | |||
+ | <code> | ||
+ | G1 X100 F200 | ||
+ | </code> | ||
+ | |||
+ | 移动X轴到100MM,Y轴到10.2MM | ||
+ | |||
+ | <code> | ||
+ | G1 X100 Y10.2 | ||
+ | </code> | ||
+ | |||
+ | 移动X轴到反方向9MM | ||
+ | |||
+ | <code> | ||
+ | G1 Z-9 | ||
+ | </code> | ||
+ | |||
+ | X轴返回起点 | ||
+ | |||
+ | <code> | ||
+ | G1 X0 | ||
+ | </code> | ||
+ | |||
+ | XY轴返回起点 | ||
+ | |||
+ | <code> | ||
+ | G1 X0 Y0 | ||
+ | </code> | ||
+ | |||
+ | 坐标清零 | ||
+ | |||
+ | <code> | ||
+ | G92 X0Y0Z0 | ||
+ | </code> | ||
+ | |||
+ | |||
+ | 设置当前从标为XYZ(0,10,20) | ||
+ | |||
+ | <code> | ||
+ | G92 X0Y10Z20 | ||
+ | </code> | ||
+ | |||
+ | 回限位原点 | ||
+ | |||
+ | <code> | ||
+ | $H | ||
+ | </code> | ||
+ | |||
+ | ---------------------------- | ||
+ | ===尾声=== | ||
+ | |||
+ | 可能有些朋友会问,抬笔下笔怎么做?舵机怎么控制?怎么写一个字?怎么切割一个图案?怎么雕刻照片?圆怎么画? | ||
+ | |||
+ | 我这里提示一下,不同的写字机,抬笔下笔的指令不同,步进电机一般控制Z轴,抬笔时,指定Z轴往正方向走,下笔时指定Z轴往负方向走。如果是舵机,舵机的控制信息是PWM,也就是和激光功率的控制一样,也是M3Sxx来控制,输出两个不同的PWM,舵机就转动不同的角度来抬笔下笔了。至于写字,画图,板子是不会识别文字图案的,我们雕刻一张图片,不是把整张图片往主板上发送,主板处理不了,我们需要上位机软件,把图案拆分为一段段直线,把这一段段直线的坐标通过上面介绍的G1指令告诉机器怎么走。画一个圆也是把一个圆拆成很多的细小直线。 | ||
+ | |||
+ | 需要更多信息,请自行百度GRBL,GCODE。 | ||
+ | |||
+ | 有定制软件需求的,可以加我微信ljx20671218 | ||