關注我自學不失聯,自學無套路
關注說明:
微信搜索公眾號:X888888X666600
戓搜索:UG CAXA MC自學編程
戓掃下面二維碼既可關注↙
數控高級編程講義
第一篇 銑工篇專題一 行切和環切在數控加工中,行切和環切是典型的兩種走刀路線。
行切在手工編程時多用於規則矩形平面、臺階面和矩形下陷加工,對非矩形區域的行切一般用自動編程實現。
環切主要用於輪廓的半精、精加工及粗加工,用於粗加工時,其效率比行切低,但可方便的用刀補功能實現。
1.1環切環切加工是利用已有精加工刀補程序,通過修改刀具半徑補償值的方式,控制刀具從內向外或從外向內,一層一層去除工件餘量,直至完成零件加工。
編寫環切加工程序,需解決三個問題:
環切刀具半徑補償值的計算;
環切刀補程序工步起點(下刀點)的確定
如何在程序中修改刀具半徑補償值。
1.1.1環切刀具半徑補償值的計算確定環切刀具半徑補償值可按如下步驟進行:
1、確定刀具直徑、走刀步距和精加工餘量;
2、確定半精加工和精加工刀補值;
3、確定環切第一刀的刀具中心相對零件輪廓的位置(第一刀刀補值);
4、根據步距確定中間各刀刀補值。
示例:用環切方案加工圖1-1零件內槽,環切路線為從內向外。
環切刀補值確定過程如下:
1、根據內槽圓角半徑R6,選取φ12鍵槽銑刀,精加工餘量為0.5mm,走刀步距取10mm。
2、由刀具半徑6,可知精加工和半精加工的刀補半徑分別為6和6.5mm;
3、如圖所示,為保證第一刀的左右兩條軌跡按步距要求重疊,則兩軌跡間距離等於步距,則該刀刀補值=30-10/2=25mm。
4、根據步距確定中間各刀刀補值,
第二刀刀補值=25-10=15mm
第三刀刀補值=15-10=5,該值小於半精加工刀補值,說明此刀不需要。
由上述過程,可知,環切共需4刀,刀補值分別為25、15、6.5、6mm。
1.1.2環切刀補程序工步起點(下刀點)的確定對於封閉輪廓的刀補加工程序來說,一般選擇輪廓上凸出的角作為切削起點,對內輪廓,如沒有這樣的點,也可以選取圓弧與直線的相切點,以避免在輪廓上留下接刀痕。在確定切削起點後,再在該點附近確定一個合適的點,來完成刀補的建立與撤消,這個專用於刀補建立與撤消的點就是刀補程序的工步起點,一般情況下也是刀補程序的下刀點。
一般而言,當選擇輪廓上凸出的角作為切削起點時,刀補程序的下刀點應在該角的角平分線上(45°方向),當選取圓弧與直線的相切點或某水平/垂直直線上的點作為切削起點時,刀補程序的下刀點與切削起點的連線應與直線部分垂直。在一般的刀補程序中,為縮短空刀距離,下刀點與切削起點的距離比刀具半徑略大一點,下刀時刀具與工件不發生幹涉即可。但在環切刀補程序中,下刀點與切削起點的距離應大於在上一步驟中確定的最大刀具半徑補償值,以避免產生刀具幹涉報警。如對圖1-1零件,取R30圓弧圓心為編程零點,取R30圓弧右側端點作為切削起點,如刀補程序僅用於精加工,下刀點取在(22,0)即可,該點至切削起點距離=8mm。但在環切時,由於前兩刀的刀具半徑補償值大於8mm,建立刀補時,刀具實際運動方向是向左,而程序中指定的運動方向是向右,撤消刀補時與此類似,此時數控系統就會產生刀具幹涉報警。因此合理的下刀點應在編程零點(0,0)。
1.1.3在程序中修改刀具半徑補償值在程序中修改刀具半徑補償值可採用如下方法
示例1.1 直接在G41/G42程序段修改刀具補償號
示例1.2 用宏變量表示刀具補償號,利用循環修改刀具補償號
示例1.3,使用G10和子程序完成環切
示例1.4 使用G10和循環完成環切
示例1.5 直接用宏變量對刀補值賦值,利用循環完成環切。
說明:在G41X30 d#10中,#10表示刀具補償號,而在G41X30d[#10]中,#10表示刀具半徑補償值,此用法在FANUC說明書中沒有,但實際使用的結果確實如此,如所用系統不支持此用法,就只用示例1.4用法。
1.1.4 環切宏程序當使用刀具半徑補償來完成環切時,不管我們採用何種方式修改刀具半徑補償值,由於受刀補建、撤的限制,它們都存在走刀路線不夠簡潔,空刀距離較長的問題。對於象圖1-1所示的輪廓,其刀具中心軌跡很好計算,此時如用宏程序直接計算中心軌跡路線,則可簡化走刀路線,縮短空刀距離。
示例1.6完全使用宏程序的環切加工
如圖1-2所示,用#1、#2表示輪廓左右和上邊界尺寸,編程零點在R30圓心,加工起始點放在輪廓右上角(可削除接刀痕)
一般來說,行切主要用於粗加工,在手工編程時多用於規則矩形平面、臺階面和矩形下陷加工,對非矩形區域的行切一般用自動編程實現。
1如圖所示,矩形平面一般採用圖示直刀路線加工,在主切削方向,刀具中心需切削至零件輪廓邊,在進刀方向,在起始和終止位置,刀具邊沿需伸出工件一距離,以避免欠切。
假定工件尺寸如圖所示,採用Φ60面銑刀加工,步距50mm,上、下邊界刀具各伸出10mm。則行切區域尺寸為800×560(600+10*2-60)。
對矩形下陷而言,由於行切只用於去除中間部分餘量,下陷的輪廓是採用環切獲得的,因此其行切區域為半精加工形成的矩形區域,計算方法與矩形平面類似。
假定下陷尺寸100*80,由圓角R6選Φ12銑刀,精加工餘量0.5mm,步距10mm,則半精加工形成的矩形為(100-12*2-0.5*2)*(80-12*2-0.5*2)=75*55。如行切上、下邊界刀具各伸出1mm,則實際切削區域尺寸=75*(55+2-12)=75*45。
1.2.2行切的子程序實現對於行切走刀路線而言,每來回切削一次,其切削動作形成一種重複,如果將來回切削一次做成增量子程序,則利用子程序的重複可完成行切加工。
進刀次數n=總進刀距離/步距=47/10=4.5,實際需切削6刀,進刀5次。
子程序重複次數m=n/2=5/2=2,剩餘一刀進行補刀。
步距的調整:步距=總進刀距離/切削次數。
說明:
當實際切削次數約為偶數刀時,應對步距進行調整,以方便程序編寫;
當實際切削次數約為奇數刀時,可加1成偶數刀,再對步距進行調整,或直接將剩下的一刀放在行切後的補刀中,此時不需調整步距。
由於行切最後一刀總是進刀動作,故行切後一般需補刀。
對圖1-4零件,編程零點設在工件中央,下刀點選在左下角點,加工程序如下:
對圖1-4零件,編程零點設在工件中央,下刀點選在左下角點,加工宏程序如下:
示例1.8(本程序未考慮分層下刀問題)
在實際加工中,相同輪廓的重複加工主要有兩種情況:
1、同一零件上相同輪廓在不同位置出現多次;
2、在連續板料上加工多個零件。
實現相同輪廓重複加工的方法
1、用增量方式定製輪廓加工子程序,在主程序中用絕對方式對輪廓進行定位,再調用子程序完成加工。
2、用絕對方式定製輪廓加工子程序,並解決坐標系平移的問題來完成加工。
3、用宏程序來完成加工。
2.1用增量方式完成相同輪廓的重複加工示例2-1,加工圖2-1所示工件,取零件中心為編程零點,選用φ12鍵槽銑刀加工。子程序用中心軌跡編程。
坐標系平移有兩種方式
G54+G52,用於重複次數不多,且輪廓分布無規律情況。
G54+G92,用於輪廓分布有規律且重複次數很多的情況。
示例2-2用局部坐標系G52完成相同輪廓的重複加工,G54零點設在零件中心,局部坐標系零點在需加工孔的孔心。
示例2-3,用G54+G92完成相同輪廓的重複加工,G54零點設設在零件中心,子坐標系零點在需加工孔的孔心。
示例2-4,用G65調用完成加工,宏程序用絕對編程。
示例2-5,用G66調用完成加工,宏程序用絕對編程。
示例2-6,使用循環,用一個程序完成加工
對簡單平面曲線輪廓進行加工,是採用小直線段逼近曲線來完成的。具體算法為:採用某種規律在曲線上取點,然後用小直線段將這些點連接起來完成加工。
示例3-1,橢圓加工,假定橢圓長(X向)、短軸(Y向)半長分別為A和B,則橢圓的極坐標方程為,利用此方程可方便地完成在橢圓上取點工作。
編程條件:編程零點在橢圓中心,a=50,b=30,橢圓輪廓為外輪廓,下刀點在橢圓右極限點,刀具直徑φ18,加工深度10mm。程序如下:
一般使用一系列水平面截球面所形成的同心圓來完成走刀。
在進刀控制上有從上向下進刀和從下向上進刀兩種,一般應使用從下向上進刀來完成加工,此時主要利用銑刀側刃切削,表面質量較好,端刃磨損較小,同時切削力將刀具向欠切方向推,有利於控制加工尺寸。
進刀點的計算:
先根據允許的加工誤差和表面粗糙度,確定合理的Z向進刀量,再根據給定加工深度Z,計算加工圓的半徑,即:r=sqrt[R2-z2]。此算法走刀次數較多。
先根據允許的加工誤差和表面粗糙度,確定兩相鄰進刀點相對球心的角度增量,再根據角度計算進刀點的r和Z值,即Z=R*sinθ,r=R*cosθ。
進刀軌跡的處理
對立銑刀加工,曲面加工是刀尖完成的,當刀尖沿圓弧運動時,其刀具中心運動軌跡也是一行徑的圓弧,只是位置相差一個刀具半徑。
對球頭刀加工,曲面加工是球刃完成的,其刀具中心是球面的同心球面,半徑相差一個刀具半徑。
4.1.1外球面加工示例4-1,加工圖4-3所示外球面。為對刀方便,宏程序編程零點在球面最高點處,採用從下向上進刀方式。立銑刀加工宏程序號為%9013,球刀加工宏程序號%9014。
示例4-2,加工圖4-4所示內球面。為對刀方便,宏程序編程零點在球面最高處中心,採用從下向上進刀方式。其主程序與示例4-1類似,宏程序調用參數與示例4-1相同,本例不再給出。立銑刀加工宏程序號為%9015,球刀加工宏程序號%9016。
水平圓柱面加工可採用行切加工
沿圓柱面軸向走刀,沿圓周方向進刀;走刀路線短,加工效率高,加工後圓柱面直線度好;用於模具加工,脫模力較大;程序可用宏程序或自動編程實現。
沿圓柱面圓周方向走刀,沿軸向進刀;走刀路線通常比前一方式長,加工效率較低,但用於大直徑短圓柱則較好,加工後圓柱面輪廓度較好;用於模具加工,脫模力較小;程序可用子程序重複或宏程序實現,用自動編程實現程序效率太低。
示例4-3,為簡化程序,以完整半圓柱加工為例(圖4-4a)。為對刀、編程方便,主程序、宏程序零點放在工件左側最高點,毛坯為方料,立銑刀加工宏程序號為%9017,球刀加工宏程序號%9018。
為簡化程序,以完整半圓柱加工為例(圖4-4a)。為對刀、編程方便,主程序、宏程序零點放在工件左側最高點,毛坯為方料。
示例4-4,子程序加工方案,立銑刀加工程序號為%0020,球刀加工程序號%0021。
示例4-5,宏程序加工方案,立銑刀加工宏程序號為%9020,球刀加工宏程序號%9021。主程序和宏程序調用參數與示例4-3基本相同,不再給出。
孔系加工可分為矩形陣列孔系和環形陣列孔系加工兩種情況。
就單孔加工而言,其加工有一次鑽進和間歇鑽進之分,為使用方便,定製的宏程序應能完成此兩種加工。以圖5-1所示工件為例,板厚20,編程零點放在工件左下角。
示例5-1,矩形陣列孔系宏程序加工,陣列基準為左下角第一個孔。
示例5-2,加工圖5-2所示工件。編程零點放在分布圓中心。
參數編程用於系列零件的加工,此系列零件形狀相同,但有部分尺寸不同。如果將這些不同的尺寸用宏變量(參數)形式給出,由程序自動對相關節點坐標進行計算,則可用同一程序完成一個系列零件的加工。
以圖6-1零件為例。該系列零件的右端面半球球徑可取R15和R10,可將球徑用變量表示。編程零件設在工件右端面中心,棒料Φ45。
從圖中可以看出,編程所需節點,除A、D、E三點外,B、C點均與球徑R有關。下面給出各節點坐標。
編號
坐標值
X
Z
A
0
0
B
2R
-R
C
2R
-(60-2*(20-R))=-20-2R
D
40
-60
E
40
-90
加工程序如下:
在實際車削加工中,有時會遇到工件輪廓是某種方程曲線的情況,此時可採用宏程序完成方程曲線的加工。
7.1方程曲線車削加工的走刀路線:7.2橢圓輪廓的加工對橢圓輪廓,其方程有兩種形式。對粗加工,採用G71/G72走刀方式時,用直角坐標方程比較方便;而精加工(仿形加工)用極坐標方程比較方便。
示例7-2,加工圖7-2所示橢圓輪廓,棒料Φ45,編程零點放在工件右端面。
示例7-3,加工圖7-3所示拋物線孔,方程為Z=X2/16,換算成直徑編程形式為Z=X2/64,則X=sqrt[Z]/8。採用端面切削方式,編程零點放在工件右端面中心,工件預鑽有Φ30底孔。
米制:0~±999.999mm
英制:0~±99.9999inch
2、刀具補償值的存貯刀具補償存貯器A:使用與刀具補償號對應的刀具補償值。
補償號
刀具補償值
1
…
400
刀具補償存貯器B:使用與刀具補償號對應的刀具幾何補償、刀具磨損補償。
補償號
幾何補償
磨損補償
1
…
400
刀具補償存貯器C:刀具補償分長度補償(H)和半徑補償(D),使用與刀具補償號對應的刀具幾何補償、刀具磨損補償。
補償號
刀具長度補償(H)
刀具半徑補償(D)
幾何補償
磨損補償
幾何補償
磨損補償
1
…
400
3、刀具補償賦值格式:
刀具補償存貯器種類
格式
刀具長度補償(H)
幾何補償
G10 L10 P___ R___;
磨損補償
G10 L11 P___ R___;
刀具半徑補償(D)
幾何補償
G10 L12 P___ R___;
磨損補償
G10 L13 P___ R___;
P――刀具補償號;R――G90時,為刀具補償實際值;G91時,R值加到指定刀具補償值上(其和為刀具補償值,即R值為刀具補償增量)。
附錄2縮放G50、G51編程的形狀可以被放大或縮小(比例縮放)。用x,y,z指定的尺寸均可用相同的或不同的放大倍率進行縮放,放大倍率可以在程序中指定。如果未在程序中指定,則使用在參數中指定的放大倍率。
格式:
G51 X__ Y__ Z__ P__; 縮放開始
…
G50; 縮放取消
X__ Y__ Z__:縮放中心絕對值指定。
P_:縮放比例。
G51 X__ Y__ Z__ I__ J__ K__; 縮放開始
…
G50; 縮放取消
I__ J__ K__:x、y、z各自的縮放比例。
解釋
最小放大比例輸入增量是0.001或0.00001,這由參數036#07的值決定。如果在縮放程序段(G51X__ Y__ Z__P__;)沒有指定比例P,則使用在參數731中設定的放大倍率。如果忽略X、Y、Z,則指定G51指令處的刀具位置為縮放中心。
每個軸可按不同比例放大,當指定負放大時,可實現鏡像。首先設置參數063#6,使各軸縮放(鏡像)生效,然後設置參數036#0、#1、#2允許各軸縮放,最後設置參數036#7指定各軸最小放大比例輸入增量是0.001或0.00001。
設置給參數5421的放大倍數不得超過範圍±0.00001~±9.99999或±0.001~±9.999。
如果設置負值,則實現鏡像。
如果未指令放大倍數I、J、K,則使用設置在參數(NO.731、732、733)中的放大倍數。但參數中必須設置一非零值。
即使在圓弧插補中各軸使用不同的放大倍率,刀具也不會沿橢圓運動。(即對圓弧插補的數據縮放後再執行圓弧插補。)
當用半徑R指令的圓弧插補、各軸使用不同的放大倍數時,將如下圖所示。(該示例中,X分量的放大倍數為2,Y分量的放大倍數為1)。
當用I、J、K指令的圓弧插補各軸使用不同的放大倍數時,將如下圖所示。(該示例中,X分量的放大倍數為2,Y分量的放大倍數為1)
無效的縮放
縮放不能用於刀具半徑補償值、刀具長度偏置值和刀具偏置值。
在下列固定循環中,Z軸運動不會縮放:
在手動操作中,移動距離不能用縮放功能增大或減小。
示
例:鏡像程序
子程序
O9000;
G00G90 X60.0 Y60.0;
G01X100.0 F100;
Y100.0;
X60.0Y60.0;
M99;
主程序
N10G00 G90;
N20M98 P9000;
N30G51 X50.0 Y50.0 I-1000 J1000;
N40M98 P9000;
N50G51 X50.0 Y50.0 I-1000 J-1000;
N60M98 P9000;
N70G51 X50.0 Y50.0 I1000 J-1000;
N80M98 P9000;
N90G50;
附錄3坐標系旋轉 G68、G69格式:
坐標系旋轉開始
… 坐標系旋轉狀態
…
G69; 坐標系旋轉取消
式中:
G17(G18、G19):用於選擇旋轉平面(該面內包含有需旋轉的輪廓)
α_β_:旋轉中心,可用xy,zx,yz指定,由G17、G18、G19決定。
R_:旋轉角度,順時針指定。
參數041的0位用於選擇旋轉角度的指定方式。
041#0=0,R值為絕對旋轉角度;
041#0=1,G90時,R值為絕對旋轉角度;G91時,R值為旋轉角度增量。
最小輸入增量:0.001deg(度)
無效數據範圍:360,000~360,000
解釋
在含有坐標系旋轉的G代碼(G68)的程序段內可指定選擇平面的G代碼G17、G18、G19,但在坐標系旋轉狀態下不能指定G17、G18、G19。
至於在G68程序段與一含絕對編程指令(G90)程序段之間用指令增量位置指令(G91)的情況,被當作:在G68被指令處的位置是旋轉中心(圖14.9(c))。
當α_β_省略時,G68被指令時的位置被設成旋轉中心。
當旋轉角度省略時,設置在參數NO.730中的值被當作旋轉角度。
坐標系旋轉由G69取消。
G69指令可和其它指令一起在同一程序段中指定。刀具偏置如:切削半徑補償、刀具長度補償、刀具偏置,在坐標系旋轉後執行。
示例
比例縮放和坐標系旋轉
如果在縮放狀態(G51)下指令坐標系旋轉旋轉中心α_β_也將被縮放,但角度不縮放。當指令運動指令時,先實現縮放,再實現坐標縮放。在縮放模式的刀具補償(G41、G42)狀態下,不能指定坐標系旋轉。坐標系旋轉通常應先於刀具半徑C補償指定。
1、當系統沒有處於刀具半徑C補償狀態時,可按如下序列指定指令:
G51; 縮放模式開始
G68…; 坐標系旋轉模式開始
…
G69; 坐標系旋轉模式取消
G50; 縮放模式取消
2、當系統處於刀具半徑C補償狀態時,可按如下序列指定指令:
G51; 縮放模式開始
G68…; 坐標系旋轉模式開始
…
G41(G42)…;刀具半徑C補償模式開始
…
G40…; 刀具半徑補償模式
…
G69; 坐標系旋轉模式取消
G50; 縮放模式取消
例:
G90G92 X0 Y0;
G51X300 .0 Y150.0 P500;
G68X200.0 Y100.0 R45.0;
G01G42 X400.0 Y100.0 F100 H01;
G91Y100.0;
X-200.0;
Y-100.0;
X200.0;
…
可將一個程序當子程序存貯起來,再通過修改其角度來調用子程序。下例是在參數041#0=1的情況下編制的,此時角度指定用絕對值還是增量值依賴於G代碼(G90/G91)狀態。
儘管子程序對重複性的相同操作很有用,(但仍不能和宏程序相提並論)。用戶宏程序功能允許使用變量、算術和邏輯運算、以及條件分支控制,這便於普通加工程序的發展,如發展成打包好的自定義的固定循環。加工程序可利用一簡單的指令來調用宏程序,就像使用子程序一樣。
例:
普通加工程序中指定G代碼和移動距離時,直接使用數字值,如:G100和X100.0。而在用戶宏程序中,數字值可直接指定或使用變量號(稱宏變量)。當採用宏變量時,其值可在程序中修改或利用MDI面板操作進行修改。
例:#1=#2+100;
G01X #1 F300;
Explanation( 說明)
當指定一宏變量時,用「#」後跟變量號的形式,如:#1。在計算機上允許給變量指定變量名,但用戶宏程序沒有提供這種能力。
宏變量號可用表達式指定,此時,表達式應包含在方括號內。
如:#[#1+#2-12]
局部變量和全局變量取值範圍如下:
,0,
如計算結果無效(超出取值範圍)時,發出編號111的錯誤警報。
在程序中定義宏變量的值時,可省略小數點。
例:#1=123;
宏變量#1的實際值是123.000。
如果一個宏變量沒有賦值(無定義),則該變量被當作空變量。宏變量#0通常情況下是一個空變量,它只能讀,不能寫(賦值)。
根據變量號,宏變量可分成四種類型,如下表所示。
變量號
變量類型
功 能
#0
空變量
該變量通常為空(null),該變量不能賦值
#1~#33
局部變量
Local Variables
局部變量只能在宏程序內部使用,用於保存數據,如運算結果等。當電源關閉時,局部變量被清空,而當宏程序被調用時,(調用)參數被賦值給局部變量。
#100~#149(#199)
#500~#531(#999)
全局變量
Common variables
全局變量可在不同宏程序之間共享,當電源關閉時,#100~#149被清空,而#500~#531的值仍保留。在某一運算中,#150~#199,#532~#999的變量可被使用,但存儲器磁帶長度不得小於8.5m。
#1000~#9999
系統變量
System variables
系統變量可讀、可寫,用於保存NC的各種數據項,如:當前位置、刀具補償值等。
註:全局變量#150~#199,#532~#999是選用變量,應根據實際系統使用。
在程序中引用(使用)宏變量時,其格式為:在指令字地址後面跟宏變量號。當用表達式表示變量時,表達式應包含在一對方括號內。
如:G01X[#1+#2] F#3;
被引用宏變量的值會自動根據指令地址的最小輸入單位進行圓整。
例:程序段G00X#1;,給宏變量#1賦值12.3456,在1/1000mm的CNC上執行時,程序段實際解釋為G00X12.346;。
要使被引用的宏變量的值反號,在「#」前加前綴「-」即可。
如:G00 X-#1;
當引用未定義(賦值)的宏變量時,該變量前的指令地址被忽略。
如:#1=0,#2=null(未賦值),執行程序段G00X#1 Y #2;,結果為G00X0。
1、按偏置菜單紐,顯示刀具補償顯示屏幕。
2、按軟體鍵[MACOR],顯示宏變量屏幕。
3、按鍵,輸入變量號,再按鍵,光標將移動到輸入變量號的位置。
當變量值為空白時,該變量為null。
標記********表示變量值上溢(變量的絕對值大於99999999)或下溢(變量的絕對值小於0.0000001)。
使用限制:
宏變量不能用於程序號、程序段順序號、程序段跳段編號。如不能用於以下用途:
O#1;
/#2 G00 X100.0;
N#3 Y200.0;
2 系統變量SYSTEM VARIABLES系統變量用於讀寫NC裝置的內部數據,如:刀具補償數據、刀具當前位置數據等。但需注意的是,有些系統變量是只讀的。對於(NC的)自動控制和普通的程序開發來說,系統變量是必不可少的。
有關解釋如下:
2.1接口信號Interface signals接口信號可在可編程控制器PMC和用戶宏程序之間進行交換。
表2.1(a)用於接口信號的系統變量
變 量 號
功 能
#1000~#1015
#1032
用於從PMC傳送16位的接口信號到用戶宏程序。#1000~#1015信號是逐位讀取的,而#1032信號是16 位一次讀取的。
#1100~#1115
#1132
用於從用戶宏程序傳送16位的接口信號到PMC。#1100~#1115信號是逐位寫入的,而#1132信號是16 位一次寫入的。
#1133
用於從用戶宏程序一次寫入32位的接口信號到PMC。
注意:#1133取值範圍為-99999999~+99999999。
詳細信息請參連接手冊(B-61393E-2)。
2.2刀具補償值Tool compensation values刀具補償值可通過系統變量讀寫。無論是幾何補償和磨損補償的區別,還是刀具長度補償和刀具切削半徑補償間的區別,能用的變量號數都依賴於補償值的對數。當補償值對數不超過200時,變量號#2001~#2400均可使用。
表2.2(a)刀具補償存儲方式A的系統變量
刀具補償號
系統變量號
1
┊
200
┊
400
#10001(#2001)
┊
#10200(#2200)
┊
#10400(#2400)
表2.2(b)刀具補償存儲方式B的系統變量
刀具補償號
幾何補償
磨損補償
1
┊
200
┊
400
#11001(#2201)
┊
#11200(#2400)
┊
#11400
#10001(#2001)
┊
#10200(#2200)
┊
#10400
表2.2(c)刀具補償存儲方式C的系統變量
補償號
刀具長度補償
刀具半徑補償
幾何補償
磨損補償
幾何補償
磨損補償
1
┊
200
┊
400
#11001(#2201)
┊
#11200(#2400)
┊
#11400
#10001(#2001)
┊
#10200(#2200)
┊
#10400
#13001
┊
┊
#13400
#12001
┊
┊
#12400
2.3宏程序報警信息Macroalarms表2.3表示宏程序報警信息的系統變量
變量號
功能
#3000
當#3000賦值為0~99中的某值時,NC停止並報警,隨後給出一個不超過26個字符的報警信息。同時將#3000的值加上3000作為報警號於報警信息一起顯示在屏幕上。
如:#3000=1(刀具為找到);
報警屏幕顯示:3001TOOL NOT FOUND。
2.4時間信息時間信息可被讀與寫。
變量號
功能
#3001
該變量的功能是作為計時器,並時刻以16毫秒的增量進行計時。當電源關閉時,該變量的值被重置為0。當累計計時65535毫秒時,計時器從0重新計時。(可用於刀具壽命管理)
#3002
該變量的功能是作為計時器,並在循環啟動燈亮的同時,以1 小時為增量進行計時。即使電源關閉,該計時器的值仍保留。當累計計時1145324.612小時時,該計時器從0重新計時。
#3011
該變量用於讀取當前日期(年/月/日)。年/月/日信息被轉換成類似於十進位的數。如:1993年3月28日表示為19930328。
#3012
該變量用於讀取當前時間(時/分/秒)。時/分/秒信息被轉換成類似於十進位的數。如:下午3點34分56秒表示為153456。
2.5自動運行控制自動運行的控制狀態可以改變。
#3003
程序單段運行
輔助功能完成
0
允許 Enabled
等待
1
禁止 disabled
等待
2
允許
不等待
3
禁止
不等待
1、當電源關閉時,#3003的值變為0。
2、當單段運行禁止時,即使單段運行開關置為開(ON),單段運行操作也不執行。
3、當不指定等待輔助功能(M、S、T)完成時,在輔助功能完成前,程序會繼續執行下一程序段。當然也不會輸出分配任務已結束信號(DEN——DistributionEND)。
#3004
速度(進給)保持
Feed hold
速度倍率超越
Feed rate override
準確停止
Exact stop
0
允許
允許
允許
1
禁止
允許
允許
2
允許
禁止
允許
3
禁止
允許
允許
4
允許
允許
禁止
5
禁止
允許
禁止
6
允許
禁止
禁止
7
禁止
禁止
禁止
1、失電時,#3004的值為0。
2、當進給保持禁止時:
a、當進給保持按鈕按下時,工具機用單段運行模式停止。但當用#3003禁止單段運行模式時,單段運行操作不執行。
b、當進給保持按鈕壓下又釋放時,進給保持燈亮,但工具機不停止,程序繼續執行,直到指定進給保持允許的第一個程序段,工具機才停止。
3、當倍率超越禁止時,無論工具機操作面板上速度倍率旋鈕置於何處,速度倍率總是100%。
4、當準確停止檢驗禁止時,即使在沒有指定切削的程序段,也不進行準確停止檢查(到位檢查)。
2.6背景(#3005)Settings背景可以讀寫,二進位值轉換成十進位數。
#15
#14
#13
#12
#11
#10
#9
#8
TAPE
REV4
Setting
#7
#6
#5
#4
#3
#2
#1
#0
SEQ
ABS
INCH
ISO
TVON
REVY
REVX
Setting
REVX:X軸鏡像,開/關
REVY:Y軸鏡像,開/關
TVON:TV檢測,開/關
ISO:輸出代碼格式,EIA/ISO
INCH:公制輸入/英制輸入
ABS:增量編程/絕對編程
SEQ:自動插入順序號(Sequence-number)開/關
REV4:第四軸鏡像開/關
TAPE:F10/11格式穿孔帶開/關
2.7已加工的零件數Number of machined parts待加工零件數(目標數)和已加工零件數(完成數)可以讀寫的。
變量號
功 能
#3901
已加工零件數(完成數)
#3902
待加工零件數(目標數)
注意:不能給零件數賦負值。
2.8模態信息Model information在程序段中指定的模態信息,直到(當前程序段)之前的程序段中是可讀出的。
變量號
功能
分組
#4001
#4002
#4003
#4004
#4005
#4006
#4007
#4008
#4009
#4010
#4011
#4012
#4014
#4015
#4016
┊
#4022
#4102
#4107
#4109
#4111
#4113
#4114
#4115
#4119
#4120
G00 G01 G02 G03 G33
G17 G18 G19
G90 G91
G94 G95
G20 G21
G40 G41 G42
G43 G44 G49
G73 G74 G76 G80~G89
G98 G99
G50 G51
G65 G66 G67
G54~G59
G61~G64
G68 G69
┊
B code
D code
F code
H code
M code
程序段順序號
程序號
S code
T code
Group 1
Group 2
Group 3
Group 4
Group 5
Goup 6
Group 7
Group 8
Group 9
Group 10
Group 11
Group 12
Group 14
Goup 15
Group 16
┊
Group 22
2.9當前位置
位置信息是只讀的。
變量號
位置信息
坐標系統
刀具補償值
運動期間讀操作
#5001~#5004
程序段終點
工件坐標系
不包含
允許
#5021~#5024
當前位置
工具機坐標系
包含
禁止
#5041~#5044
當前位置
工件坐標系
包含
禁止
#5061~#5064
跳轉信號位置
工件坐標系
包含
允許
#5081~#5084
刀具補償值
禁止
#5101~#5104
伺服位置誤差
禁止
說明:
變量號的未位代表軸編號,1對應X軸,2對應Y軸,3對應Z軸,4對應第四軸。
#5081~5084存儲的刀具偏置值是當前執行值,不是後面程序段的處理值。
在G31(跳轉功能)程序段中跳轉信號接通時的刀具位置存儲在變量#5061~# 5064 中.當G31段跳轉信號接通不接通時, 這些變量中貯存指定程序段終點.
運動期間讀為禁止指由於緩衝(預讀)功能的原因, 無法讀取期望值。
2.10工件坐標系補償值(工件坐標系零點偏置值)工件坐標系偏置值可以讀寫。
變量號
功能
#2500~#2506
外部工件坐標系、G54~G59第一軸零點偏置值
#2600~#2606
外部工件坐標系、G54~G59第二軸零點偏置值
#2700~#2706
外部工件坐標系、G54~G59第三軸零點偏置值
#2800~#2806
外部工件坐標系、G54~G59第四軸零點偏置值
#7001~#7004
工件坐標系G54 P1第一~四軸的零點偏置值
#7021~#7024
工件坐標系G54 P2第一~四軸的零點偏置值
┋
┋
#7941~#7944
工件坐標系G54 P48第一~四軸的零點偏置值
變量#2500~#2806是工件坐標系的任選變量,而變量#7001~#7944(G54P1~G54P48)是附加的48個工件坐標系的任選變量。
(G54Pp)的第n軸的工件零點偏置變量號由下式獲得:#[7000+[p-1]*20+n]
3 算術和邏輯運算在表16.2(a)中列出的操作可以使用變量完成。表中右邊的表達式可用常量或變量與函數或運算符組合表示。表達式中的變量#j和#k可用常量替換,也可用表達式替換。
函 數
格 式
備 注
賦值
#i=#j
求和
求差
乘積
求商
#i=#j+#k
#i=#j-#k
#i=#j*#k
#i=#j/#k
正弦
餘弦
正切
反正切
#i=SIN[#j]
#i=COS[#j]
#i=TAN[#j]
#i=ATAN[#J]/[#k]
角度用十進位度表示。
平方根t
絕對值
四捨五入
向下取整
向上取整
#i=SQRT[#j]
#i=ABS[#J]
#I=ROUND[#J]
#I=FIX[#J]
#I=FUP[#J]
或OR
異或XOR
與AND
#I=#J OR #K
#I=#J XOR #K
#I=#J
邏輯運算用二進位數按位操作
十——二進位轉換
二——十進位轉換
#I=BIN[#J]
#I=BCD[#J]
用於轉換發送到PMC的信號或從PMC 接收的信號
說明:
SIN、COS、TAN和ATAN函數使用的角度單位為十進位度。
在反正切函數後指定兩條邊的長度,並用斜線隔開(y/x)。結果為0<=result<360。
如:#1=ATAN[1]/[-1];
#1的值為135.0。
當ROUND函數包含在數學或邏輯操作命令中,IF、WHILE語句中時,四捨五入在第一個小數位進行。
如:#2=1.2345;
#1=ROUND[#2];
則#1=1.0。
當ROUND函數使用於NC語句中的指令地址後時,四捨五入按地址的最小精度進行。
例:鑽孔程序,系統精度0.001mm
#1=1.2345;
#2=2.3456;
G00 G91 X-#1; 移動1.235mm
G01 X-#2; 移動2.346mm
G00 x[#1+#2]; 移動3.580mm
由於1.2345+2.3456=3.5801,四捨五入後為3.580mm,刀具未返回原位。刀具位移誤差來至於運算時,先加後園整。為使刀具返回原位,最後的程序段應改為:
G00 X[ROUND[#1]+ROUND[#2]];
(註:G90編程時,上述問題不一定存在。)
向上取整是指園整後的整數,其絕對值比原值的絕對值大,而向下園整是指園整後的整數,其絕對值比原值的絕對值小。當對負數取整時,需特別注意。
例:
#1=1.2;
#3=FUP[#1]; 2.0
#3=FIX[#1]; 1.0
#2=-1.2;
#3=FUP[#2]; -2.0
#3=FIX[#1]; -1.0
可用函數的前兩個字符表示該函數。
如:ROUND——RO,FIX——FI
1、函數;
2、乘除類運算(*、/、AND、MOD);
3、加減類運算(+、-、OR、XOR).
方括號用於改變運算順序。方括號的嵌套深度為五層,含函數自己的方括號。當方括號超過五層時,發生118號報警。
限制
方括號用於封閉表達式,注意不能用園括號。
運算時會產生誤差
表3(b)運算涉及的錯誤
運算
Average error
平均誤差
Maximum error
最大誤差
誤差類型
type of error
a=b*c
相對誤差relative error (*1)
a=b/c
a=b+c
a=b-c
取小值min (*2)
a=sin[b]
a=cos[b]
絕對誤差absolute error(*3)
degrees(度)
a=atan[b]/[c]
注意:
1、相對誤差大小與運算結果有關;
2、取兩誤差中較小的一個。
3、絕對誤差大小為常值,與運算結果無關。
4、正切函數TAN用SIN/COS完成。
說明:
①由於變量值的精度為8位小數(在NC中變量用科學計數法表示),當在加減運算中處理很大的數時,會出現意想不到的結果。
如:試圖給#1、#2如下賦值
#1=9876543210123.456;
#2=9876543277777.777;
變量的實際值為:
#1=9876543200000.000
#2=9876543300000.000
此時如計算#3=#2-#1,則結果為#3=100000.000。
運算結果的誤差由變量是用二進位數運算引起的。(在nc中用於存儲變量的二進位位是有限的,為表示盡能大的數,將數轉換成科學計數法表示,變量的二進位位中的後幾位表示指數,其餘的位存儲小數部分,當數的有效位多於變量的最大有效位時,多餘的部分進行四捨五入,從而引起誤差。此誤差相對數本身來說,誤差極小,但對結果的影響就可能很大。編程時,應儘可能避免本例的情況。)
②因數據精度的原因,在條件表達式中用EQ、NE、GE、GT、LE和LT時,也可能出現誤差
例:IF [#1 EQ#2]
當#1和#2的值存在近似時,結果就會出現誤差。
但將上式改寫成:IF[ABS[#1-#2] LT 0.001]後,如果兩變量的差值小於所需精度(這裡為0.001)時,就可以認為二者相等。
③因數據精度的原因,在向下取整時許特別注意。
例:
#1=0.002;
#2=#1*1000;
#2的值應為2.000,但實際上為1.99999997。
#3=FIX[#2];
則#3=1.0而不是2.0。
在這種情況下,對一近似值向下取整,自然得不到期望的結果。可將上式改成:
#3=FIX[#2+0.001];
或#3=ROUND[#2];
在除法運算中除數為0或在求正切時角度為90度,產生112號報警。
4宏語句和NC語句下列程序段被認為是宏語句:
包含算術和邏輯運算及賦值操作的程序段;
包含控制語句(如:GOTO,DO,END)的程序段;
包含宏調用命令(如:G65,G66,G67或其它調用宏的G、M代碼)。
不是宏語句的程序段稱NC(或CNC)語句。
即使在程序單段運行模式下執行宏語句,工具機也不停止。但當工具機參數011的第五位設成1時,執行宏語句,工具機用單段運行模式停止。
在刀具補償狀態下,宏語句程序段不作不含運動程序段處理。
子程序調用程序段(在程序段中,子程序被M98或指定的M、T代碼調用)僅包含O,N,P,L地址,和宏語句具有相同特性。
包含M99和地址O、N、P的程序段,具有宏語句特性。
5分支和循環在程序中可用GOTO語句和IF語句改變控制執行順序。分支和循環操作共有三種類型:
GOTO 語句——無條件分支(轉移)
IF語句——條件分支;if…,then…
WHILE語句—— 循環;while…
5.1無條件分支GOTO語句控制轉移(分支)到順序號n所在位置。當順序號超出1~9999的範圍時,產生128號報警。順序號可用表達式指定。
格式:GOTO n;
n——(轉移到的程序段)順序號
例:GOTO1;
GOTO#10;
5.2 條件分支IF語句在IF後指定一條件,當條件滿足時,轉移到順序號為n的程序段,不滿足則執行下一程序段。
格式:
IF [表達式]GOTOn;
處理;
Nn …;
條件表達式由兩變量或一變量一常數中間夾比較運算符組成,條件表達式必需包含在一對方括號內。條件表達式可直接用變量代替。
比較運算符由兩個字母組成,用於比較兩個值,來判斷它們是相等,或一個值比另一個小或大。注意不能用不等號。
表5.2比較運算符
運算符
含義
EQ
相等equal to (=)
NE
不等於not equal to (≠)
GT
大於Greater than (>)
GE
大於等於greater than or equal to(≥)
LT
小於less than (<)
LE
小於等於less than or equal to (≤)
求1~10的和。
O9500;
#1=0; 和
#2=1; 加數
N1 IF[#2 GT 10] GOTO2; 相加條件
#1=#1+#2; 相加
#2=#2+1; 下一加數
GOTO1; 返回1
N2 M30; 結束
5.3 循環WHILE語句在WHILE後指定一條件表達式,當條件滿足時,執行DO到END之間的程序,(然後返回到WHILE重新判斷條件,)不滿足則執行END後的下一程序段。
格式:
WHILE [條件表達式]DO m; (m=1, 2, 3)
處理;
END m;
WHILE語句對條件的處理與IF語句類似。
在DO和END後的數字是用於指定處理的範圍(稱循環體)的識別號,數字可用1、2、3表示。當使用1、2、3之外的數時,產生126號報警。
對單重DO-END循環體來說,識別號(1~3)可隨意使用且可多次使用。但當程序中出現循環交叉(DO範圍重疊)時,產生124號報警。
1、識別號(1~3)可隨意使用且可多次使用
WHILE […] DO1;
Processing
END1;
…
WHILE […] DO1;
Processing
END1;
2、DO範圍不能重疊
WHILE […] DO1;
Processing
WHILE […] DO2;
…
END1;
Processing
END2;
3、DO循環體最大嵌套深度為三重
WHILE […] DO1;
…
WHILE […] DO2;
…
WHILE […]DO3;
Processing
END3;
…
END2;
…
END1;
4、控制不能跳轉到循環體外
WHILE […] DO1;
…
IF […] GOTO n;
…
END1;
Nn … ;
5、分支不能直接跳轉到循環體內
IF […] GOTO n;
…
WHLE […] DO1;
…
Nn … ;
…
END1;
1、無限循環Infinite loops
當指定Do m而未指定WHILE語句時,將產生一個從DO到END為循環體的無限循環。
2、處理時間
當轉移到GOTO語句中指定順序號對應的程序段時,程序段根據順序號搜索。因此向回跳轉比向前跳轉要花費更多的處理時間。此時使用WHILE 語句循環可減少處理時間。
3、未定義變量
在條件表達式中使用EQ和NE判斷時,空值(null)和0會產生不同的結果,在其它類型的條件表達式中,空值(null)被認為是0。
求1~10的和
O9501;
#1=0;
#2=1;
WHILE [#2 LE 10] DO1;
#1=#1+#2;
#2=#2+1;
END1;
M30;
6 調用宏程序
宏程序可用下述方式調用:
簡單調用G65;
模態調用G66、G67;
用G代碼調用宏程序;
用M代碼調用宏程序;
用M代碼的子程序調用;
用T代碼的子程序調用。
A、用G65可以指定實參(傳送給宏程序的數據),而M98 沒有此能力。
B、當M98程序段包含其它NC指令(如:G01X100.0 M98 Pp)時,在該指令執行完後調用子程序,而G65則無條件調用宏程序。
C、當M98程序段包含其它NC指令(如:G01X100.0 M98 Pp)時,在程序單段運行模式下工具機停止,而G65不會讓工具機停止。
D、G65調用時,局部變量的層次被修改,而M98調用不會更改局部變量的層次。
6.1 簡單調用G65
當指定G65調用時,地址P後指定的用戶宏程序被調用,同時數據(實參)被傳遞給用戶宏程序。
格式:G65 Pp Ll <實參描述>;
p——被調宏程序號;l——調用次數,預設值為1。實參——傳送給宏程序的數據。
例:
O0001; O9010;
… #3=#1+#2;
G65 P9010 L2 A1.0 B2.0; IF [#3 GT 360] GOTO 9;
… G00 G91 X#3;
M30; N9 M99;
說明:
在G65後用地址P指定需調用的用戶宏程序號;
當重複調用時,在地址L後指定調用次數(1~99)。L省略時,既定調用次數是1。
通過使用實參描述,數值被指定給對應的局部變量。
有兩種實參描述類型,實參描述類型Ⅰ可同時使用除G、L、O、N和P之外的字母各一次。而實參描述類型Ⅱ只能使用A、B、C各一次,使用I、J、K最多十次。實參描述類型根據使用的字符自動判斷。
實參描述類型Ⅰ
地址
變量號
地址
變量號
地址
變量號
A
B
C
D
E
F
H
#1
#2
#3
#7
#8
#9
#11
I
J
K
M
Q
R
S
#4
#5
#6
#13
#17
#18
#19
T
U
V
W
X
Y
Z
#20
#21
#22
#23
#24
#25
#26
註:地址G、L、N、O、P不能用於實參;不需指定的地址可省略,省略地址對應的局部變量設成空(null)。
實參描述類型Ⅱ
地址
變量號
地址
變量號
地址
變量號
A
B
C
I1
J1
K1
I2
J2
K2
I3
J3
#1
#2
#3
#4
#5
#6
#7
#8
#9
#10
#11
K3
I4
J4
K4
I5
J5
K5
I6
J6
K6
I7
#12
#13
#14
#15
#16
#17
#18
#19
#20
#21
#22
J7
K7
I8
J8
K8
I9
J9
K9
I10
J10
K10
#23
#24
#25
#26
#27
#28
#29
#30
#31
#32
#33
註:I、J、K的下標(subscripts)用於表示實參描述的順序,實際程序中不需寫出。
限制
1、格式
G65必須在實參之前指定。
2、實參描述Ⅰ和Ⅱ的混合
NC內部識別實參描述Ⅰ和Ⅱ,當二者混合指定時,實參描述類型由後出現的地址決定。(即兩種類型可同時使用,當多個地址對應同一個局部變量時,該變量的值由後出現的地址決定)
3、小數點的位置
一個不帶小數點的實參在數據傳遞時,其單位按其地址對應的最小精度解釋,因此,不帶小數點的實參,其值在傳遞時有可能根據工具機的系統參數設置而被更改。為此,應養成在宏調用實參中使用小數點的好習慣,以保持程序的兼容性。
4、調用嵌套
調用可嵌套四層,包括簡單調用G65和模態調用G66,但不包括子程序調用M98。
5、局部變量的層次
嵌套調用時,局部變量的層次指定為0~4。
主程序的層次為0。
宏程序每(嵌套)調用一次(G65,G66),局部變量的層次加一,原有局部變量的值被NC保存(不可見)。
當M99執行時,控制返回呼調程序。此時,局部變量層次減一,宏程序調用時保存的原有局部變量值被恢復。
例:
例程(多孔循環)
創建一個宏程序,用於加工處於同一分布圓上的H個孔。孔起始角為A,孔間夾角為B,分布圓半徑為I,圓心為(x,y)。指令可用絕對或增量方式指定。當需順時針方向加工時,B用負值指定。
G65 P9100 Xx Yy Zz Rr Ff Ii Aa Bb Hh;
X:分布圓圓心的X坐標(絕對或增量指定)#24
Y
:分布圓圓心的Y坐標(絕對或增量指定)#25
Z:孔深 ――――――――――――――――#26
R:接近點(R點)坐標 ―――――――――#18
F:進給速率 ――――――――――――――#9
I:分布圓半徑 ―――――――――――――#4
A:鑽孔起始角―――――――――――――#1
B:增量角(順時針時負值指定)―――――#2
H:孔數――――――――――――――――#11
O0002;
G90 G92 X0 Y0 Z100.0;
G65 P9100 X100.0 Y50.0 R30.0 Z-50.0 I100.0 A0 B45.0 H5;
M30;
O9100;
#3=#4003;--讀取03組G代碼(G90/G91)
IF [#3 EQ 90] GOTO 1;-G90模式跳至N1分支
#24=#5001+#24;計算圓心X坐標
#25=#5002+#25;計算圓心Y坐標
N1 WHILE [#11 GT 0] DO 1;
#5=#24+#4*COS[#1];----計算孔軸線X坐標
#6=#25+#4*SIN[#1];計算孔軸線Y坐標
G90 X#5 Y#6;---鑽孔前定位到目標孔處
G81 Z#26 R#18 F#19 K0;---鑽孔循環
#1=#1+#2;---計算下一孔的角度
#11=#11-1;--孔數減一
END 1;
G#3 G80;----回復G代碼原有狀態
M99;
#3:03組G代碼的狀態
#5:下一孔孔軸線X坐標
#6:下一孔孔軸線Y坐標
#5001:程序段終點的X坐標
#5002:程序段終點的Y坐標
6.2模態調用G66
一旦指令了G66,就指定了一種模態宏調用,即在(G66之後的)程序段中指令的各軸運動執行完後,調用(G66指定的)宏程序。這將持續到指令G67為止,才取消模態宏調用。
解釋
在G66後,用地址P為模態調用指定程序號;
當需要重複次數時,可在地址L後指定從1~9999的數字。
和簡單調用G65一樣,傳遞給宏程序的數據用實參指定。
當指定G67指令時,後續程序段不再執行模態調用。
調用可嵌套四層,包括簡單調用G65和模態調用G66,但不包括子程序調用M98。
在模態調用期間可指令另一個G66代碼,而產生模態調用的嵌套。
限制:
在G66程序段不可調用宏;
G66應在實參之前指令;
在僅含有一個代碼的程序段,當該代碼與坐標軸運動無關,如M功能,將不產生宏調用。
只需在G66程序段中設置局部變量,注意每次模態調用執行時,不再設置局部變量。
例程
使用自定義宏程序創建與固定循環G81相同的操作,加工程序用模態宏調用。為簡化程序,所有鑽孔數據用絕對值指定。
該固定循環包含下列基本操作:
操作1:沿X、Y軸的定位;
操作2:快進到R點;
操作3:切削進給至孔底Z點;
操作4:快速回退至R點或起始點I。
G65 P9110 Xx Yy Zz Rr Ff Ll;
X:孔軸線的X坐標 ……………….. #24
Y:孔軸線的Y坐標 ……………….. #25
Z:Z點的坐標 ……………………… #26
R:R點的坐標 ……………………… #18
F:進給速率 ………………………… #9
L:重複次數
O0001;
G28 G91 X0 Y0 Z0;
G92 X0 Y0 Z50.0;
G00 G90 X100.0 Y50.0;
G66 P9110 Z-20.0 R5.0 F500;
G90 X20.0 Y20.0;
X50.0;
Y50.0;
X70.0 Y80.0;
G67;
M30;
O9110;
#1=#4001; ………………………………貯存G00/G01
#3=#4003; ………………………………貯存G90/G91
#4=#4109; ………………………………貯存進給速率
#5=#5003; ………………………………貯存鑽孔起始Z坐標
G00 G90 Z#18; …………………………定位至R點
G01 Z#26 F#9; …………………………切削至Z點
IF [#4010 EQ 98] GOTO 1; ……………返回至I點
G00 Z#18; ………………………………返回至Z點
GOTO 2;
N1 G00 Z#5; ……………………………返回至I點
N2 G#1 G#3 F#4; ………………………恢復模態信息
M99;
6.3 使用G代碼的宏調用
通過在系統參數中設置G代碼數字可用於調用宏程序,該宏程序就像簡單調用G65一樣被調用。
解釋
通過在系統通信參數(220~229)中設置G代碼數字(1~255),可調用自定義宏程序(9010~9019),該宏程序以和簡單調用G65一樣的方式調用。
例如,當系統參數如上設置時,可使用G81調用自定義宏程序O9010,通過調用使用宏程序定製的用戶專有循環(user-specific cycle),從而無需修改加工程序。
1、系統參數號與程序號間的對應關係
程序號
參數號
O9010
O9011
O9012
O9013
O9014
O9015
O9016
O9017
O9018
O9019
220
221
222
223
224
225
226
227
228
229
2、重複
與簡單調用一樣,可在地址L後指定從1~9999的重複次數。
3、參數指定
與簡單調用一樣,有兩種類型的參數指定方式:參數指定類型I和參數指定類型II。參數指定類型自動根據地址的使用進行判斷。
用G代碼調用的嵌套:
在被G代碼調用的程序中,不能有用G代碼調用的宏程序。在這樣的程序中,G代碼被當作普通G代碼對待。在被M或T代碼調用的子程序中,不能有用G代碼調用的宏程序。在這樣的程序中,G代碼也被當作普通G代碼對待。
6.4 使用M代碼的宏調用
通過在系統參數中設置M代碼數字可用於調用宏程序,該宏程序就像簡單調用G65一樣被調用。
解釋
通過在系統通信參數(230~239)中設置M代碼數字(1~255),可調用自定義宏程序(9020~9029),該宏程序以和簡單調用G65一樣的方式調用。
1、系統參數號與程序號間的對應關係
程序號
參數號
O9020
O9021
O9022
O9023
O9024
O9025
O9026
O9027
O9028
O9029
230
231
232
233
234
235
236
237
238
239
2、重複
與簡單調用一樣,可在地址L後指定從1~9999的重複次數。
3、參數指定
與簡單調用一樣,有兩種類型的參數指定方式:參數指定類型I和參數指定類型II。參數指定類型自動根據地址的使用進行判斷。
限制
用於調用宏程序的M代碼必須在程序段的開頭指令。
在被G代碼調用的宏程序中,或在被M或T代碼調用的子程序中,不能有用M代碼調用的宏程序。在這樣的程序中,M代碼被當作普通M代碼對待。
6.5 使用M代碼的子程序調用
通過在系統參數中設置M代碼數字可用於調用子程序(宏程序),該宏程序就像子程序調用M98一樣被調用。
解釋
通過在系統通信(corresponding)參數(240~242)中設置M代碼數字(1~255),可調用自定義宏程序(9001~9003),該宏程序以和子程序調用M98一樣的方式調用。
1、系統參數號與程序號間的對應關係
程序號
參數號
O9001
O9002
O9003
240
241
242
2、重複
與簡單調用一樣,可在地址L後指定從1~9999的重複次數。
3、參數指定
不允許指定參數。
限制
在被G代碼調用的宏程序中,或在被M或T代碼調用的子程序中,不能有用M代碼調用的子程序。在這樣的程序中,M代碼被當作普通M代碼對待。
6.6 使用T代碼的子程序調用
通過系統參數中設置,可允許使用T代碼調用子程序(宏程序),當加工程序中每次指令該T代碼時,對應宏程序被調用。
解釋――調用
通過將系統參數040的第5位置1,可在加工程序中指令T代碼調用宏程序O9000。在加工程序中指令的T代碼用公用(全局)變量#149指定。
限制
在被G代碼調用的宏程序中,或在被M或T代碼調用的子程序中,不能有用T代碼調用的子程序。在這樣的程序中,T代碼被當作普通T代碼對待
(免責聲明:以上圖文源於網絡,貴在分享,版權歸原作者或原出處所有,如若侵權請聯繫刪除)
長按戓截圖二維碼掃一掃關注我們
微信搜索X888888X666600也關注我
關注不失聯
客服微信:
更多精彩
QQ交流群866302065