您现在的位置是:网站首页> 硬件

grbl开源项目相关信息收集

  • 硬件
  • 2024-08-23
  • 1585人已阅读
摘要

grbl开源项目相关信息收集


加工中心常用G代码和M代码大全

怎么在arduino IDE上编译grbl固件




加工中心常用G代码和M代码大全

G代码:准备功能, 控制机床动作(比如G00快速移动)

M代码:辅助功能, 辅助机床动作。(比如M03主轴正转)


01 G代码指令


G00 -- 快速定位


G01 -- 直线插补


G02 -- 圆弧插补(顺时针)


G03 -- 圆弧插补(逆时针)


G04 -- 暂停


G05 -- 高速高精度制御 1(部分机床)


G05.1 -- 高速高精度制御 2(部分机床)


G07.1/107 -- 圆筒补间(部分机床)


G09 -- 正确停止检查(部分机床)


G10 -- 程式参数输入/补正输入(部分机床)


G11 -- 程式参数输入取消(部分机床)


G12 -- 整圆切削CW(部分机床)


G13 -- 整圆切削CCW(部分机床)


G12.1/112 -- 极坐标补间有效(部分机床)


G13.1/113 -- 极坐标补间取消(部分机床)


G15 -- 极坐标指令取消(部分机床)


G16 -- 极坐标指令有效(部分机床)


G17 -- XY平面选择


G18 -- ZX平面选择


G19 -- YZ平面选择


G20 -- 选择英制


G21 -- 选择公制


G28 -- 返回参考点


G29 -- 从参考点返回


G30 -- 第2~4参考点复归 (部分机床)


G30.1 -- 复归刀具位置1 (部分机床)


G30.2 -- 复归刀具位置2 (部分机床)


G30.3 -- 复归刀具位置3 (部分机床)


G30.4 -- 复归刀具位置4 (部分机床)


G30.5 -- 复归刀具位置5 (部分机床)


G30.6 -- 复归刀具位置6 (部分机床)


G31 -- 跳跃机能 (部分机床)


G31.1 -- 跳跃机能1 (部分机床)


G31.2 -- 跳跃机能2 (部分机床)


G31.3 -- 跳跃机能3 (部分机床)


G32 -- 模态G指令


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 -- 工件坐标系(第一)默认


G55 -- 工件坐标系(第二)


G56 -- 工件坐标系(第三)


G57 -- 工件坐标系(第四)


G58 -- 工件坐标系(第五)


G59 -- 工件坐标系(第六)


G60 -- 单方向定位


G61 -- 准确停止方式


G62 -- 镜像指令


G63 -- 攻丝方式


G64 -- 取消G61


G65 -- 宏调用子程序


G68 -- 旋转G17,G18,G19,X Y,Z,R


G69 -- 取消G68


G70 -- 圆周钻孔


G71 -- 圆弧钻孔


G72 -- 角度钻孔


G73 -- 高速深钻孔循环


G74 -- 后退攻丝循环


G76 -- 精镗孔循环


G77 -- 后退式镗孔循环


G80 -- 取消固定循环


G81 -- 钻孔循环


G82 -- 点钻孔循环


G83 -- 深孔钻孔循环


G84 -- 攻丝循环


G85 -- 镗孔循环


G86 -- 镗孔/停止循环


G87 -- 镗孔/缩回循环


G88 -- 镗孔/暂停/缩回


G89 -- 镗孔/暂停循环


G90 -- 绝对值编程


G91 -- 增量编程


G92 -- 设定工件坐标


G93 -- 每分钟进给次数


G94 -- 每分钟进给速度


G98 -- 开始点返回


G99 -- R平面选择


G98 -- 固定循环返回起始点(部分机床)


G99 -- 返回固定循环R点(部分机床)


G114.1 -- 主轴同期制御


G100~225 -- 使用者巨集(G码呼叫)最大10个


02 M代码指令


M00 -- 程式停止(暂停)


M01 -- 程式选择性停止/选择性套用


M02 -- 程序结束


M03 -- 主轴正转


M04 -- 主轴反转


M05 -- 主轴停止


M06 -- 自动刀具交换


M07 -- 吹气启动


