GM指令详细讲解.docx

上传人:b****2 文档编号:1878346 上传时间:2022-10-24 格式:DOCX 页数:10 大小:101.53KB
下载 相关 举报
GM指令详细讲解.docx_第1页
第1页 / 共10页
GM指令详细讲解.docx_第2页
第2页 / 共10页
GM指令详细讲解.docx_第3页
第3页 / 共10页
GM指令详细讲解.docx_第4页
第4页 / 共10页
GM指令详细讲解.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

GM指令详细讲解.docx

《GM指令详细讲解.docx》由会员分享,可在线阅读,更多相关《GM指令详细讲解.docx(10页珍藏版)》请在冰豆网上搜索。

GM指令详细讲解.docx

GM指令详细讲解

概述

众所周知,3D打印机执行的是一堆指令,这一堆指令都来源于一个指令集,即G-M指令集。

而固件就负责解释这些指令,并将命令指派给电子原件,从而完成打印任务。

因此,固件和指令集必须相互配合,否则打印机不会正常工作。

开源的3D打印机使用的固件多种多样,但和这些固件匹配的指令集绝大多数指令都相同,即RepRapG-M指令集。

由于Marlin固件使用的最为广泛,笔者就以Marlin固件的指令集为例作叙述。

了解G-M指令有什么用?

这用处可大了。

帮助使用者更方便地调试打印机,检测打印机的问题,扩展打印机菜单功能…反正好处多多,不管你信不信,反正我是信了。

废话不多说,进入正题。

G-M指令集就是一些以G或M开头的代码,有时候还会掺杂一些以其其他字母以标示参数意义,比如T、S、F、P等。

具体意义见下表,表中nnn表示数字。

字母

意义

Gnnn

标准GCode命令,例如移动到一个坐标点。

Mnnn

RepRap定义的命令,例如打开一个冷却风扇

Tnnn

选择工具代码。

在RepRap中,工具通常是挤出头(extruder)。

Snnn

命令参数,例如马达的电压。

Pnnn

命令参数,频率:

1次每毫秒。

Xnnn

X坐标,通常用于移动命令。

Ynnn

Y坐标,通常用于移动命令。

Znnn

Z坐标,通常用于移动命令。

Ennn

挤出长度,用于控制挤出线材的长度.

Innn

参数-现在仍未使用(定义)。

Jnnn

参数-现在仍未使用(定义)。

Fnnn

打印头移动速度单位:

毫米每分钟

Rnnn

参数-温度相关。

Qnnn

参数-现在仍未使用(定义)。

Nnnn

行码,在发送错误情况后,用来重复输入某行代码(命令)。

*nnn

校验码(Checksum).用于检测通信错误

因此,能够被Marlin固件识别的代码应该是像下面的样子:

详解

注释

G-Code一行中分号“;”后面的容为解释性语句,即注释。

固件会忽略其容。

为了减少通信量,可以把注释信息都去掉。

标记代码

N和*,比如N123[...GCode写在这里...]*71。

这是行码和标记码。

RepRap的固件会以一个本地计算的值来对比标记码,如果两者值不同,就会要求重复输入该条指令。

行码和检查码都可以去掉,RepRap仍会工作,但它不会做检查。

你必须同时使用,或同时放弃使用。

检查码cs是通过对对应的指令(包括它的的行码)的原始字节数据进行异或位运算得出的。

检查码cs的值即是其*符号右边的十进制数字,RepRap固件希望每次命令的行代码都是逐次增加1的大小,不然的话,它会返回一个错误。

当然你也可以发送一个M110命令(详情请看下面)强行重置机器。

行码和检查码是为了减少信号干扰。

延时G命令

RepRap固件接收到这些指令后,会先存储在一个循环队列缓存里再执行。

这意味着固件在接收到一条指令后马上可以传输下一条。

这也意味着一组线段可以没有间断的情况下连续打印。

