G代碼
數控程序中的指令
G代碼(G-code,又稱RS-274),是最為廣泛使用的數控(numerical control)編程語言,有多個版本,主要在計算機輔助製造中用於控制自動機床。G代碼有時候也稱為G編程語言。
G代碼是數控程序中的指令。一般都稱為G指令。使用G代碼可以實現快速定位、逆圓插補、順圓插補、中間點圓弧插補、半徑編程、跳轉加工。
代碼名稱-功能簡述
G代碼
G00------快速定位
G01------直線插補
G02------順時針方向圓弧插補
G03------逆時針方向圓弧插補
G04------定時暫停
G05------通過中間點圓弧插補
G06------拋物線插補
G07------Z 樣條曲線插補
G08------進給加速
G09------進給減速
G10------數據設置
G16------極坐標編程
G17------加工XY平面
G18------加工XZ平面
G19------加工YZ平面
G20------英制尺寸(法蘭克系統)
G21-----公制尺寸(法蘭克系統)
G22------半徑尺寸編程方式
G220-----系統操作界面上使用
G23------直徑尺寸編程方式
G230-----系統操作界面上使用
G24------子程序結束
G25------跳轉加工
G26------循環加工
G30------倍率註銷
G31------倍率定義
G32------等螺距螺紋切削,英制
G33------等螺距螺紋切削,公制
G34------增螺距螺紋切削
G35------減螺距螺紋切削
G40------刀具補償/刀具偏置註銷
G41------刀具補償——左
G42------刀具補償——右
G43------刀具偏置——正
G44------刀具偏置——負
G45------刀具偏置+/+
G46------刀具偏置+/-
G47------刀具偏置-/-
G48------刀具偏置-/+
G49------刀具偏置0/+
G50------刀具偏置0/-
G51------刀具偏置+/0
G52------刀具偏置-/0
G53------直線偏移,註銷
G54------直線偏移x
G55------直線偏移y
G56------直線偏移z
G57------直線偏移xy
G58------直線偏移xz
G59------直線偏移yz
G60------準確路徑方式(精)
G61------準確路徑方式(中)
G62------準確路徑方式(粗)
G63------攻螺紋
G68------刀具偏置,內角
G69------刀具偏置,外角
G70------英制尺寸 寸(這個是西門子的,法蘭克的是G21)
G71------公制尺寸 毫米
G74------回參考點(機床零點)
G75------返回編程坐標零點
G76------車螺紋複合循環
G80------固定循環註銷
G81------外圓固定循環
G331-----螺紋固定循環
G90------絕對尺寸
G91------相對尺寸
G92------預製坐標
G93------時間倒數,進給率
G94------進給率,每分鐘進給
G95------進給率,每轉進給
G96------恆線速度控制
G97------取消恆線速度控制
快速定位
格式: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點。
G01—直線插補
格式:G01 X(U)__Z(W)__F__(mm/min)
說明:(1)該指令使刀具按照直線插補方式移動到指定位置。移動速度是由F指令
進給速度。所有的坐標都可以聯動運行。
(2)G01也可以寫成G1
例:G01 X40 Z20 F150
兩軸聯動從A點到B點
逆圓插補
格式1:G02 X(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:G02 X(u)____Z(w)____R(+\-)__F__
說明:(1)不能用於整圓的編程
(2)R為工件單邊R弧的半徑。R為帶符號,“+”表示圓弧角小於180度;
“-”表示圓弧角大於180度。其中“+”可以省略。
(3)它以終點點坐標為準,當終點與起點的長度值大於2R時,則以直線代替圓弧。
例:G02 X60 Z50 R20 F120
格式3:G02 X(u)____Z(w)____CR=__(半徑)F__
格式4:G02 X(u)____Z(w)__D__(直徑)F___
這兩種編程格式基本上與格式2相同
順圓插補
說明:除了圓弧旋轉方向相反外,格式與G02指令相同。
G04—定時暫停
格式:G04__F__ 或G04 __K__
說明:加工運動暫停,時間到后,繼續加工。暫停時間由F後面的數據指定。單位是秒。
範圍是0.01秒到300秒。
中間點圓弧插補
格式:G05 X(u)____Z(w)____IX_____IZ_____F_____
說明:(1)X,Z為終點坐標值,IX,IZ為中間點坐標值。其它與G02/G03相似
例: G05 X60 Z50 IX50 IZ60 F120
加速/減速
格式:G08
說明:它們在程序段中獨自佔一行,在程序中運行到這一段時,進給速度將增加10%,
如要增加20%則需要寫成單獨的兩段。
半徑編程
格式:G22
說明:在程序中獨自佔一行,則系統以半徑方式運行,程序中下面的數值也是
以半徑為準的。
G23(G230)—直徑尺寸編程方式
格式:G23
說明:在程序中獨自佔一行,則系統以直徑方式運行,程序中下面的數值也是
以直徑為準的。
跳轉加工
格式:G25 LXXX
說明:當程序執行到這段程序時,就轉移它指定的程序段。(XXX為程序段號)。
G26—循環加工
格式: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—設定工件坐標/設定主軸最高(低)轉速
格式:G50 S____Q____
說明:S為主軸最高轉速,Q為主軸最低轉速
G54—設定工件坐標一
格式:G54
說明:在系統中可以有幾個坐標系,G54對應於第一個坐標系,其原點位置數值在機床
參數中設定。
G55—設定工件坐標二
同上
G56—設定工件坐標三
同上
G57—設定工件坐標四
同上
G58—設定工件坐標五
同上
G59—設定工件坐標六
同上
準確路徑方式
格式:G60
說明:在實際加工過程中,幾個動作連在一起時,用準確路徑編程時,那麼在進行
下一 段加工時,將會有個緩衝過程(意即減速)
連續路徑方式
格式:G64
說明:相對G60而言。主要用於粗加工。
G74—回參考點(機床零點)
格式:G74 X Z
說明:(1)本段中不得出現其他內容。
(2)G74後面出現的的坐標將以X、Z依次回零。
(3)使用G74前必須確認機床裝配了參考點開關。
(4)也可以進行單軸回零。
G75—返回編程坐標零點
格式:G75 X Z
說明:返回編程坐標零點
G76—返回編程坐標起始點
格式:G76
說明:返回到刀具開始加工的位置。
G81—外圓(內圓)固定循環
格式: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-3 K-1 F100
加工過程:
1:G01進刀2倍的I(第一刀為I,最後一刀為I+K精車),進行深度切削:
2:G01兩軸插補,切削至終點截面,如果加工結束則停止:
3:G01退刀I到安全位置,同時進行輔助切面光滑處理
4:G00快速進刀到高工面I外,預留I進行下一 步切削加工,重複至1。
G90—絕對值方式編程
格式:G90
說明:(1)G90編入程序時,以後所有編入的坐標值全部是以編程零點為基準的。
(2)系統上電后,機床處在G狀態。
N0010 G90 G92 x20 z90
N0020 G01 X40 Z80 F100
N0030 G03 X60 Z50 I0 K-10
N0040 M02
增量方式編程
格式:G91
說明:G91編入程序時,之後所有坐標值均以前一個坐標位置作為起點來計算
運動的編程值。在下一段坐標系中,始終以前一點作為起始點來編程。
例: N0010 G91 G92 X20 Z85
N0020 G01 X20 Z-10 F100
N0030 Z-20
N0040 X20 Z-15
N0050 M02
設定工件坐標系
格式:G92 X__ Z__
說明:(1)G92隻改變系統當前顯示的坐標值,不移動坐標軸,達到設定坐標
原點的目的。
(2)G92的效果是將顯示的刀尖坐標改成設定值。
(3)G92後面的XZ可分別編入,也可全 編。
G94—進給率,每分鐘進給
說明:這是機床的開機默認狀態。
G20—子程序調用
格式:G20 L__
N__
說明:(1)L後為要調用的子程序N后的程序名,但不能把N輸入。
N後面只允許帶數字1~99999999。
(2)本段程序不得出現以上描述以外的內容。
子程序結束返回
格式:G24
說明:(1)G24表示子程序結束,返回到調用該子程序程序的下一段。
(2)G24與G20成對出現
(3)G24本段不允許有其它指令出現。
例:通過下例說明在子程序調用過程中參數的傳遞過程,請注意應用
程序名: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:取消刀具半徑補償
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:主軸轉速控制(取消恆線速度控制指令) G99:返回到R點(中間孔) G98:返回到參考點(最後孔)
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:返回主程序
G代碼解釋器是全軟體式數控系統的重要模塊。數控機床通常使用G代碼來描述機床的加工信息,如 走刀軌跡、坐標的選擇、冷卻液的開啟等,對G代碼進行關鍵字分解是骨架,,對代碼進行分組則是進行語法檢查的基 礎。王心光等人在虛擬數控加工模擬中使用Microsoft的GRETA正則類庫,解決了G代碼關鍵詞分解問題,這種方法建立在 Microsoft提供的工具基礎上,同時使用C++語言;付振山使用VC++ 6.0 開發, 構造了有窮自動機來描述在輸入字元串中關鍵字識別模式G代碼解釋器是全軟體式數控系統的重要模塊。數控機床通常使用G代碼來描述機床的加工信息,如走刀軌跡、坐 標系的選擇、冷卻液的開啟等,將G代碼解釋為數控系統能夠識別的數據塊是G代碼解釋器的主要功能。G代碼解釋器的開放性也是設計和實現中必須要考慮的問題。在G代碼解釋器中,對G 代碼進行關鍵字分解是骨架,對代碼進行分組則是進行語法檢查的基礎。
由圖 1 可以看出, G代碼 解釋器 讀取 G 代碼, 將 其解釋 成G 中間代碼, 然後經過插補、位置控制處理, 最後由輸出模塊調用驅動程序輸出到硬體( 一 般為 PCI 或 ISA 卡) 。G 代碼可以如圖 1 的方式運行, 也就是說 G 代碼的解釋, 包括語法檢查都在加工過程中 進行, 這種 方式比 較費時, 不利 於加工過程。本文設計的 G 代碼解 釋器採用了另外一 種處理 方式, 解釋器有兩種運行狀態: ①讀取 G 代碼。進 行 G 代碼 的解釋, 包括詞法檢查、語法檢查等; 將其解釋成數控系統能識別的數據塊, 即中間代碼; 將中 間代碼 以文件 的方式 進行保 存。②在加工的過程中, 讀取中間代碼文件並運行之。