M08 -- 切削液启动


M09 -- 切削液关闭


M10 -- 工作台(B轴)锁住


M11 -- 工作台(B轴)松开


M13 -- 主轴顺时针转动及加切削液


M14 -- 主轴逆时针转动及加切削液


M15 -- 正方向运动


M16 -- 负方向运动


M19 -- 主轴定位


M21 -- X轴镜象启动


M22 -- Y轴镜象启动


M23 -- 镜象取消


M24 -- 第四轴镜象启动


M25 -- 第四轴夹紧


M26 -- 第四轴松开


M27 -- 分度盘功能


M29 -- 刚性攻牙


M30 -- 程式结束/自动断电


M48 -- 深钻孔启动


M52 -- 刀库右移


M53 -- 刀库左移


M70 -- 自动刀具建立


M71 -- 刀套向下


M72 -- 换刀臂60°


M73 -- 主轴松刀


M74 -- 换刀臂180°


M75 -- 主轴夹刀


M76 -- 换刀臂0°


M77 -- 刀臂向上


M81 -- 工作台交换确认


M82 -- 工作台上


M83 -- 工作台下


M84 -- 工作台伸出


M85 -- 工作台缩回


M86 -- 工作台门开


M87 -- 工作台门关


M98 -- 调用子程序




二、G代码功能详解

G0 Xnnn Ynnn Znnn Ennn Fnnn Snnn

或者

G1 Xnnn Ynnn Znnn Ennn Fnnn Snnn


使用时,不需要所有的参数全部存在,但至少要有一个参数。其中,

Xnnn表示X轴的移动位置;

Ynnn表示Y轴的移动位置;

Znnn表示Z轴的移动位置;

Ennn表示E轴(挤出头步进电机)的移动位置;

Fnnn表示速度,单位是毫米/每分钟;

Snnn表示是否检查限位开关,S0不检查,S1检查,缺省值是S0


...

快速定位


格式:G00 X(U)__Z(W)__


说明:


(1)该指令使刀具按照点位控制方式快速移动到指定位置。移动过程中不得对工件进行加工。


(2)所有编程轴同时以参数所定义的速度移动,当某轴走完编程值便停止,而其他轴继续运动,


(3)不运动的坐标无须编程。


(4)G00可以写成G0


例:


G00 X75 Z200


G01 U-25 W-100


先是X和Z同时走25快速到A点,接着Z向再走75快速到B点。




直线插补


格式:G01X(U)_Z(W)_F_(mm/min)


说明:


(1)该指令使刀具按照直线插补方式移动到指定位置。移动速度是由F指令


进给速度。所有的坐标都可以联动运行。


(2)G01也可以写成G1


例:


G01 X40 Z20 F150


两轴联动从A点到B点




圆弧插补


格式1:G02X(u)_Z(w)_I_K_F_


说明:


(1)X、Z在G90时,圆弧终点坐标是相对编程零点的绝对坐标值。在G91时,


圆弧终点是相对圆弧起点的增量值。无论G90,G91时,I和K为圆弧的圆心相对于起点的增量坐标。


I是X方向值、K是Z方向值。圆心坐标在圆弧插补时不得省略,除非用其他格式编程。


(2)G02指令编程时,可以直接编过象限圆,整圆等。


注:过象限时,会自动进行间隙补偿,如果参数区末输入间隙补偿与机床实际反向间隙悬殊,都会在工件上产生明显的切痕。


(3)G02也可以写成G2。


例:G02 X60 Z50 I40 K0 F120


格式2:G02X(u)_Z(w)_R(+-)_F_


说明:(1)不能用于整圆的编程


(2)R为工件单边R弧的半径。R为带符号,“+”表示圆弧角小于180度;


“-”表示圆弧角大于180度。其中“+”可以省略。


(3)它以终点点坐标为准,当终点与起点的长度值大于2R时,则以直线代替圆弧。


例:G02 X60 Z50 R20 F120


格式3:G02X(u)_Z(w)_CR=_(半径)F_


格式4:G02X(u)_Z(w)_D_(直径)F_


这两种编程格式基本上与格式2相同


顺圆插补


说明:除了圆弧旋转方向相反外,格式与G02指令相同。



