DIY 3D打印机 G-M指令详解
- 格式:doc
- 大小:63.00 KB
- 文档页数:7
加工中心常用的G代码和M指令在现代机械加工领域,加工中心凭借其高精度、高效率和高自动化程度,成为了生产制造中的重要设备。
而要熟练操作加工中心,掌握其常用的 G 代码和 M 指令是必不可少的。
G 代码是准备功能指令,用于控制机床的运动方式和插补方式等。
下面我们先来了解一些常见的 G 代码。
G00 快速定位指令,使刀具以最快的速度移动到指定位置。
这个指令常用于刀具的快速接近和退刀。
G01 直线插补指令,让刀具沿着直线轨迹移动。
在给定了终点坐标和进给速度后,刀具就会按照指定的直线进行切削加工。
G02 和 G03 分别是顺时针圆弧插补和逆时针圆弧插补指令。
通过指定圆弧的起点、终点、圆心坐标或者半径,以及进给速度,机床就能按照要求加工出圆弧轮廓。
G04 是暂停指令,用于在加工过程中进行短暂的停顿,例如为了保证加工质量或者让冷却液充分作用。
G17、G18、G19 分别用于选择不同的平面,G17 为 XY 平面,G18 为 XZ 平面,G19 为 YZ 平面。
G20 和 G21 则用于单位的选择,G20 表示英制单位,G21 表示公制单位。
G28 是返回参考点指令,机床会自动返回设定的参考点位置。
G40、G41、G42 分别是刀具半径补偿取消、左补偿和右补偿指令。
在进行轮廓加工时,使用刀具半径补偿可以简化编程,提高加工精度。
G43 和 G44 是刀具长度补偿指令,用于补偿刀具长度的差异,确保加工深度的准确性。
G54 G59 是工件坐标系选择指令,可以根据需要设定多个坐标系,方便加工不同的工件或者同一工件的不同部位。
M 指令是辅助功能指令,主要控制机床的各种辅助动作。
M00 程序暂停指令,当程序执行到这一指令时,机床会停止运行,按下启动按钮后继续执行。
M02 程序结束指令,机床会停止所有动作,并复位。
M03 主轴正转指令,M04 主轴反转指令,M05 主轴停止指令。
通过这些指令可以控制主轴的旋转方向和停止。
M06 是换刀指令,用于更换刀具。
G、M功能指令简述为了让数控机床按要求进行切削加工,人们就要用程序形式给它输入必要的指令来加以控制。
这种程序指令的规则和格式必须严格符合相应机床(数控系统)的要求和规定,否则机床(数控系统)就无法工作。
不同机床(数控系统)的功能指令有其共性也有不尽相同的地方,这里仅就一些HELLER加工中心常用的基本功能指令进行简单说明。
准备功能和辅助功能是程序段的基本组成部分,是指定工艺过程各种运动和操作特征的核心。
一、准备功能指令准备功能指令,又称G指令、G代码,它由字母和数字组成,下面列举HELLER 加工中心常用的准备功能指令,见表模态与非模态指令编程中的指令有模态指令和非模态指令,模态指令也称续效指令,一经程序段中指定,便一直有效,与上段相同的模态指令可省略不写,直到以后程序中重新指定同组指令时才失效。
而非模态指令(非续效指令)其功能仅在本程序段中有效,与上段相同的非模态指令不能省略不写。
二、准备功能指令的应用1、G0 快速点定位编程: G0 X…Y…Z…参数说明: XYZ 直角坐标中的终点功能:快速移动使刀具快速定位,此功能不适用于工件加工。
操作顺序:利用G0编程的刀具运动以最大允许速度执行(快进),快进速度分别在机床各轴数据中确定。
如果快进运动在几个轴上同步执行,那么快进速度由要求轨迹段时间最长的轴确定。
使用G0指令时要注意刀具是否和工件及夹具发生干涉,忽略这一点,就容易发生碰撞,而在快速状态下的碰撞就更加危险。
附注: G0是模态指令编程示例: G0用于接近起始位置或换刀点,退刀等。
N10 G90 S400 M3 绝对尺寸编程,主轴顺时针转动,转速为400r/min N20 G0 X30 Y20 Z2 快进到起始位置N30 G1 Z-5 F100 D1 直线插补进刀,S=400,F=100,刀具长度补偿D1N40 X80 Y65 直线插补到终点位置N50 G0 Z100 退刀N60 M30 程序结束2、G1 直线插补编程: G1 X…Y…Z…F…参数说明: XYZ 直角坐标中的终点F 进给率,mm/min功能:利用G1,刀具可以作直线或斜线运动,这些直线和斜线运动可以是平面上的,也可以是空间上的,三轴联动就是空间上的运动。
介绍本页面描述了G代码在RepRap固件中的使用,以及它们如何工作。
G代码还是可扩展的。
一个典型的G代码发送到RepRap机器:N3 T0*57N4 G92 E0*67N5 G28*22N6 G1 F1500.0*82N7 G1 X2.0 Y2.0 F3000.0*85N8 G1 X3.0 Y3.0*33(该行结束要标记<NL>和<CR>。
如果你想使用Arduino的串行接口手动输入reprapGCodes,在底部应选择“NL&CR”。
)这是不准确的,固件接受的单<NL>,以及单<CR>,或其组合。
主机应该接受所有四个组合RepRapG代码字段本节介绍了首字母的定义。
定义的数字nnn代表。
数字可以是整数,也可以包含一个小数点,根据上下文。
例如X坐标可以是整数(X175)或小数(X17.62),而试图选择挤出数2.76将毫无意义。
G代码的注释:N3 T0*57 ;This is a commentN4 G92 E0*67; So is thisN5 G28*22将会被RepRap忽略,就如空白行。
但最好它能在发送命令前与电脑主机剥离,这可以节省带宽。
个别命令检查N和*例如:N123 [G代码...] * 71这些行号和校验。
RepRap固件对本地计算值的校验和检查,如果它们不同,就要求一个给定的数字线的重复传输。
你可以不要这两个- RepRap仍然可以工作,但它不会做检查。
你必须两个都要或者都不要。
The checksum "cs" for a GCode string "cmd" (including its line number) is computed by exor-ing the bytes in the string up to and not including the * character as follows:intcs = 0;for(i = 0; cmd[i] != '*' &&cmd[i] != NULL; i++)cs = cs ^ cmd[i];cs&= 0xff; // 防御性编程...这个值作为一个十进制整数*字符命令后追加值。
数控加工核心时常使用的G代码战M指令之阳早格格创做G代码----功能--------------圆法1.G00--------赶快移动圆法:G00X-----Y-----Z----2.G01--------曲线插补圆法:G01X-----Y-----Z----F-----3.G02--------顺圆插补圆法:G02X-----Y-----Z----R----- G02X-----Y-----Z----I-----J-----K-----4.G03--------顺圆插补圆法:G03X-----Y-----Z-----R------ G03X-----Y-----Z----- I-----J-----K-----5.G04--------停刀,准确停行6.G15--------极坐标系指令与消7.G16--------极坐标系指令8. 8.G17--------采用XY仄里9.9.G18--------采用XZ仄里10. 10.G19--------采用YZ仄里11. 11.G20--------英寸输进12. 12.G21--------毫米输进13. 13.G28--------返回参照面14. 14.G29--------从参照面返回15.G40--------刀具半径补偿与消16. 16.G41--------刀具半径左补偿17. 17.G42--------刀具半径左补偿18. 18.G43--------正背刀具少度补偿19.19.G44--------背背刀具少度补偿20. 20.G49--------刀具少度补偿与消21.21.G50--------比率缩搁与消22. 22.G51--------比率缩搁灵验23.G54~G59采用工件坐标系1~~~624.24.G68--------坐标转化25.G69--------坐标转化与消26.G73--------下速深孔钻循环圆法:G73X---Y---Z---R---Q---F---K---27.G74--------左旋攻丝循环圆法:G74X---Y---Z---R---Q---F---K---28.G76--------粗镗循环圆法:G76X---Y---Z---R---Q---P---F---K---29.G80--------与消牢固循环30.G81--------钻孔循环圆法:G81X---Y---Z---R---F--- 31.G83--------排屑钻孔循环圆法:G83X---Y---Z---R---Q---F---K---32.G84--------刚刚性攻丝循环圆法:G84X---Y---Z---R---P---F---K---33.G90--------千万于值编程34.G91--------删量值编程35.G94--------每分钟进给36.G95--------每转进给37.G98--------牢固循环返回到参照面38.G99--------牢固循环返回到R面时常使用的辅帮功能M代码M代码----功能1. M00--------步调停行2. M01--------采用停行3. M02--------步调中断4. M03--------主轴正转5. M04--------主轴反转6. M05--------主轴停行转化7.M06--------换刀指令8.M08--------切削液启9. M09--------切削液闭10.M19-------主轴定位11.M30-------步调中断,并返回步调起初12.M98-------子步调调用13.M99-------子步调中断,并返回主步调天面码中英笔墨母的含意天面------功能---------含意1.D------------补偿号--------刀具半径补偿指令2.F------------进给速度------给速度的指令3.G------------准备功能-----指令动做办法4.H------------补偿号--------补偿号的指定5.I-------------坐标字--------圆弧核心X轴背坐标6.J-------------坐标字--------圆弧核心Y轴背坐标7.K------------坐标字--------圆弧核心Z轴背坐标8.L------------沉复次数-----牢固循环及子步调的沉复次数9.M-----------辅帮功能-----机床启/闭指令10.N----------程序号--------步调段程序号11.O----------步调号--------步调号,子步调号的指定12.P----------------------------久停或者步调中某功能启初使用的程序号13.Q----------------------------牢固循环末行段号或者牢固循环中定距14.R----------坐标字---------牢固循环中定距离或者圆弧半径的指令15.S----------主轴功能------主轴转速的指令16.T----------刀具功能------刀具编号的指令17.X---------坐标字----------X轴的千万于坐标值或者久停时间18.Y---------坐标字----------Y轴的千万于坐标19.Z---------坐标字----------Z轴的千万于坐标。
数控G指令M指令一览表G00 快速定位G01 直线补间切削G02 圆弧补间切削CW(顺时针)G03 圆弧补间切削CCW(逆时针)G02.3 指数函数补间正转G03.3 指数函数补间逆转G04 暂停G05 高速高精度制御 1G05.1 高速高精度制御 2G06~G08没有G07.1/107 圆筒补间G09 正确停止检查G10 程式参数输入/补正输入G11 程式参数输入取消G12 整圆切削CWG13 整圆切削CCWG12.1/112 极坐标补间有效G13.1/113 极坐标补间取消G14没有G15 极坐标指令取消G16 极坐标指令有效G17 平面选择 X-YG18 平面选择 Y-ZG19 平面选择 X-ZG20 英制指令G21 公制指令G22-G26没有G27 参考原点检查G28 参考原点复归G29 开始点复归G30 第2~4参考点复归G30.1 复归刀具位置1G30.2 复归刀具位置2G30.3 复归刀具位置3G30.4 复归刀具位置4G30.5 复归刀具位置5G30.6 复归刀具位置6G31 跳跃机能G31.1 跳跃机能1G31.2 跳跃机能2G31.3 跳跃机能3G32没有G33 螺纹切削G34 特别固定循环(圆周孔循环)G35 特别固定循环(角度直线孔循环)G36 特别固定循环(圆弧)G37 自动刀具长测定G37.1 特别固定循环(棋盘孔循环)G38 刀具径补正向量指定G39 刀具径补正转角圆弧补正G40 刀具径补正取消G41 刀具径补正左G42 刀具径补正右G40.1 法线制御取消G41.1 法线制御左有效G42.1 法线制御右有效G43 刀具长设定(+)G44 刀具长设定(—)G43.1 第1主轴制御有效G44.1 第2主轴制御有效G45 刀具位置设定(扩张)G46 刀具位置设定(缩小)G47 刀具位置设定(二倍)G48 刀具位置设定(减半)G47.1 2主轴同时制御有效G49 刀具长设定取消G50 比例缩放取消G51 比例缩放有效G50.1 G指令镜象取消G51.1 G指令镜象有效G52 局部坐标系设定G53 机械坐标系选择G54 工件坐标系选择1G55 工件坐标系选择2G56 工件坐标系选择3G57 工件坐标系选择4G58 工件坐标系选择5G59 工件坐标系选择6G54.1 工件坐标系选择扩张48组G60 单方向定位G61 正确停止检查模式G61.1 高精度制御G62 自动转角进给率调整G63 攻牙模式G63.1 同期攻牙模式(正攻牙)G63.2 同期攻牙模式(逆攻牙)G64 切削模式G65 使用者巨集单一呼叫G66 使用者巨集状态呼叫AG66.1 使用者巨集状态呼叫BG67 使用者巨集状态呼叫取消G68 坐标回转有效G69 坐标回转取消G70 使用者固定循环G71 使用者固定循环G72 使用者固定循环G73 固定循环(步进循环)G74 固定循环(反向攻牙)G75 使用者固定循环G76 固定循环(精搪孔)G77 使用者固定循环G78 使用者固定循环G79 使用者固定循环G80 固定循环取消G81 固定循环(钻孔/铅孔)G82 固定循环(钻孔/计数式搪孔)G83 固定循环(深钻孔)G84 固定循环(攻牙)G85 固定循环(搪孔)G86 固定循环(搪孔)G87 固定循环(反搪孔)G88 固定循环(搪孔)G89 固定循环(搪孔)G90 绝对值指令G91 增量值指令G92 机械坐标系设定G93 逆时间进给G94 非同期进给(每分进给)G95 同期进给(每回转进给)G96 周速一定制御有效G97周速一定至于取消G98 固定循环起始点复归G99 固定循环 R点复归G114.1 主轴同期制御G100~225 使用者巨集(G码呼叫)最大10个M00 程式停止(暂停)M01 程式选择性停止/选择性套用M02 程序结束M03 主轴正转M04 主轴反转M05 主轴停止M06 自动刀具交换M07 吹气启动M08 切削液启动M09 切削液关闭M10 吹气关闭→M09也能关吹气M11《斗笠式》主轴夹刀M12 主轴松刀M13 主轴正转+切削液启动M14 主轴反转+切削液启动M15 主轴停止+切削液关闭M16— M18没有M19 主轴定位M20 ——没有M21 X轴镜象启动M22 Y轴镜象启动M23 镜象取消M24 第四轴镜象启动M25 第四轴夹紧M26 第四轴松开M27 分度盘功能M28 没有M29 刚性攻牙M30 程式结束/自动断电M31 —— M47 没有M48 深钻孔启动M49 —— M51 没有M52 刀库右移M53 刀库左移M54 —— M69 没有M70 自动刀具建立M71 刀套向下M72 换刀臂60°M73 主轴松刀M74 换刀臂180°M75 主轴夹刀M76 换刀臂0°M77 刀臂向上M78 —— M80 没有M81 工作台交换确认M82 工作台上M83 工作台下M84 工作台伸出M85 工作台缩回M86 工作台门开M87 工作台门关M88 —— M97 没有M98 调用子程序M99 子程序结束。
加工中心常用的G代码和M指令在现代机械加工领域,加工中心凭借其高精度、高效率和高自动化程度,成为了制造行业的重要设备。
而要充分发挥加工中心的性能,熟练掌握其常用的 G 代码和 M 指令是关键。
G 代码是准备功能指令,用于控制机床的运动方式和轨迹。
以下是一些常见的 G 代码:G00 快速定位指令。
它使刀具以最快的速度移动到指定的位置,常用于刀具的快速接近和远离工件。
G01 直线插补指令。
用于让刀具沿着直线轨迹移动,需要指定移动的终点坐标和进给速度。
G02 和 G03 分别是顺时针圆弧插补和逆时针圆弧插补指令。
通过指定圆弧的终点坐标、圆心坐标或半径,以及进给速度,来控制刀具沿圆弧轨迹运动。
G04 暂停指令。
在程序执行过程中,需要短暂停留一段时间时使用,常用于钻削时的孔底暂停,以保证加工质量。
G17、G18、G19 分别用于选择 XY 平面、XZ 平面和 YZ 平面。
G20 和 G21 用于设定单位,G20 为英制单位,G21 为公制单位。
G28 回参考点指令。
它可以使刀具自动返回机床坐标系的参考点。
G30 第二参考点返回指令。
除了机床的基本参考点,有时还会设定第二参考点,使用该指令可使刀具返回第二参考点。
G40、G41、G42 分别是刀具半径补偿取消、左补偿和右补偿指令。
在进行轮廓加工时,通过合理使用刀具半径补偿,可以简化编程,并提高加工精度。
G43、G44、G49 分别是刀具长度正补偿、刀具长度负补偿和刀具长度补偿取消指令。
用于补偿刀具长度的差异,确保加工深度的准确性。
G54 至 G59 是工件坐标系选择指令。
可以根据需要设置多个工件坐标系,方便加工不同的工件或同一工件的不同部位。
M 指令是辅助功能指令,主要用于控制机床的各种辅助动作和状态。
常见的 M 指令有:M00 程序暂停。
当程序执行到M00 时,机床的所有动作都会停止,直到按下启动按钮,程序才继续执行。
M01 选择暂停。
与 M00 类似,但只有在机床操作面板上的“选择停止”按钮被按下时,才会暂停。
// 看这里的G代码描述: /handbook/gcode/g-code.html// /wiki/Mendel_User_Manual:_RepRapGCodes//已被实施的代码//-------------------// G0 -> G1// G1 - 协调运动X Y Z E// G2 - 顺时针旋转ARC// G3 - 逆时针旋转ARC// G4 - 暂停S<seconds> or P<milliseconds>// G10 - 按照M207的设置退丝// G11 - retract recover filament according to settings of M208// G28 - 所有轴归零// G29 - 带着z轴的探针,进行复杂的归零。
(按照在Auto bed leveling中的配置)要在G28之后执行才有效// G30 - Single Z Probe, probes bed at current XY location.// G90 - 使用绝对坐标系// G91 - 使用相对坐标系// G92 - 将当前位置设为给定值(例如:G92 X0 Y0 Z0,即可把当前位置强制设置为零点)// M 代码// M0 - 无条件停止- 等待用户按LCD面板上的按钮(只有当ULTRA_LCD被使能的时候)// M1 - 和M0相同// M17 - 使能(锁死)所有的步进电机// M18 - 取消使能(释放)所有的步进电机;与M84相同// M20 - 列出SD卡的内容,通过串口发回// M21 - 初始化SD卡// M22 - 弹出SD卡// M23 - 选择SD卡文件(M23 filename.g)// M24 - 启动/恢复SD卡打印// M25 - 暂停SD卡打印// M26 - Set SD position in bytes (M26 S12345)// M27 - 报告SD卡打印状态// M28 - Start SD write (M28 filename.g)// M29 - Stop SD write// M30 - 删除SD卡文件(M30 filename.g)// M31 - Output time since last M109 or SD card start to serial// M32 - Select file and start SD print (Can be used _while_ printing from SD card files):// syntax "M32 /path/filename#", or "M32 S<startpos bytes> !filename#"// Call gcode file : "M32 P !filename#" and return to caller file after finishing (similar to #include).// The '#' is necessary when calling from within sd files, as it stops buffer prereading// M42 - 通过指令M42 Px Sy来设置引脚x的值(0或1),省略参数Px的话,会默认为配置led引脚。
// 看这里的G代码描述: /handbook/gcode/g-code.html// /wiki/Mendel_User_Manual:_RepRapGCodes//已被实施的代码//-------------------// G0 -> G1// G1 - 协调运动X Y Z E// G2 - 顺时针旋转ARC// G3 - 逆时针旋转ARC// G4 - 暂停S<seconds> or P<milliseconds>// G10 - 按照M207的设置退丝// G11 - retract recover filament according to settings of M208// G28 - 所有轴归零// G29 - 带着z轴的探针,进行复杂的归零。
(按照在Auto bed leveling中的配置)要在G28之后执行才有效// G30 - Single Z Probe, probes bed at current XY location.// G90 - 使用绝对坐标系// G91 - 使用相对坐标系// G92 - 将当前位置设为给定值(例如:G92 X0 Y0 Z0,即可把当前位置强制设置为零点)// M 代码// M0 - 无条件停止- 等待用户按LCD面板上的按钮(只有当ULTRA_LCD被使能的时候)// M1 - 和M0相同// M17 - 使能(锁死)所有的步进电机// M18 - 取消使能(释放)所有的步进电机;与M84相同// M20 - 列出SD卡的内容,通过串口发回// M21 - 初始化SD卡// M22 - 弹出SD卡// M23 - 选择SD卡文件(M23 filename.g)// M24 - 启动/恢复SD卡打印// M25 - 暂停SD卡打印// M26 - Set SD position in bytes (M26 S12345)// M27 - 报告SD卡打印状态// M28 - Start SD write (M28 filename.g)// M29 - Stop SD write// M30 - 删除SD卡文件(M30 filename.g)// M31 - Output time since last M109 or SD card start to serial// M32 - Select file and start SD print (Can be used _while_ printing from SD card files):// syntax "M32 /path/filename#", or "M32 S<startpos bytes> !filename#"// Call gcode file : "M32 P !filename#" and return to caller file after finishing (similar to #include).// The '#' is necessary when calling from within sd files, as it stops buffer prereading// M42 - 通过指令M42 Px Sy来设置引脚x的值(0或1),省略参数Px的话,会默认为配置led引脚。
精雕机mdi模式代码1. 什么是精雕机mdi模式代码?精雕机mdi模式代码是一种用于控制数控机床的代码,它被广泛应用于制造业中的精密加工过程。
MDI代表手动数据输入,这种模式允许操作员直接在机床控制台上输入代码来控制机床的动作和操作。
2. 精雕机mdi模式代码的基本语法在精雕机mdi模式代码中,常用的语法包括:2.1. G代码G代码是精雕机mdi模式代码中最常用的一种,它用于定义机床的动作和操作。
以下是一些常见的G代码及其含义:•G00:快速定位,用于将刀具快速移动到目标位置。
•G01:线性插补,用于在两个点之间进行直线插补运动。
•G02:顺时针圆弧插补,用于在两个点之间进行顺时针圆弧插补运动。
•G03:逆时针圆弧插补,用于在两个点之间进行逆时针圆弧插补运动。
2.2. M代码M代码用于定义机床的辅助功能和操作。
以下是一些常见的M代码及其含义:•M03:主轴正转,用于启动主轴的正转。
•M04:主轴反转,用于启动主轴的反转。
•M05:主轴停止,用于停止主轴的旋转。
•M08:冷却液开,用于启动冷却液的供给。
•M09:冷却液关,用于停止冷却液的供给。
2.3. 其他代码除了G代码和M代码外,精雕机mdi模式代码还可以包括其他一些特殊的代码,用于定义坐标系、刀具补偿、工件坐标系等。
这些代码的具体语法和含义会根据不同的机床和控制系统而有所差异。
3. 精雕机mdi模式代码的应用场景精雕机mdi模式代码广泛应用于各种精密加工领域,例如模具制造、雕刻、铣削等。
它具有以下几个主要的应用场景:3.1. 雕刻和雕塑在雕刻和雕塑领域,精雕机mdi模式代码可以用于控制机床进行复杂的曲线运动,实现精细的雕刻效果。
通过合理的编写和优化代码,可以实现高效、精确的雕刻过程。
3.2. 模具制造在模具制造领域,精雕机mdi模式代码可以用于控制机床进行精密的切削和加工工艺。
通过编写合适的代码,可以实现高效、精确的模具制造过程,提高生产效率和产品质量。
G-M指令详解来源:未知更新时间:2015-02-05 11:11 点击次数:629概述众所周知,3D打印机执行的是一堆指令,这一堆指令都来源于一个指令集,即G-M指令集。
而固件就负责解释这些指令,并将命令指派给电子原件,从而完成打印任务。
因此,固件和指令集必须相互配合,否则打印机不会正常工作。
开源的3D打印机使用的固件多种多样,但和这些固件匹配的指令集绝大多数指令都相同,即RepRap G-M指令集。
由于Marlin 固件使用的最为广泛,笔者就以Marlin固件的指令集为例作叙述。
了解G-M指令有什么用?这用处可大了。
帮助使用者更方便地调试打印机,检测打印机的问题,扩展打印机菜单功能…反正好处多多,不管你信不信,反正我是信了。
废话不多说,进入正题。
G-M指令集就是一些以G或M开头的代码,有时候还会掺杂一些以其其他字母以标示参数意义,比如T、S、F、P等。
具体意义见下表,表中nnn表示因此,能够被Marlin固件识别的代码应该是像下面的样子:详解注释G-Code一行中分号“;”后面的内容为解释性语句,即注释。
固件会忽略其内容。
为了减少通信量,可以把注释信息都去掉。
标记代码N 和*,比如N123 [...G Code 写在这里...] *71。
这是行码和标记码。
RepRap 的固件会以一个本地计算的值来对比标记码,如果两者值不同,就会要求重复输入该条指令。
行码和检查码都可以去掉,RepRap仍会工作, 但它不会做检查。
你必须同时使用,或同时放弃使用。
检查码cs 是通过对对应的指令(包括它的的行码)的原始字节数据进行异或位运算得出的。
检查码cs的值即是其*符号右边的十进制数字,RepRap固件希望每次命令的行代码都是逐次增加1的大小,不然的话,它会返回一个错误。
当然你也可以发送一个M110命令(详情请看下面)强行重置机器。
行码和检查码是为了减少信号干扰。
延时G 命令RepRap固件接收到这些指令后,会先存储在一个循环队列缓存里再执行。
这意味着固件在接收到一条指令后马上可以传输下一条。
这也意味着一组线段可以没有间断的情况下连续打印。
为了实现指令流的控制,当接受到可缓存的指令时,如果固件把它成功放到本地缓存里,就立即给出应答,如果本地缓存已满,则会延时等到缓存有空出的位置时,才给出应答,然后才可以传输指令。
G0: Rapid move 快速移动比如G0 X10 Y20,如果使用绝对定位的话,就命令打印机喷头快速移动到X=10,Y=20的位置。
G0指令不能包含挤丝参数,只能包含X、Y、Z参数,即所谓的空驶动作。
G1: Controlled move 可控移动比如G1 X10 Y20 E2.4,G1指令中可以包含挤丝动作。
Marlin会尝试从每一行指令中读取速度值,然后再移动开始之前加速或减速到这个速度值,然后执行移动指令,而不会在移动过程中改变速度。
下面的几句指令告诉打印机速度先从当前的1500加速到3000,执行第二句的移动动作,然后再减速到1500,再执行第三句的移动动作。
如果E轴坐标采用绝对定位的话,而当前行中的E坐标值小于上一个E坐标值,那么打印机就会回抽,这可以有效防止毛刺现象。
G2: Controlled Move Arc Clockwise可控顺时针圆弧移动比如G2 X100 Y100 I50 J60 E30,表示从当前点通过一个顺时针圆弧线移动到(100 ,100)位置,该圆弧的圆心的位置是当前点坐标平移(50,60)得到的位置,在此过程中还可以控制挤丝动作。
G3: Controlled Move Arc Counter-Clockwise 可控逆时针圆弧移动比如G2 X100 Y100 I50 J60 E30,表示从当前点通过一个逆时针圆弧线移动到(100 ,100)位置,该圆弧的圆心的位置是当前点坐标平移(50,60)得到的位置,在此过程中还可以控制挤丝动作。
G28: Move to Origin 移动到原点该命令会是机器的挤出机回归到原点。
准确的说,每个轴上移动到初始位置。
需要注意,为了快速归位,移动过程会不断加速,当碰到限位开关之后,它会做一次大约1mm的往返移动,来保证归位位置的精确度。
如果在G28后面加上坐标轴参数,只有在涉及到的坐标轴方向上才会归位,比如G28 X10和G28 X0都会只让打印机在X轴上归位。
而不会对Y方向和Z方向归位。
(X后面的数字会被忽略)。
而单纯的G28指令则会在三个轴上同时归位,顺序是X轴、Y轴、Z轴。
G29-G30: Bed probing 加热床探测(需要使用自动调平功能)G29会让打印机在加热床的3个点或者4个点(根据固件配置是三角探测还是四角探测),该指令必须在归位之后才生效。
G30会让打印机在当前的XY点处进行Z探测。
即时G 指令以下指令也可以被缓存, 但是直到所有之前缓存的指令被执行完,并且该指令执行后,才会给出应答。
因此主机会等待指令执行完毕(才收到的应答). 这些指令导致的短暂停顿不会影响机器的正常性能。
G4: Dwell 停顿G4 P1000会让打印机停顿1000毫秒,在停顿过程中打印机仍然可以被控制,比如设置挤出头温度。
G4 S10会让打印机停顿10秒。
G10: 根据M207的配置进行回抽M207包含回抽距离,回抽速度,回抽时Z提升等信息。
G11: 根据M208的配置进行回抽后恢复M208包含回抽后挤出距离和挤出速度等信息。
G20: Set Units to Inches 使用英寸作为单位从现在开始,使用英寸作单位。
G21: Set Units to Millimeters 使用毫米作为单位从现在开始,使用毫米作单位。
G90: Set to Absolute Positioning 设置成绝对定位从现在开始,使用绝对坐标定位方式。
即所有的坐标值都是基于一个统一的参考点给出的。
G91: Set to Relative Positioning 设置成相对定位从现在开始,使用相对坐标定位方式。
即所有当前指令的坐标值都是以上一个坐标位置为参考的。
G92: Set Position 设置位置设置各轴当前的坐标值,比如G92 E15指定当前耗材的位置在15毫米处。
G92 X100指定打印机喷头当前的X坐标值为100。
这个指令可以用来指定绝对零点,特别是针对E轴。
即时M指令M0/M 1: Unconditional Stop 停止无条件停止打印机的一切动作,等待用户按LCD控制器上的按钮。
M17: Enable/Power all stepper motors 启动所有步进电机M18: Disable all stepper motors 关闭所有步进电机给所有的步进电机断电,从而可以手动移动滑块。
M84指令也是这个功能。
M20: List SD card 读取SD卡将SD卡根目录下的所有内容的名称做出列表,发送到串口,可以使用串口监视器看到。
M21: Initialize SD card 初始化SD卡初始化SD卡。
如果在打印机通电时插入SD卡,会默认初始化SD卡。
使用SD卡其他指令时,SD卡一定要初始化。
M22: Release SD card 弹出SD卡安全弹出SD卡。
M23: Select SD file 选择SD卡的文件M23 filename.gco会选中filename.gco这个文件然后准备打印该文件。
需要注意文件名要满足8.3格式约定(即主文件名不能超过8个字符,扩展名不能超过3个字符)。
M24: Start/resume SD print 开始SD卡的打印使打印机开始打印M23指令选中的文件。
M25: Pause SD print 暂停SD卡打印打印机在当前位置暂停打印M23选中的文件。
M26: Set SD position 设置SD卡位置以字节为单位设置SD卡的位置。
M27: Report SD print status 报告SD打印状态M28: Begin write to SD card 向SD卡中写文件M28 filename.gco将创建filename.gco文件(若存在,则覆盖)。
M29: Stop writing to SD card 停止写M29 filename.gco关闭M28打开的文件。
M30: Delete a file on the SD card 删除SD卡中的文件M30 filename.gco 将删除该文件。
M31: Output time since last M109 or SD card start to serialM31将输出时间,从上一个M109指令开始或SD卡安装成功开始计时。
M32: Select file and start SD print 选择SD卡中的一个文件并开始打印M80: ATX Power On 打开ATX电源当使用的是可以开关的电源才有效。
M81: ATX Power Off 关闭ATX电源M82: 设置挤出机使用绝对坐标模式这是默认的设置。
M83: 设置挤出机为相对坐标模式与M82相反。
M84: 给所有步进电机断电M84将给步进电机断电,直到下一次运动指令。
M84 S<秒> 将过一段时间给步进电机断电,时间为S后面的数字,单位是秒。
M92: 设置axis_steps_per_unit 参数M92 X<> Y<> Z<> E <>将重新设置各坐标轴的分辨率,在调试校准打印机时非常有用。
M104设置挤出头目标温度,并作出应答M104 S210将喷头的目标温度设置为210°。
M105 读取当前的温度M106开风扇M106 S<>会打开风扇并将风扇速度设置为S后面的参数,最小值为0,最大值为255。
M107关闭风扇M107会关闭风扇,M106 S0也可以达到相同的效果。
M109: 设置挤出机温度M109 S<温度> 设置喷头目标温度,然后在加热的过程中等待。
M109 R<温度>设置喷头目标温度,在同时加热和风扇冷却过程中等待。
如果使用自动调温功能,那么M109 S<最小温度> B<最大温度> F<因子>将会自动调整喷头温度,笔者在前面的Marlin的优势中已经提到。
M112: 紧急停止所有进行中的动作都会被立即终止,然后关掉打印机。
所有电机和加热器都会被关掉.,可以按Reset按钮(板上)以重启。
M114: 获取当前位置M114将获取当前的坐标值,将结果发送到串口。
结果以X:0.00 Y:0.00 Z:0.00 E:0.00的形式显示。
M115: 获取固件信息将固件信息以FIRMWARE_NAME:Marlin V1; Sprinter/grbl mashup for gen6 FIRMWARE_URL:/Mar lin/ PROTOCOL_VERSION:1.0 MACHINE_TYPE:Mendel EXTRUDER_COUNT:1 U UID:00000000-0000-0000-00000的形式发送到串口。