差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
grbl_通信协议 [2021/07/30 15:07] 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 | ?\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 | ||
行 51: | 行 53: | ||
MPos 后跟的是机器坐标,具体含义参考官方文档。为了方便,后面的文档省略\r\n。 | 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板子,返回的信息略少。 | ||
+ | ------------------- | ||
===参数查询=== | ===参数查询=== | ||
行 110: | 行 129: | ||
ok | ok | ||
</code> | </code> | ||
+ | ------------------- | ||
===参数设置=== | ===参数设置=== | ||
- | ------------------- | + | |
设置X轴步进数为200 | 设置X轴步进数为200 | ||
<code> | <code> | ||
行 121: | 行 141: | ||
ok | ok | ||
</code> | </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 | ||
+ | |||
+ |