定时暂停


格式:G04_F_ 或G04_K_


说明:加工运动暂停,时间到后,继续加工。暂停时间由F后面的数据指定。单位是秒。范围是0.01秒到300秒。




中间点圆弧插补


格式:G05X(u)_Z(w)_IX_IZ_F_


说明:X,Z为终点坐标值,IX,IZ为中间点坐标值。其它与G02/G03相似


例:G05 X60 Z50 IX50 IZ60F120




加速/减速


格式:G08


说明:它们在程序段中独自占一行,在程序中运行到这一段时,进给速度将增加10%,如要增加20%则需要写成单独的两段。




半径编程


格式:G22


说明:在程序中独自占一行,则系统以半径方式运行,程序中下面的数值也是以半径为准的。




直径尺寸编程方式


格式:G23


说明:在程序中独自占一行,则系统以直径方式运行,程序中下面的数值也是以直径为准的。




跳转加工


格式:G25 LXXX


说明:当程序执行到这段程序时,就转移它指定的程序段。(XXX为程序段号)。




循环加工


格式:G26 LXXX QXX


说明:当程序执行到这段程序时,它指定的程序段开始到本段作为一个循环体,循环次数由Q后面的数值决定。




倍率注销


格式:G30


说明:在程序中独自占一行,与G31配合使用,注销G31的功能。




倍率定义


G31 F_


G32:等螺距螺纹加工(英制)


G33:等螺距螺纹加工(公制)


格式:G32/G33 X(u)_Z(w)_F_


说明:


(1)X、Z为终点坐标值,F为螺距


(2)G33/G32只能加工单刀、单头螺纹。


(3)X值的变化,能加工锥螺纹


(4)使用该指令时,主轴的转速不能太高,否则刀具磨损较大。


设定工件坐标/设定主轴最高(低)转速


格式:G50 S_Q_


S为主轴最高转速,Q为主轴最低转速




设定工件坐标


格式:G54


在系统中可以有几个坐标系,G54对应于第一个坐标系,其原点位置数值在机床参数中设定。


G55:设定工件坐标二


G56:设定工件坐标三


G57:设定工件坐标四


G58:设定工件坐标五


G59:设定工件坐标六




准确路径方式


格式:G60


在实际加工过程中,几个动作连在一起时,用准确路径编程时,那么在进行下一段加工时,将会有个缓冲过程(意即减速)。




连续路径方式


格式:G64


相对G60而言,主要用于粗加工。




回参考点(机床零点)


格式:G74 X Z


(1)本段中不得出现其他内容。


(2)G74后面出现的的坐标将以X、Z依次回零。


(3)使用G74前必须确认机床装配了参考点开关。


(4)也可以进行单轴回零。


                      


返回编程坐标零点


格式:G75 X Z


返回编程坐标起始点


格式:G76


返回到刀具开始加工的位置。




外圆(内圆)固定循环


格式:G81_X(U)_Z(W)_R_I_K_F_


说明:


(1)X,Z为终点坐标值,U,W为终点相对 于当前点的增量值 。


(2)R为起点截面的要加工的直径。


(3)I为粗车进给,K为精车进给,I、K为有符号数,并且两者的符号应相同。


符号约定如下:由外向中心轴切削(车外圆 )为“-”,反这为“+”。


(4)不同的X,Z,R 决定外圆不同的开关,如:有锥度或没有度,正向锥度或反向锥度,左切削或右切削等。


(5)F为切削加工的速度(mm/min)


(6)加工结束后,刀具停止在终点上。


例:G81 X40 Z 100 R15 I-3K-1 F100


加工过程:


1)G01进刀2倍的I(第一刀为I,最后一刀为I+K精车),进行深度切削:


2)G01两轴插补,切削至终点截面,如果加工结束则停止:


3)G01退刀I到安全位置,同时进行辅助切面光滑处理


4)G00快速进刀到高工面I外,预留I进行下一步切削加工 ,重复至1。




绝对值方式编程


格式:G90


说明:


(1)G90编入程序时,以后所有编入的坐标值全部是以编程零点为基准的。


(2)系统上电后,机床处在G状态。


