为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

G-M指令详解

2022-06-18 2页 doc 155KB 14阅读

用户头像 个人认证

春光

暂无简介

举报
G-M指令详解概述众所周知;3D打印机执行的是一堆指令;这一堆指令都来源于一个指令集;即G-M指令集..而固件就负责解释这些指令;并将命令指派给电子原件;从而完成打印任务..因此;固件和指令集必须相互配合;否则打印机不会正常工作..开源的3D打印机使用的固件多种多样;但和这些固件匹配的指令集绝大多数指令都相同;即RepRapG-M指令集..由于Marlin固件使用的最为广泛;笔者就以Marlin固件的指令集为例作叙述..了解G-M指令有什么用这用处可大了..帮助使用者更方便地调试打印机;检测打印机的问题;扩展打印机菜单功能…反正好处多多;不...
G-M指令详解
概述众所周知;3D打印机执行的是一堆指令;这一堆指令都来源于一个指令集;即G-M指令集..而固件就负责解释这些指令;并将命令指派给电子原件;从而完成打印任务..因此;固件和指令集必须相互配合;否则打印机不会正常工作..开源的3D打印机使用的固件多种多样;但和这些固件匹配的指令集绝大多数指令都相同;即RepRapG-M指令集..由于Marlin固件使用的最为广泛;笔者就以Marlin固件的指令集为例作叙述..了解G-M指令有什么用这用处可大了..帮助使用者更方便地调试打印机;检测打印机的问题;扩展打印机菜单功能…反正好处多多;不管你信不信;反正我是信了..废话不多说;进入正题..G-M指令集就是一些以G或M开头的代码;有时候还会掺杂一些以其其他字母以标示参数意义;比如T、S、F、P等..具体意义见下表;表中nnn表示数字..字母意义Gnnn标准GCode命令;例如移动到一个坐标点..MnnnRepRap定义的命令;例如打开一个冷却风扇Tnnn选择工具代码..在RepRap中;工具通常是挤出头extruder..Snnn命令参数;例如马达的电压..Pnnn命令参数;频率:1次每毫秒..XnnnX坐标;通常用于移动命令..YnnnY坐标;通常用于移动命令..ZnnnZ坐标;通常用于移动命令..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:ReportSDprintstatusSD打印状态M28:BeginwritetoSDcard向SD卡中写文件M28filename.gco将创建filename.gco文件若存在;则覆盖..M29:StopwritingtoSDcard停止写M29filename.gco关闭M28打开的文件..M30:DeleteafileontheSDcard删除SD卡中的文件M30filename.gco将删除该文件..M31:OutputtimesincelastM109orSDcardstarttoserialM31将输出时间;从上一个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/grblmashupforgen6FIRMWARE_URL:https://github.com/ErikZalm/Marlin/PROTOCOL_VERSION:1.0MACHINE_TYPE:MendelEXTRUDER_COUNT:1UUID:00000000-0000-0000-0000-000000000000的形式发送到串口..M117:显示消息M117hello会将字符串hello显示在显示屏上如果硬件带有显示屏的话..M119获取限位开关状态M119会向打印机请求限位开关状态;并发送到串口..显示结果的形式为x_min:openx_max:openy_min:openy_max:openz_min:openz_max:open..M140设置加热床目标温度并给出应答M140S50会将打印机加热床的目标温度设置为50°;然后给出应答;接收下一条指令..M190设置加热床目标温度并等待;使用方法和M109类似;但不支持自动温度控制..M201-设置最大打印加速度M202-设置最大移动加速度使用方法为M201X1000Y1000;单位为毫米/秒平方..M203-设置电机最大速度M203X200Y200;单位是毫米/秒M204-设置默认加速度M204S3000T7000表示将普通XY运动加速度设置为3000;挤出加速度为7000;单位为毫米/秒平方..M205-高级设置M205后面可以接S、T、B、X、Z、E参数..S表示最小打印速度;单位为毫米/秒;T表示最小空驶速度;单位为毫米/秒;B表示最小线段打印时间;单位为毫秒;X表示最大xy_jerk速度;Z表示最大z_jerk速度;E表示最大e_jerk速度..B参数的存在是为了防止缓存区掏空;而jerk的意思为猛拉;按笔者理解;应该表示当速度改变不大于jerk的值时;不需要通过加速或减速去改变速度;而是直接改变速度..M206:设置归位偏差M206X10.0Y10.0Z-0.4会对之前的归位位置的坐标值加上M206后面相应的参数;如果原来的归位坐标值为0;0;0;那么现在归位位置的坐标值为10.0;10.0;-0.4..G92也可以达到相同的效果;比如G28G92X10.0Y10.0Z-0.4..这个功能还可以用来简化调平工作;如果打印平台的初始位置不在Z=0的位置;可以通过设置归位偏差来校正..M207:设置回抽M207S<长度>F<速度>Z<提升距离>会在使打印机做出回抽动作..回抽长度为S参数;单位是毫米;回抽速度为F参数;单位是毫米/秒;可以选择在回抽时抬升打印机喷头;抬升高度为Z参数;单位是毫米..M208设置回抽后恢复M208S<长度>F<速度>会在回抽之后恢复;即挤出之前回抽的长度与S参数之和;挤出速度为F参数..M218设置喷头偏移量M218是针对多喷头打印机设置的..M218T<喷头索引>XY指明了第T个喷头相对于第一个喷头的位置..M220设置速度倍率M220S<百分比>将设置打印头运动速度倍率;即打印头运动的速率会乘以这个百分比..M221设置挤出速度倍率M220S<百分比>将设置挤出速度倍率;即挤出的速率会乘以这个百分比..控制出丝量就是通过这个参数去控制..M226等待M226P<引脚>S<状态>会让打印机等待直到P引脚达到S状态..M250设置LCD显示屏对比度M250C<对比度>会将LCD显示屏的对比度设置为C值;范围为0—63..M300播放声音M300S<频率>P<时间>将播放一段声音;时间为P毫米;频率为S参数..这需要打印机带有蜂鸣器..M301设置喷头温控PID参数M301P1I2D3将打印机喷头温度控制PID参数设置为P=1;I=2;D=3..M302允许冷挤出使打印机喷头温度低于Marlin固件中设置的冷挤出温度时;也可以进行挤出回抽动作..用于在调试打印机时;校准挤出机分辨率和挤出机电机转向..M303调试喷头的PID参数M303S<温度>会自动调试PID参数;S参数是目标温度;默认为150°..M304设置加热床PID参数M500:保存修改;将数据保存在EEPROM上M501:从EEPROM读取设置echo:HardcodedDefaultSettingsLoadedecho:Stepsperunit:echo:M92X94.11Y88.88Z400.00E101.91echo:Maximumfeedratesmm/s:echo:M203X500.00Y500.00Z5.00E25.00echo:MaximumAccelerationmm/s2:echo:M201X3000Y3000Z100E5000echo:Acceleration:S=acceleration;T=retractaccelerationecho:M204S1000.00T2000.00echo:Advancedvariables:S=Minfeedratemm/s;T=Mintravelfeedratemm/s;B=minimumsegmenttimems;X=maximumXYjerkmm/s;Z=maximumZjerkmm/s;E=maximumEjerkmm/secho:M205S0.00T0.00B20000X20.00Z0.40E5.00echo:Homeoffsetmm:echo:M206X0.00Y0.00Z0.00echo:PIDsettings:echo:M301P22.20I1.08D114.00M502:重置为出厂模式还需要M500来保存这个设置..M503读取当前设置M999由于错误导致关机重启后记这些G、M代码是笔者从Marlin源代码中提取出来的;绝大多数被列举出来;还有一些指令时针对自动调平、Delta机器以及其他很不常用的指令;没有列举出来..希望这些中文解释能够为3D打印机玩家带来一些帮助..
/
本文档为【G-M指令详解】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索