❶ 怎樣用數控銑床加工橢圓,只需編程,急用……謝謝
假設橢圓中心在工件坐標零點的位置,以下是精加工橢圓的宏程序:碧差
G01X20Y0F0.2;
#1=1;
WHILE[#1LT360]DO1;
#2=20*COS[#1];
#3=11*SIN[#1];
G01X#2Y#3;
#1=#1+1;
DO1;
G00X50;
不要宏程序的話,可以拿圓弧逼近,用AUTOCAD先畫橢圓出來,然後用圓弧逼近,出來的都是近似值。這樣,如果零件精度要求不高的話,也能出來橢圓。
可以通過以下方法解決問題:
1、這個建議你藉助Mastercam軟體建立其三維模型再使用自動編程功能輕松搞定!
好辦,你先得看圖紙(顯然這是廢話,不過這是事實)
加工前記得把工件坐標糸原點對在在橢圓的中心
你是不是直接或間接找到了這個橢園長軸和短軸的長度了?(圖紙沒標錯沒標漏尺寸的話,一定能找出)
有了這個兩個尺寸,這個橢園就可以確定了
接下來,你根據上面的兩如褲個尺寸寫出橢園的標准方程(不知道什麼是橢圓的方程,不知道什麼是橢圓的軸?
好吧,送佛送到西,橢園的標准方程是:(x/a)括弧外面平方+(y/b)括弧外平方=1,a是長軸長度,b是短軸長度)
要是你還不明白,回去找你們高中數學老師去,要不去自學《平面解析幾體》
把方程寫 y=f(x)(1號等式 ) 的形式
顯然,x變,y也跟著變
關鍵部分開始:
以西門子802S為例,具體思路為:
先告訴機子,R1=a R2=0 。。。。 R1=a R2=0
再讓刀到X=R1,y=R2的地方 MKARKE1:G01 X=R1 Y=R2
註:"MKARTE"是一個記號,等下你就明白在這做記號的原因了
再告訴機子,現在的R1比剛才的R少了0.01了 R1=R1-0.01
再告訴機子,R2是隨著R1按橢園規律變化的, R2=f(R1)既代入1號式
好了,直線擬合: G01 X=R1 Y=R2
(因為R1隻減少了0。01,因此這一步,刀只動了一點點,幾乎看不到)
現在問機子,我們的參數R1等於零了沒?
如果沒等於零,程序跳轉到MKARKE的地方 IF R1>0 GOTOB MKARKE1
這樣,機子就從上MKARKE1的地方往下走,走到 IF R1>0 GOTOB MKARKE1的地方發現R1比零大,於是他又跳到MKARKE1的地方重新走,每走一遍X坐標就小了0。01,Y跟著增加,直到X走到零時,我們橢園第一象限的輪廓也完成了,然後退刀
G00Z5
G00X100Y100
橢園是對稱的,其它象限的走法,雷同,自己研究吧,比如在第五程序斷中,
如果寫成G01 X=R1 Y=-R2,則會走出第四象限的輪廓
還有一種用橢圓參數方程編程的方法,不用分四次走,不過本質上是一樣的
好了,費了這么大的勁,你是渣慧簡不是多給幾分呢?
不同的系統指令格式稍有區別。
比如:華中的。G02/G02 X Y Z R F 或者G02/G02 X Y Z I J F
數控銑床編程銑圓怎樣編以下與這幾種:
一:G54X0Y0Z100(定義坐標通常是檢查坐標是否正確可以不要編程習慣)
M3S1000(主軸正傳)
G0X40(到達圓弧的起點)
G01Z0F1000
Z-6F100
G02I-40F500(他的完整式G02X40Y0I-40J0F500,xy是圓弧終點,ij是相對於圓弧起的到圓心的距離,如果式中又不變的量可省略)
G0Z100
M30
二:種是用圓弧指令,如果銑刀順時針旋轉,銑內圓用G02, 銑外圓輪廓用G03,反之,逆時針就對調過來。
假設銑內圓,圓半徑10.,圓心(0, 0),則
T101
G42
G0X0Y-10.
M15 ;下刀
G2X10.Y0.A10.
G2X0.Y10.A10.
G2X-10.Y0.A10.
G2X0.Y-10.A10.
M17 ;抬刀
G40
M30
三:則是用G32/33撈圓指令,不過不是每一種設備都支援,語法:
G32X0.Y0.A10.
四;一般操作的話,發那科系統銑床 在手動編輯裡面編製程序就行了 G02順時針方向圓弧切削 G03逆時針方向圓弧切削 一般基本都用G03逆時針切削視為順銑切削 比如利用直徑30銑刀加工一個直徑為40的圓 相對坐標設置圓心為X0Y0 G91G01X-5.F**** G03I5. X5. M30 有深度的循環加工 可以利用主程序調用子程序,(M98) 主程序O0001 M3S*****(M3主軸正轉) G91G01X-***(X-***:加工圓孔的半徑與刀具半徑的差值) M98P2L***(M98:調用子程序 P2:被調用子程序號為O0002 L***:循環次數,依圓孔深度與切削量指定) G91G01X***(X***:加工圓孔的半徑與刀具半徑的差值) M30 子程序O0002 G91G03I***(I***:I是指定半徑,即I後面跟的數值是加工圓孔的半徑與刀具半徑的差值) M99(M99為重復循環)在中國非標刀具網看到的相關答案,
不同的系統指令格式稍有區別。我用的是華中的。G02/G02 X Y Z R F 或者G02/G02 X Y Z I J F
其中,整圓編程只能用I J方式編程。小於半圓R取正,大於半圓R取負。希望對你有幫助
用宏程序啊
假設橢圓中心在工件坐標零點的位置,以下是精加工橢圓的宏程序:用宏程序粗加工的話請另行提問。 G01X20Y0F0.2; #1=1; WHILE[#1LT360]DO1; #2=20*COS[#1]; #3=11*SIN[#1]; G01X#2Y#3; #1=#1+1; DO1; G00X50; 需要解釋的話再找我! 不要宏程序的話,可以拿圓弧逼近,用AUTOCAD先畫橢圓出來,然後用圓弧逼近!出來的都是近似值!這樣,如果零件精度要求不高的話,也能出來橢圓!
銑R角 fanuc 三菱或接近fanuc系統的系統G代碼基本上都是一樣的得知道R角的起點和終點的位置 根據實際情況 用G02 G03 採納
一般操作,發那科系統銑床 ,在手動編輯裡面編製程序就可以了。 G02順時針方向圓弧切削 G03逆時針方向圓弧切削 一般基本都用G03逆時針切削視為順銑切削 比如利用直徑30銑刀加工一個直徑為40的圓 相對坐標設置圓心為X0Y0 G91G01X-5.F**** G03I5. X5. M30 有深度的循環加工 可以利用主程序調用子程序,(M98) 主程序O0001 M3S*****(M3主軸正轉) G91G01X-***(X-***:加工圓孔的半徑與刀具半徑的差值) M98P2L***(M98:調用子程序 P2:被調用子程序號為O0002 L***:循環次數,依圓孔深度與切削量指定) G91G01X***(X***:加工圓孔的半徑與刀具半徑的差值) M30 子程序O0002 G91G03I***(I***:I是指定半徑,即I後面跟的數值是加工圓孔的半徑與刀具半徑的差值) M99(M99為重復循環)。
數控銑床編程的特點有以下幾點:
(1)bn零件加工的適應性強、靈活性好,能加工輪廓形狀特別復雜或難以控制尺寸的零件,如模具類零件、殼類零件等。
(2)bn能加工普通機床無法加工或很難加工的零件,如用數學模型描述的復雜曲線零件以及三維空間曲面零件。
(3)bn能加工一次裝夾定位後,須進行多道工序加工的零件。
(4)bn加工精度高、加工質量穩定可靠。
(5)bn生產自動化程度高,可以減輕勞動者的勞動強度,有利於生產管理自動化。
(6)bn生產效率高。
(7)bn從切削原理上講,無論是端洗或是周洗都屬於斷續切削方式,而不象車削那樣連續切削,因此對刀具的要求較高,同時還要求有良好的鋼性
❷ 宏程序什麼意思
問題一:宏程序什麼意思 大家都在問宏程序~其實說起來宏就是用公式來加工零件的,比如說橢圓,如果沒有宏的話,我們要逐點算出曲線上的點,然後慢慢來用直線逼近,如果是個光潔度要求嘩旅友很高的工件的話,那麼需要計算很多的點,可是應用了宏後,我們把橢圓公式輸入到系統中然後我們給出Z坐標並且每次加10um那麼宏就會自動算出X坐標並且進行切削,實際上宏在程序中主要起到的是運算作用..宏一般分為A類宏和B類宏.A類宏是以G65 Hxx P#xx Q#xx R#xx的格式輸入的,而B類宏程序則是
以直接的公式和語言輸入的和C語言很相似在0i系統中應用比較廣.由於現在B類宏程序的大量使
用很多書都進行了介紹這里我就不再重復了,但在一些老系統中,比如法蘭克OTD系統中由於它的MDI鍵盤上沒有公式符號,連最簡單的等於號都沒有,為此如果應用B類宏程序的話就只能在計算機上編好再通過RSN-32介面傳輸的數控系統中,可是如果我們沒有PC機和RSN-32電纜的話怎麼辦呢,那麼只有通過A類宏程序來進行宏程序編制了,下面我介紹一下A類宏的引用;
A類宏是用鎮橡G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式輸入的xx的意思就是數值,是以um級的量輸入的,比如你輸入100那就是0.1MM~~~~~.#xx就是變數號,關於變數號是什麼意思再不知道的的話我也就沒治了,不過還是教一下吧,變數號就是把數值代入到一個固定的地址中,固定的地址就是變數,一般OTD系統中有#0~~~#100~#149~~~#500~#531關閉電源時變數#100~#149被初始化成「空」,而變數#500~#531保持數據.我們如果說#100=30那麼現在#100地址內的數據就是30了,就是這么簡單.好現在我來說一下H代碼,大家可以看到A類宏的標准格式中#xx和xx都是數值,而G65表示使用A類宏,那麼這個H就是要表示各個數值和變數號內的數值或者各個變數號內的數值與其他變數號內的數值之間要進行一個什麼運算,可以說你了解了H代碼A類宏程序你基本就可以應用了,好,現在說一下H代碼的各個含義:
以下都以#100和#101和#102,及數值10和20做為例子,應用的時候別把他們當格式就行,
基本指令:
H01賦值;格式:G65H01P#101Q#102:把#102內的數值賦予到#101中
G65H01P#101Q#10:把10賦予到#101中
H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的數值加上#103的數值賦予#101
G65 H02 P#101 Q#102 R10
G65 H02 P#101 Q10 R#103
G65 H02 P#101 Q10 R20
上面4個都是加指令的格式都是把Q後面的數值或變數號內的數值加上R後面的數
值或變數號內的數值然後等於到P後面的變數號中.
H03減指令;格式G65 H03 P#101 Q#102 R#103,把#102的數值減去#103的數值賦予#101
G65 H03 P#101 Q#102 R10
G65 H03 P#101 Q10 R#103
G65 H03 P#101 Q20 R10
上面4個都是減指令的格式都是把Q後面的數值或變數號內的數值減去R後面的數
值或變數號內的數值然後等於到P後面的變數號中.
H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的數值乘上#103的數值賦予#1......>>
問題二:宏程序中EQ是什麼意思? 是等於的意思,GT是大於,NE是不等於,GE是大於等於,LT是小於,LE是小於等於,希望對你有幫助
問題三:數控編程宏程序中#1#2……是什麼意思 宏程序中的代號,他好比我們小學學的X(愛克斯),我舉個例子哈。當X=2時,那麼5+X就等於7.如果我在程序中寫上#1=5,那麼下一段只亂槐要讀到#1系統就知道是5了。如果下面有一行程序為G0X[#1+2]Z30. 那麼系統就會把刀具走刀X是7的位置,Z走刀30的位置。如果在指令#1=#1-1的話那麼系統每讀到#1的時候都會在上一個#1的數據減掉1毫米。這就是他的作用,也就是不單單表示一個數據,他還能運用計算來完成一些編程比較麻煩的環境中,希望我的解答能夠使你了解宏!
問題四:宏程序#0什麼意思 詳細點 #0代表的是空變數,不管給#0賦值多少它的變數值都為零.
問題五:宏程序中fix什麼意思 截斷取整。例:fix(3.7)=3
區別於四捨五入取整round,如round(3.7)=4
問題六:誰知道數控宏程序是什麼意思啊? 宏就是用公式來加工零件的,比如說橢圓,如果沒有宏的話,我們要逐點算出曲線上的點,然後慢慢來用直線逼近,如果是個光潔度要求很高的工件的話,那麼需要計算很多的點,可是應用了宏後,我們把橢圓公式輸入到系統中然後我們給出Z坐標並且每次加10um那麼宏就會自動算出X坐標並且進行切削, 實際上宏在程序中主要起到的是運算作用..宏一般分為A類宏和B類宏.A類宏是以G65 Hxx P#xx Q#xx R#xx的格式輸入的,而B類宏程序則是以直接的公式和語言輸入的和C語言很相似在0i系統中應用比較廣.
問題七:宏程序裡面的#j 是什麼意思 #表示變數號,j表示某個數字。
問題八:宏程序里GE GT IF等 那些都是什麼意思啊? 5分 分別是大於等於,大於,如果,有興趣可以網路中國寧波數控交流群
來自UC瀏覽器
問題九:加工中心宏程序#1#2是什麼意思? 這只是一個代號而已,與XY的作用差不多
問題十:宏程序中的then是什麼意思 然後啊,這個一般是跟if一起用的,
if ... then ...
如果解決了您的問題請採納!
如果未解決請繼續追問
❸ 數控編程宏程序的指令
宏程序編程
一 變數
普通加工程序直接用數值指定G代碼和移動距離;例如,GO1和X100.0。使用用戶宏程序時,數值可以直接指定或用變數指定。當用變數時,變數值可用程序或用MDI面板上的操作改變。
#1=#2+100
G01 X#1 F300
說明:
變數的表示
計算機允許使用變數名,用戶宏程序不行。變數用變數符號(#)和後面的變數號指定。
例如:#1
表達式可以用於指定變數號。此時,表達式必須封閉在括弧中。
例如:#[#1+#2-12]
變數的類型
變數根據變數號可以分成四種類型
變數號
變數類型
功能
#0
空變數
該變數總是空,沒有值能賦給該變數.
#1-#33
局部變數
局部變數只能用在宏程序中存儲數據,例如,運算結果.當斷電時,局部變數被初始化為空.調用宏程序時,自變數對局部變數賦值,
#100-#199
#500-#999
公共變數
公共變數在不同的宏程序中的意義相同.當斷電時,變數#100-#199初始化為空.變數#500-#999的數據保存,即使斷電也不丟失.
#1000
系統變數
系統變數用於讀和寫CNC運行時各種數據的變化,例如,刀具的當前位置和補償值.
變數值的范圍
局部變數和公共變數可以有0值或下面范圍中的值:
-1047到-10-29或-10-2到-1047
如果計算結果超出有效范圍,則發出P/S報警NO.111.
小數點的省略
當在程序中定義變數值時,小數點可以省略。
例:當定義#1=123;變數#1的實際值是123.000。
變數的引用
為在程序中使用變數值,指定後跟變數號的地址。當用表達式指定變數時,要把表達式放在括弧中。
例如:G01X[#1+#2]F#3;
被引用變數的值根據地址的最小設定單位自動地舍入。
例如:
當G00X#/;以1/1000mm的單位執行時,CNC把123456賦值給變數#1,實際指令值為G00X12346.
改變引用變數的值的符號,要把負號(-)放在#的前面。
例如:G00X-#1
當引用未定義的變數時,變數及地址都被忽略。
例如:當變數#1的值是0,並且變數#2的值是空時,G00X#1 Y#2的執行結果為G00X0。
雙軌跡(雙軌跡控制)的公共變數
對雙軌跡控制,系統為每一軌跡都提供了單獨的宏變數,但是,根據參數N0.6036和6037的設定,某些公共變數可同時用於兩個軌跡。
未定義的變數
當變數值未定義時,這樣的變數成為空變數。變數#0總是空變數。它不能寫,只能讀。
引用
當引用一個未定義的變數時,地址本身也被忽略。
當#1=
當#1=0
G90 X100 Y#1
G90 X100
G90 X100 Y#1
G90 X100 Y0
(b) 運算
除了用賦值以外,其餘情況下與0相同。
當#1=時
當#1=0時
#2=#1
#2=
#2=#1
#2=0
#2=#*5
#2=0
#2=#*5
#2=0
#2=#1+#1
#2=0
#2=#1+#1
#2=0
(c)條件表達式
EQ和NE中的不同於0。
當#1=時
當#1=0時
#1EQ#0 成立
#1EQ#0 不成立
#1 NE #0 成立
#1 NE #0 不成立
#1 GE #0 成立
#1 GE #0 不成立
#1 GT #0 不成立
#1 GT #0 不成立
限制
程序號,順序號和任選程序段跳轉號不能使用變數。
例:下面情況不能使用變數:
0#1;
/#2G00X100.0;
N#3Y200.0;
二 算術和邏輯運算
下面表中列出的運算可以在變數中執行。運算符右邊的表達式可包含常量和或由函數或運算符組成的變數。表達式中的變數#j和#k可以用常數賦值。左邊的變數也可以用表達式賦值。
說明:
角度單位
函數SIN ,COS,ASIN,ACOS,TAN和ATAN的角度單位是度。如90°30'表示為90.5度。
ARCSIN # i= ASIN[#j]
(1)取值范圍如下:
當參數(NO.6004#0)NAT位設為0時,270°~90°
當參數(NO.6004#0)NAT位設為1時,-90°~90°
(2)當#j超出-1到1的范圍時,發出P/S報警NO.111.
(3)常數可替代變數#j
ARCCOS #i=ACOS[#j] 取值范圍從180°~0° 當#j超出-1到1的范圍時,發出P/S報警NO.111. 常數可替代變數#j
三 程序舉例
銑橢圓:
軌跡:
橢圓程序代碼如下:
N10 G54 G90 G0 S1500 M03
N12 X0 Y0 Z20.
N14 G0 Z1
N16 G1 Z-5. F150.
N18 G41 D1
N20 #1=0
N22 #2=34
N24 #3=24
N26 #4=#2*COS[#1]
N28 #5=#3*SIN[#1]
N30 #10=#4*COS[45]-#5*SIN[45]
N32 #11=#4*SIN[45]+#5*COS[45]
N34 G1 X#10 Y#11
N36 #1=#1+1
N38 IF [#1 LT 370] GOTO26
N40 G40 G1 X0 Y0
N42 G0 Z100
N44 M30
銑矩形槽:
銑矩形槽代碼如下:
#102=0.
N3#100=0.
#101=0.
#103=200.
#104=400.
G91G28Z0.
G0G90G54X0.Y0.
G43H1Z20.
M3S2000.
N4G0X#100Y#101
G01Z#102F200.
#102=#102-2.
IF[#102EQ-50.]GOTO1
GOTO2
N2
N4X#104F500.
Y#103
X#100
Y#101
#100=#100+10.
#101=#101+10.
#103=#103-10.
#104=#104-10.
IF[#100EQ100.]GOTO3
GOTO4
N3
N1
M5
M9
G91G28Z0.
G28Y0.
M30
銑傾斜3度的面:
軌跡:
銑傾斜3度的面的代碼如下:
O0001
#[#1+1*2]=1
G65P9012L1A0B0.1C4I100J3K0
M30
宏程序O9012代碼如下:
G54 G90 G00 X[#3] Y0 Z100
S500 M3
G01 Z0 F300
WHILE[#1LE10]DO1
#7= #1/TAN[#5]+#3
G1Z-#1 X#7
#8=#6/2-ROUND[#6/2]
IF[#8EQ0]GOTO10
G1Y0
GOTO20
N10 Y#4
N20#1=#1+#2
#6=#6+1
END1
G0
Z100
銑半球:
軌跡:
銑半球代碼如下:
G90G0G54X-10.Y0M3S4500
G43Z50.H1M8
#1=0.5
WHILE[#1LE50.]DO1
#2=50.-#1
#3=SQRT[2500.-[#2*#2]]
G1Z-#1F20
X-#3F500
G2I#3
#1=#1+0.5
END1
G0Z50.M5
M30
銑喇叭:
銑喇叭代碼如下:
M03 S500
M06 T01
#1=0
#2=0
G0 Z15
X150 Y0
N11
#2=30*SIN[#1]
#3=30+30*[1-COS[#1]]
G01 Z-#2 F40
G41 X#3 D01
G03 I-#3
G40 G01 X150 Y0
#1=#1+1
IF [#1 LE 90] GOTO 11
G0 Z30
M30
❹ 宏程序while[#100le#4]d01什麼意思
當 變數 #100 小於或等如灶於 #4 程序在WHILE 到 END 01 之間循環執行大枯
當 #100 大於 #4 程序不循渣仿扮環 從END 01 下一段執行
❺ 誰能幫我解釋這銑床用宏程序精加工橢圓 每一步的意思
這個程序是我編的,花了時間的哦``這種宏程序是加工橢圓最簡單的```居然都不採納!
❻ 數控銑床橢圓宏程序編程
西門子:
長半軸=45
短半軸=25
O0001
T1D1
N13G90G00X65Y0Z100.0 刀具運行到(65,0,100)的位置
N14S1000M03
N15G01Z-10F1000.0 刀具下到-10mm
N16#114=0 賦初始值
N18#112=45*COS[#114] 計算X坐標值
N20#113=25*SIN[#114] 計算Y坐標值
N22G01G42X[#112]Y[#113]D02F200.0走到第一點 N24#114=#114+1 變數#114增加一個角度步長
N26IF[#114LT361]GOTO18 條件判斷#114是否小於361,滿足則返回18
N28G01G40X65Y0 取消刀具補償,回到(65,0)
N30G90G00Z100.0M05 快速抬刀
N32M30 程序結束
發那科:
長軸48,短軸36
程序如下:
O1001(主程序)
T0101
G94S700M03M08
G54
G00G43Z30
G90X40Y0
Z2
G01Z0F150
M98P120L9(去毛坯餘量,每次切深2毫米)
G00Z3
M30
O120(毛坯餘量子程序)
G91G01Z-2
G90
#103=360(角度變數初賦值)
N100 #104=18*COS[#103](X坐標值變數)
#105=24*SIN[#103] (Y坐標值變數)
G41 X#104 Y#105 D01
#103=#103-1(角度增量-1)
IF[#103GE0]GOTO100(如果角度大於等於0,則返回執行循環)
G40G01X40Y0
M99
❼ 宏程序。 誰幫我逐句解釋一下呢。
分層車橢圓牙型的螺紋,分層走刀路線基本就是下圖
G0 X60 Z5
#1=1 橢圓的一個半軸
#9=5 自變數增加值為5度
WHILE[#1LE10]D01 當#1小於等於10時執行END1之間的程序
#2=0 初始自變數0度
WHILE[#2LE180]D02 當#2小於180度時執行頃散END2之間的程序
#3=#1*SIN[#2] 計算橢圓上點的坐標X的值
#4=2*COS[#2] 計算橢圓上點的坐標Z的值
#5=40-#3*2 平移橢圓到需要的位置,#3*2為這一點的直徑
G0X#5 快速定位X
Z#4 快速定位Z
G32Z-80F30J0 走螺紋
G0X60 退刀
Z#4 退刀
#2=#2+#9渣手 自變數增加
END2
G0X60Z5 快速定位
#1=#1+0.5 橢圓的一個半軸增加0.5,也就是每層走0.5
IF[#1GE4]THEN #9=2 如果#1大於等於4自變數增加值就變為2度
IF[#1GE7]THEN #9=1 如果#1大於等於7自變數增加值就變為1度雀梁氏
IF[#1GE9]THEN #9=0.2 如果#1大於等於9自變數增加值就變為0.2度
END1
M30 程序結束
❽ CNC數控程序中的WHILE[#1 LE 8.] D01 或 WHILE[#2 GE 5.] DO1 是什麼意思呢和什麼有關聯呢 詳細求解!
是宏程序!如果#1小於等於8執行第一步,le為小於等於ge 為大於等於,do是做的意思。你只給了一個程序斷,所以不能判斷它和誰有聯系。 宏程序有3種變數:空變數(由於水平有限不知是何用途),系統變源拆量決定系統的狀態,剩下的就是局部變數了巧裂指。 宏程孝配序可以用來加工非圓曲線,可以加工螺紋…
❾ 宏程序D是什麼意思
數控編程是數控加工准備階段的主要內容,通常包括分析零件圖樣,確定加工工藝過程;計算走刀軌跡,得出刀位數據;編寫數控加工程序;製作控制介質;校對程序及首件試切。有手工編程櫻埋和自動編程兩種方法。手工編程是指編程的各個階段均由人工完成。對於幾何形狀復雜的零件需藉助計算機使用規定的數控語言編寫零件源程序,經過處理後生成加工程序,稱為自動編程。
隨著數控技術的發展,先進的數控系統不僅向用戶編程提供了一般的准備功能和輔助功能,而且為編程提供了擴展數控功能的手段。FANUC6M數控系統的參數編程,應用靈活,形式自由,具備計算機高級語言的表達式、邏輯運算及類似的程序流程,使加工程序簡練易懂,實現普通編程難以實現的功能。
宏程序是加工編程的重要補充。FANUC6M數控系統變數表示形式為#後跟1~4位數字,變數種類有三種:
(1)局部變數:#1~#33是在宏程序中局部使用的變數,它用於自變數轉移。
(2)公用變數:用戶可以自由使用,它對於由主程序調用的各子程序及各宏程序來說是可以公用的。#100~#149在關掉電源後,變數值全部被清除,而#500~#509在關掉電源後,變數值則可以保存。
(3)系統變數:由#後跟4位數字來定義,它能獲取包含在機床處理器或NC內存中的只讀或讀/寫信息,包括與機床處理器有關的交換參數、機床狀態獲取參數、加工參數等系統信息。
編程中變數的用途有四個,運算;遞增量或遞減量;與一個表達式比較之後,決定是否實現跳轉功能的條件分支;將變數值傳送到零件程序中去。其中運算又包括:算術運算(賦值、加、減、乘、除、絕對值、四捨五入整數化、捨去小數點以下部分);函數運算(正弦、餘弦、正切、反正切、平方根);邏輯操作(與、或);比較操作(等於、大於、小於、大於或等於、小於或等於、不等於)。
其實說起來宏就是用公式來加工零件的,比如說橢圓,如果沒有宏的話,我們要逐點算出曲線脊慶螞上的點,然後慢慢來用直線逼近,如果是個光潔度要求很高的工件的話,那麼需要計算很多的點,可是應用了宏後,我們把橢圓公式輸入到系統中然後我們給出Z坐標並且每次加10um那麼宏就會自動算出X坐標並且進行切削,實際上宏在程序中主要起到的是運算作用。
宏一般分為A類宏和B類宏
A類宏是以G65 Hxx P#xx Q#xx R#xx的格式輸入的;
B類宏程序則是以直接的公式和語言輸入的和C語言很相似在0i系統中應用比較廣。由於現在B類宏程序的大量使用,很多書都進行了介紹,這里我就不再重復了,但在一些老系統中,比如FANUC 0 TD系統中由於它的MDI鍵盤上沒有公式符號,連最簡單的差殲等於號都沒有,為此如果應用B類宏程序的話,就只能在計算機上編好再通過RSN-32介面傳輸的數控系統中。可是,如果我們沒有PC機和RSN-32電纜的話怎麼辦呢,那麼只有通過A類宏程序來進行宏程序編制了。
A類宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式,輸入的xx的意思,就是數值。是以um級的量輸入的,比如你輸入100那就是0.1MM~~~~~.#xx就是變數號,關於變數號是什麼意思再不知道的的話我也就沒治了,不過還是教一下吧,變數號就是把數值代入到一個固定的地址中,固定的地址就是變數,一般0 TD系統中有#0~~~#100~#149~~~#500~#531關閉電源時變數#100~#149被初始化成「空」,而變數#500~#531保持數據.我們如果說#100=30那麼現在#100地址內的數據就是30了,就是這么簡單.好現在我來說一下H代碼,大家可以看到A類宏的標准格式中#xx和xx都是數值,而G65表示使用A類宏,那麼這個H就是要表示各個數值和變數號內的數值或者各個變數號內的數值與其他變數號內的數值之間要進行一個什麼運算,可以說你了解了H代碼A類宏程序你基本就可以應用了。
❿ 數控銑削宏程序
數控銑削加工宏程序的編制與應用
在數控編程中,宏程序編程靈活、高效、快捷。宏程序不僅可以實現象子程序那樣,對編制相同加工操作的程序非常有用,還可以完成子程序無法實現的特殊功能,例如,型腔加工宏程序、固定加工循環宏程序、球面加工宏程序、錐面加工宏程序等。
一、FANUC宏程序的理論基礎
(一)FANUC宏程序的構成
1)包含變數
2)包含算術或邏輯運算(=)的程序段
3)包含控制語句(例如:GOTO,DO,END)的程序段
4)包含宏程序調用指令(G65,G66,G67或其他G代碼,M代碼調用宏程序)的程序段
(二)FANUC宏程序的變數
FANUC數控系統變數表示形式為# 後跟1~4位數字,變數有四種:
1、FANUC宏程序的變數Ⅰ
變數號
變數類型
功能
#0
空變數該變數總是空
沒有任何值能賦給該變數
2、FANUC宏程序的變數Ⅱ
變數號
變數類型
功能
#1——#33
局部變數
局部變數只能用在宏程序中存儲數據,例如運算結果。當斷電時局部變數被初始化為空,調用宏程序時自變數對局部變數賦值。
3、FANUC宏程序的變數Ⅲ
變數號
變數類型
功能
#100—#199
#500—#999
公共變數
公共變數在不同的宏程序中的意義相同當斷電時變數#100 #199初始化為空變數
#500 #999 的數據保存即使斷電也不丟失
4、FANUC宏程序的變數Ⅳ
變數號
變數類型
功能
#1000——
系統變數
系統變數用於讀和寫CNC 運行時各種數據的變化例如刀具的當前位置和補償值等
(三)刀具補償存儲器C用G10指令進行設定
H代碼的幾何補償值
G10L10P R ;
D代碼的幾何補償值
G10L12P R ;
H代碼的磨損補償值
G10L11P R ;
D代碼的磨損補償值
G10L13P R ;
P:刀具補償號
R:絕對值指令(G90)方式時的刀具補償值。增量值指令(G91)方式時的刀具補償值為該值與指定的刀具補償號的值相加。
用G10改變工件坐標系零點偏移值
格式:G10L12PpIP ;
P=0:外部工件零點偏移值
P=1:工件坐標系G54的零點偏移值
P=2:工件坐標系G55的零點偏移值
P=3:工件坐標系G56的零點偏移值
P=4:工件坐標系G57的零點偏移值
P=5:工件坐標系G58的零點偏移值
P=5:工件坐標系G59的零點偏移值
IP: 對於絕對值指令(G90),為每個軸的工件零點偏移值。
對於增量值指令(G91),為每個軸加到設定的工件零點偏移值。
(四)FANUC宏程序運算符Ⅰ
1、FANUC宏程序運算符Ⅰ
功能
格式
備注
定義
#i=#j
加法
#i=#j+#k
減法
#i =#j- #k
乘法
#i =#j*#k
除法
#i=#j/#k
2、FANUC宏程序運算符Ⅱ
功能
格式
備注
正弦
#i=SIN[#j]
角度以度指定,如90º30』表示為90.5度
反正弦
#i=ASIN[#j]
餘弦
#i=COS[#j]
反餘弦
#i=ACOS[#j]
正切
#i=TAN[#j]
反正切
#i=ATAN[#j]
3、FANUC宏程序運算符Ⅲ
功能
格式
備注
平方根
#i=SQRT[#j]
絕對值
#i=ABS[#j]
舍入
#i=ROUND[#j]
上取整
#i=FIX[#j]
下取整
#i=FUP[#j]
自然對數
#i=LN[#j]
指數函數
#i=EXP[#j]
4、FANUC宏程序運算符Ⅳ
功能
格式
備注
或
#i=#j OR #k
邏輯運算一位一位的按二進制數執行
異或
#i=#j XOR #k
與
#i=#j AND #k
從BCD轉為BIN
#i=BIN[#j]
用於與PMC的信號交換
從BIN轉為BCD
#i=BCD[#j]
(五)FANUC宏程序的轉移和循環
1、FANUC宏程序的轉移和循環Ⅰ
無條件轉移:GOTOn
(n為順序號,1——99999)
例:GOTO10為轉移到N10程序段
2、FANUC宏程序的轉移和循環Ⅱ
條件轉移:(IF語句)
IF [條件表達式] GOTOn
當指定的條件表達式滿足時,轉移到標有順序號n的程序段,如果指定的條件表達式不滿足時,執行下個程序段
3、FANUC宏程序的轉移和循環Ⅲ
條件轉移:(IF語句)
IF [條件表達式] GOTOn
如果變數#1的值大於10,轉移到順序號N20的程序段。
如果條件不滿足 IF [#1 GT 10] GOTO 2
如果條件滿足
程 序
程程序序
N20 G00 G90 X100. Y20.
:
4、FANUC宏程序的轉移和循環Ⅳ
IF [條件表達式] THEN
當指定的條件表達式滿足時,執行預先決定的宏程序語句。
例:IF [#1EQ #2] THEN #3=0;
(六)FANUC宏程序的循環
FANUC宏程序循環Ⅰ
WHILE [條件表達式] Dom;
(m=1,2,3)
條件不滿足 條件滿足
ENDm
註:循環允許嵌套,最多3層,但不允許交叉;
FANUC宏程序循環Ⅱ
FANUC宏程序循環Ⅲ
(七)FANUC宏程序的條件表達式運算符
運算符
含義
EQ
等於
NE
不等於
GT
大於
GE
大於或等於
LT
小於
LE
小於或等於
(九)FANUC宏程序的調用Ⅰ
FANUC宏程序的調用Ⅰ
非模態調用G65:
格式: G65PpLl<自變數指定>
其中
p:要調用的程序號
L:調用次數(默認為1)
自變數:數據傳遞到宏程序
FANUC宏程序的調用Ⅱ
模態調用(G66):
G66PpLl<自變數指定>;
程序點
G67;(取消模態)
其中
p:要調用的程序號
L:調用次數(默認為1)
自變數:數據傳遞到宏程序
(十)FANUC宏程序的自變數指定
1、FANUC宏程序的自變數指定I
地址
變數
地址
變數
地址
變數
A
#1
I
#4
T
#20
B
#2
J
#5
U
#21
C
#3
K
#6
V
#22
D
#7
M
#13
W
#23
E
#8
Q
#17
X
#24
F
#9
R
#18
Y
#25
H
#11
S
#19
Z
#26
2、FANUC宏程序的調用II
地址
變數
地址
變數
地址
變數
A
#1
K3
#12
J7
#23
B
#2
I4
#13
K7
#24
C
J4
#14
I8
#25
I
#4
K4
#15
J8
#26
J
#5
I5
#16
K8
#27
K
#6
J5
#17
I9
#28
I2
#7
K5
#18
J9
#29
J2
#8
I6
#19
K9
#30
K2
#9
J6
#20
I10
#31
I3
#10
K6
#21
J10
#32
J3
#11
I7
#22
K10
#33
二、FANUC宏程序的應用
(一)宏程序示例(銑圓)
#1=圓心坐標X值
#2=圓心坐標Y值
#3=園孔最終Z值
#4=圓孔直徑
#5=刀具直徑
#6=[#4+#5]/4 (進刀半徑)
#7= #3+50 (進刀高度)
#8= [#1+#4]/2-#6(進刀圓弧起點X值)
#9 = #2 - #6 (進刀圓弧起點Y值)
#10= #1+#4/2 (銑圓起點X值)
#11= -#4/2 (I矢量)
#12= #2+#6(退刀圓弧Y值)
%
O100
M03S1000
G00G90G54G43H01Z100.
X#1Y#2
Z#7
G01Z#3 F100
G41D02X#8Y#9
G03X#10Y#2R#6
G03X#10Y#2I#11J0
G03X#8Y#12R#6
G01G40X#1Y#2
G00Z100.
M30
%
(二)宏程序示例(銑半圓球)
自上而下等角度水平圓弧環繞球面精加工
#1=(A)球面的圓弧半徑
#2=(B)球頭銑刀刀具半徑
#3=(C)球面的起始角度
#4= (I)球面的終止角度,#4≤90°
#17=(Q)Z坐標每次遞減量
#24=(X)球心坐標X值
#25=(Y)球心坐標Y值
#26=(Z)球心坐標Z值
%
O200
M03S1000
G00G90G541Z100.
G00X0Y0
G65P1912X Y Z A B C I Q
M30
%
O1912 (宏程序)
G52X#24Y#25Z#26
G00X0Y0Z[#1+30]
#12=#1+#2
WHILE [#3LT#4]DO1
#5 = #12*COS[#3]
#6 = #12*SIN[#3]
X[#5+#2] Y#2
G03X#5Y0R#2F1000
G02 I-#5
G03X[#5+#2]Y-#2R#2
G00Z[#7+1]
Y#2
#3 = #3 + #17
END 1
GOO Z[#1+30]
G52 X0 Y0 Z0
M99
%
注釋說明
(主程序)
調用宏程序O1912
(空格處為變數賦值)
在球心處建立局部坐標
球心與刀心連線距離
如果#3<#4,循環1繼續
任意角度刀心X坐標值
任意角度刀心Y坐標值
G00定位於下刀點
圓弧進刀
沿球面切削
圓弧退刀
提刀1
移到進刀點
角度#3每次遞增#17
循環1結束
提刀
恢復G54坐標
宏程序結束返回
(三) 宏程序示例Ⅰ
採用Φ20R4銑刀加工SR30的球,已知球心坐標為(X0Y0Z-5.)
宏程序示例Ⅱ
1、分析:銑球程序一般採用自動編程來實現,但是,利用宏程序強大的功能同樣也可以實現,而且程序更加簡潔。
2、編程思路:
銑球可以認為是多個銑圓的組合。
3、排刀分布:
有兩種方案,一是按Z向分布,二是按圓心角分布。從保證表面質量來看,最佳方案為按圓心角分布。
圓弧起點計算,從X正向開始起刀。
刀具根部R4的圓心在XZ平面的運動軌跡為與R30等距的圓R34(見圖示中紅色軌跡),刀尖點上4mm處的軌跡(即褐色軌跡)為紅色軌跡沿X正向平移6毫米,刀尖點坐標為褐色軌跡沿Z軸向下平移4mm(即綠色軌跡)。
起始角度=ARCSIN((5+4)/34)=15.349º
起始位置X值=34*COS(15.349)+6=38.787
起始位置Z值=0 (通用表達式=34*sin(15.349)-5-4)
4、變數定義:
#1為圓心角,范圍由(15.349,90)
#2為刀尖中心X值,#2=34*COS[#1]+6
#3為刀尖中心Z值,#3=34*SIN[#1]-5-4
%
O300
M03S3000;
G00G90G54Z100.;
#1=15.349
X50.Y0;
Z10.;
WHILE[#1 LE 90] DO1;
#2=34*COS[#1]+6;
#3=34*SIN[#1]-5-4;
G01Z#3F900;
X#2;
G02X#2Y0I-#2J0;
#1=#1+1;
END1;
G00Z100.;
M30;
%
(四)宏程序示例II
用Φ20R10銑刀加工輪廓處R5圓角
下面為銑外形的一段程序,採用刀具半徑補償
G00X2.5Y26.664
G01G41D01X-8.991Y2.023
G03X2.5Y-3.336I11.491J9.641
X32.969Y-.208I0.J150.
G02X44.955Y-10.952I2.031J-9.792
G03Y-49.048I199.09J-19.048
G02X33.452Y-59.88I-9.955J-.952
G03X-28.452I-30.952J-197.59
G02X-39.922Y-48.75I-1.548J9.88
G03Y-11.25I-148.823J18.75
G02X-27.969Y-.208I9.922J1.25
G03X2.5Y-3.336I30.469J146.872
X13.991Y2.023I0.J15.
G40G01X2.5Y26.664
編程思路:
利用G10指令修改刀具半徑偏置值來實現倒圓角。
G10格式為G10L12P1R ,其中,P1表示修改D01,R後為刀具半徑偏置值。
設定倒角的圓心角為變數#1,取值范圍為0-90º
設定#2為刀具半徑偏置值,取值=COS[#1]*15-5
設定#3為Z值,取值=SIN[#1]*[5+10]-5-10
%
O400
M03S3000
G00G90G54Z100.
#1=0
X2.5Y26.64
Z5.
WHILE [#1 LE 90] DO1
#2= COS[#1]*15-5
#3= SIN[#1]
*[5+10]-5-10
G10L12P1R#2
G01Z#3F900
G00X2.5Y26.664
G01G41D01X-8.991Y2.023
G03X2.5Y-3.336I11.491J9.641
X32.969Y-.208I0.J150.
G02X44.955Y-10.952I2.031
J-9.792
G03Y-49.048I199.09J-19.048
G02X33.452Y-59.88I-9.955J-.952
G03X-28.452I-30.952J-197.59
G02X-39.922Y-48.75I-1.548J9.88
G03Y-11.25I-148.823J18.75
G02X-27.969Y-.208I9.922J1.25
G03X2.5Y-3.336I30.469J146.87
X13.991Y2.023I0.J15.
G40G01X2.5Y26.664
#1=#1+5
END1
G00Z100.
M30
%
三、小結
隨著現代製造技術的發展和數控機床的日益普及,數控加工得到廣泛應用。對於加工形狀簡單的零件,計算比較簡單,程序不多,採用手工編程較容易完成。因此,在點定位加工及由直線與圓弧組成的輪廓加工中,手工編程仍廣泛應用。但對於形狀復雜的零件,特別是具有非圓曲線、列表曲線及曲面的零件,用一般的手工編程就有一定的困難,且出錯機率大,有的甚至無法編出程序。在CAD/CAM軟體普遍應用的今天,手工編程的應用空間日趨縮小。但手工編程是自動編程的基礎。宏程序的運用,其最大的特點就是將有規律的形狀或尺寸用最短的程序段表示出來,具有極好的易讀性和易修改性。