N0010 G90 G92 x20 z90


N0020 G01X40 Z80 F100


N0030 G03X60 Z50 I0 K-10


N0040 M02




增量方式编程


格式:G91


说明:G91编入程序时,之后所有坐标值均以前一个坐标位置作为起点来计算


运动的编程值。在下一段坐标系中,始终以前一点作为起始点来编程。


例:N0010 G91 G92 X20 Z85


N0020 G01X20 Z-10 F100


N0030 Z-20


N0040 X20 Z-15


N0050 M02




设定工件坐标系


格式:G92 X_ Z_


说明:


(1)G92只改变系统当前显示的坐标值,不移动坐标轴,达到设定坐标


原点的目的。


(2)G92的效果是将显示的刀尖坐标改成设定值。


(3)G92后面的XZ可分别编入,也可全编。


G94—进给率,每分钟进给


说明:这是机床的开机默认状态。




子程序调用


格式:G20 L_


N_


说明:


(1)L后为要调用的子程序N后的程序名,但不能把N输入。


N后面只允许带数字1~99999999。


(2)本段程序不得出现以上描述以外的内容。




子程序结束返回


格式:G24


说明:


(1)G24表示子程序结束,返回到调用该子程序程序的下一段。


(2)G24与G20成对出现。


(3)G24本段不允许有其它指令出现。




三、G代码编程实例


例:通过下例说明在子程序调用过程中参数的传递过程,请注意应用


程序名:P10


M03 S1000


G20 L200


M02


N200 G92 X50 Z100


G01 X40 F100


Z97


G02 Z92 X50 I10 K0 F100


G01 Z-25 F100


G00 X60


Z100


G24


如果要多次调用,请按如下格式使用


M03 S1000


N100 G20 L200


N101 G20 L200


N105 G20 L200


M02


N200 G92 X50 Z100


G01 X40 F100


Z97


G02 Z92 X50 I10 K0 F100


G01 Z-25 F100


G00 X60


Z100


G24




G331—螺纹加工循环


格式:G331 X_ Z_I_K_R_p_


说明:


(1)X向直径变化,X=0是直螺纹


(2)Z是螺纹长度,绝对或相对编程均可


(3)I是螺纹切完后在X方向的退尾长度,±值


(4)R螺纹外径与根径的直径差,正值


(5)K螺距KMM


(6)p螺纹的循环加工次数,即分几刀切完


提示:


1、每次进刀深度为R÷p并取整,最后一刀不进刀来光整螺纹面


2、内螺纹退尾根据沿X的正负方向决定I值的称号。


3、螺纹加工循环的起始位置为将刀尖对准螺纹的外圆处。


例子:


M3


G4 f2


G0 x30 z0


G331 z-50 x0 i10 k2 r1.5 p5


G0 z0


M05




四、补充及注意事项


1、G00与G01


G00运动轨迹有直线和折线两种,该指令只是用于点定位,不能用于切削加工;


G01按指定进给速度以直线运动方式运动到指令指定的目标点,一般用于切削加工。




2、G02与G03


G02:顺时针圆弧插补


G03:逆时针圆弧插补




3、G04 延时或暂停指令


一般用于正反转切换、加工盲孔、阶梯孔、车削切槽




4、G17、G18、G19 平面选择指令


指定平面加工,一般用于铣床和加工中心


G17:X-Y平面,可省略,也可以是与X-Y平面相平行的平面


G18:X-Z平面或与之平行的平面,数控车床中只有X-Z平面,不用专门指定


G19:Y-Z平面或与之平行的平面




5、G27、G28、G29 参考点指令


G27:返回参考点,检查、确认参考点位置


G28:自动返回参考点(经过中间点)


G29:从参考点返回,与G28配合使用




6、G40、G41、G42 半径补偿


G40:取消刀具半径补偿


G41:左补偿


G42:右补偿




7、G43、G44、G49 长度补偿


G43:长度正补偿


G44:长度负补偿


G49:取消刀具长度补偿




8、G32、G92、G76


G32:螺纹切削


G92:螺纹切削固定循环


G76:螺纹切削复合循环




9、车削加工:G70、G71、72、G73


G71:轴向粗车复合循环指令