为了实现指令流的控制,当接受到可缓存的指令时,如果固件把它成功放到本地缓存里,就立即给出应答,如果本地缓存已满,则会延时等到缓存有空出的位置时,才给出应答,然后才可以传输指令。

G0:

Rapidmove快速移动

比如G0X10Y20,如果使用绝对定位的话,就命令打印机喷头快速移动到X=10,Y=20的位置。

G0指令不能包含挤丝参数,只能包含X、Y、Z参数,即所谓的空驶动作。

G1:

Controlledmove可控移动

比如G1X10Y20E2.4,G1指令中可以包含挤丝动作。

Marlin会尝试从每一行指令中读取速度值,然后再移动开始之前加速或减速到这个速度值,然后执行移动指令,而不会在移动过程中改变速度。

下面的几句指令告诉打印机速度先从当前的1500加速到3000,执行第二句的移动动作,然后再减速到1500,再执行第三句的移动动作。

如果E轴坐标采用绝对定位的话,而当前行中的E坐标值小于上一个E坐标值,那么打印机就会回抽,这可以有效防止毛刺现象。

G2:

ControlledMoveArcClockwise可控顺时针圆弧移动

比如G2X100Y100I50J60E30,表示从当前点通过一个顺时针圆弧线移动到(100,100)位置,该圆弧的圆心的位置是当前点坐标平移(50,60)得到的位置,在此过程中还可以控制挤丝动作。

G3:

ControlledMoveArcCounter-Clockwise可控逆时针圆弧移动

比如G2X100Y100I50J60E30,表示从当前点通过一个逆时针圆弧线移动到(100,100)位置,该圆弧的圆心的位置是当前点坐标平移(50,60)得到的位置,在此过程中还可以控制挤丝动作。

G28:

MovetoOrigin移动到原点

该命令会是机器的挤出机回归到原点。

准确的说,每个轴上移动到初始位置。

需要注意,为了快速归位,移动过程会不断加速,当碰到限位开关之后,它会做一次大约1mm的往返移动,来保证归位位置的精确度。

如果在G28后面加上坐标轴参数,只有在涉及到的坐标轴方向上才会归位,比如G28X10和G28X0都会只让打印机在X轴上归位。

而不会对Y方向和Z方向归位。

(X后面的数字会被忽略)。

而单纯的G28指令则会在三个轴上同时归位,顺序是X轴、Y轴、Z轴。

G29-G30:

Bedprobing加热床探测(需要使用自动调平功能)

G29会让打印机在加热床的3个点或者4个点(根据固件配置是三角探测还是四角探测),该指令必须在归位之后才生效。

G30会让打印机在当前的XY点处进行Z探测。

即时G指令

以下指令也可以被缓存,但是直到所有之前缓存的指令被执行完,并且该指令执行后,才会给出应答。

因此主机会等待指令执行完毕(才收到的应答).这些指令导致的短暂停顿不会影响机器的正常性能。

G4:

Dwell停顿

G4P1000会让打印机停顿1000毫秒,在停顿过程中打印机仍然可以被控制,比如设置挤出头温度。

G4S10会让打印机停顿10秒。

G10:

根据M207的配置进行回抽

M207包含回抽距离,回抽速度,回抽时Z提升等信息。

G11:

根据M208的配置进行回抽后恢复

M208包含回抽后挤出距离和挤出速度等信息。

G20:

SetUnitstoInches使用英寸作为单位

从现在开始,使用英寸作单位。

G21:

SetUnitstoMillimeters使用毫米作为单位

从现在开始,使用毫米作单位。

G90:

SettoAbsolutePositioning设置成绝对定位

从现在开始,使用绝对坐标定位方式。

即所有的坐标值都是基于一个统一的参考点给出的。

G91:

SettoRelativePositioning设置成相对定位

从现在开始,使用相对坐标定位方式。

即所有当前指令的坐标值都是以上一个坐标位置为参考的。

G92:

SetPosition设置位置

设置各轴当前的坐标值,比如G92E15指定当前耗材的位置在15毫米处。