G70:精加工复合循环


G72:端面车削,径向粗车循环


G73:仿形粗车循环




10、铣床、加工中心:


G73:高速深孔啄钻


G83:深孔啄钻


G81:钻孔循环


G82:深孔钻削循环


G74:左旋螺纹加工


G84:右旋螺纹加工


G76:精镗孔循环


G86:镗孔加工循环


G85:铰孔


G80:取消循环指令




11、编程方式 G90、G91


G90:绝对坐标编程


G91:增量坐标编程




12、主轴设定指令


G50:主轴最高转速的设定


G96:恒线速度控制


G97:主轴转速控制(取消恒线速度控制指令)


G98:返回到参考点(最后孔)


G99:返回到R点(中间孔)




13、主轴正反转停止指令 M03、M04、M05


M03:主轴正传


M04:主轴反转


M05:主轴停止




14、切削液开关 M07、M08、M09


M07:雾状切削液开


M08:液状切削液开


M09:切削液关




15、运动停止 M00、M01、M02、M30


M00:程序暂停


M01:计划停止


M02:机床复位


M30:程序结束,指针返回到开头




16、M98:调用子程序


17、M99:返回主程序

M99 -- 子程序结束


1.jpg



怎么在arduino IDE上编译grbl固件

之前搞了很久,一直没弄明白怎么在windows下的arduino IDE上编译grbl固件代码(改了Makefile的,可以在linux下编译,http://opensourceecology.org/wiki/GRBL),无奈只能安装了一个Ubuntu的虚拟机。由于需要,昨天又下载了grbl最原始的源码,搞了一下在windows的arduino Ide上编译,竟然编译成功了,记录一下。但原来的加了servo.cpp的源码和其他cpp文件,用同样的方法在arduino IDE上还是编译不成功,下次找到方法了再补充。


1.操作系统:windows 7, 64位。


2.arduino IDE:arduino-1.6.8。


3.方法:


注意:在开始之前,从Arduino IDE中删除先前的Grbl库安装。否则,将有编译问题!在Windows上,它在C:\Users\用户名\Documents\Arduino\libraries。


    (1)下载Grbl源代码


·         单击Grbl主页上的下载ZIP按钮。


·         解压下载的文件,得到 grbl-XXX的文件夹,其中XXX是发行版。 


    2. 启动Arduino IDE


我用的是arduino-1.6.8。   


3. 将Grbl作为库加载到Arduino IDE中。


·         单击Sketch下拉菜单,导航到加载库(Include Library)并选择添加一个.ZIP库..。


选择Grbl-XXX文件夹中的名为Grbl文件夹


重要信息:该文件夹仅包含源文件和示例目录。如果您不小心选择.zip文件或错误的文件夹,您将需要导航到您的Arduino库,删除错误,然后重新执行步骤3。


 4.打开GrblUpload Arduino示例。


单击文件(File)下拉菜单,导航到示例(Examples)Examples->第三方库示例(下拉最下方)Grbl,然后选择GrblUpload。


 5.确定您的Arduino COM端口:


·Windows 7:单击“开始” - >右键单击“计算机” - >选择“管理” - >从左窗格中选择“设备管理器”


·在选项树中,展开“端口(COM&LPT)”


·您的Arduino将是USB串行端口(COMX),其中“X”表示COM号码,例如COM6。如下图


怎么在arduino IDE上编译grbl固件


  6.将Grbl编译并上传到您的Arduino。


·将您的Arduino Uno连接到您的计算机。


·确保您的电路板已在Tool->Board菜单中设置为Arduino Uno,并在Tool->Serial Port中正确选择了串行端口。


·点击上传(upload),Grbl应该编译并刷进到你的Arduino! (使用Upload Using Programmer菜单命令刷程序。)


      怎么在arduino IDE上编译grbl固件



高级用户:大多数用户使用Grbl的默认程序就足够了,但您可以通过编辑Arduino库(而不是下载)文件夹中的config.h文件来自定义Grbl。 该文件启用或禁用所有Grbl的附加编译时选项。 文件中有他们功能描述。 编辑并保存后,只需按照上述步骤即可刷您的自定义Grbl程序!







Top