G92X100指定打印机喷头当前的X坐标值为100。

这个指令可以用来指定绝对零点,特别是针对E轴。

即时M指令

M0/M1:

UnconditionalStop停止

无条件停止打印机的一切动作,等待用户按LCD控制器上的按钮。

M17:

Enable/Powerallsteppermotors启动所有步进电机

M18:

Disableallsteppermotors关闭所有步进电机

给所有的步进电机断电,从而可以手动移动滑块。

M84指令也是这个功能。

M20:

ListSDcard读取SD卡

将SD卡根目录下的所有容的名称做出列表,发送到串口,可以使用串口监视器看到。

M21:

InitializeSDcard初始化SD卡

初始化SD卡。

如果在打印机通电时插入SD卡,会默认初始化SD卡。

使用SD卡其他指令时,SD卡一定要初始化。

M22:

ReleaseSDcard弹出SD卡

安全弹出SD卡。

M23:

SelectSDfile选择SD卡的文件

M23filename.gco会选中filename.gco这个文件然后准备打印该文件。

需要注意文件名要满足8.3格式约定(即主文件名不能超过8个字符,扩展名不能超过3个字符)。

M24:

Start/resumeSDprint开始SD卡的打印

使打印机开始打印M23指令选中的文件。

M25:

PauseSDprint暂停SD卡打印

打印机在当前位置暂停打印M23选中的文件。

M26:

SetSDposition设置SD卡位置

以字节为单位设置SD卡的位置。

M27:

ReportSDprintstatus报告SD打印状态

M28:

BeginwritetoSDcard向SD卡中写文件

M28filename.gco将创建filename.gco文件(若存在,则覆盖)。

M29:

StopwritingtoSDcard停止写

M29filename.gco关闭M28打开的文件。

M30:

DeleteafileontheSDcard删除SD卡中的文件

M30filename.gco将删除该文件。

M31:

OutputtimesincelastM109orSDcardstarttoserial

M31将输出时间,从上一个M109指令开始或SD卡安装成功开始计时。

M32:

SelectfileandstartSDprint选择SD卡中的一个文件并开始打印

M80:

ATXPowerOn打开ATX电源

当使用的是可以开关的电源才有效。

M81:

ATXPowerOff关闭ATX电源

M82:

设置挤出机使用绝对坐标模式

这是默认的设置。

M83:

设置挤出机为相对坐标模式

与M82相反。

M84:

给所有步进电机断电

M84将给步进电机断电,直到下一次运动指令。

M84S<秒>将过一段时间给步进电机断电,时间为S后面的数字,单位是秒。

M92:

设置axis_steps_per_unit参数

M92X<>Y<>Z<>E<>将重新设置各坐标轴的分辨率,在调试校准打印机时非常有用。

M104设置挤出头目标温度,并作出应答

M104S210将喷头的目标温度设置为210°。

M105读取当前的温度

M106开风扇

M106S<>会打开风扇并将风扇速度设置为S后面的参数,最小值为0,最大值为255。

M107关闭风扇

M107会关闭风扇,M106S0也可以达到相同的效果。

M109:

设置挤出机温度

M109S<温度>设置喷头目标温度,然后在加热的过程中等待。

M109R<温度>设置喷头目标温度,在同时加热和风扇冷却过程中等待。

如果使用自动调温功能,那么M109S<最小温度>B<最大温度>F<因子>将会自动调整喷头温度,笔者在前面的Marlin的优势中已经提到。

M112:

紧急停止

所有进行中的动作都会被立即终止,然后关掉打印机。

所有电机和加热器都会被关掉.,可以按Reset按钮(板上)以重启。

M114:

获取当前位置

M114将获取当前的坐标值,将结果发送到串口。

结果以X:

0.00Y:

0.00Z:

0.00E:

0.00的形式显示。

M115:

获取固件信息

将固件信息以FIRMWARE_NAME:

MarlinV1;Sprinter/grblmas

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1