數控程序的調用常用M98,G65等方式調用子程序
一, 使用M98調用子程序
比如下面兩個程序例子:
兩程序保存在機床中,其中O0001為主程序,O0002為子程序。
程序運行順序是:
運行O0001程序後,當運行至M98P2程序段,機床就會跳轉至O0002程序,從O0002程序開頭由上往下依次運行程序,至到M99就跳轉至主程序O0001 運行M98P2後面程序段。
程序的調用方法:
格式一:
M98 P_ _ _ _ L_
P_後面不超過四位的數字為程序号
(如M98P1 ,M98P0002 M98P2000L2)
L_為重複調用次數(省略時為調用1次)
格式二:
M98 P_ _ _ _ _ _ _
P_後面最多跟8為數的數字,如後面的數字不超過4位,表示調用程序一次
如M98P2322 調用O2322程序一次。
如超過4位數,後4位為調用程序名,其餘的為調用次數。
比如M98P00052322 調用O2322程序5次。
二, 使用G65調用子程序
G65屬于宏程序調用
格式:G65 P子程序名 地址名
先看看P ,其實G65和M98子程序調用很相似。P後面跟着子程序的名字。
比如說現在有個子程序O1234,那麼在主程序使用G65調用時可以寫成G65 P1234(那個大寫字母O不需要)
接下來就該談談非常關鍵的地址名了。
在宏程序中變量分為三大類(局部變量,公共變量,系統變量),其中#1~#26為局部變量,局部變量和地址名A,B,C……Z對應的關系如下表。
地址名說白了就是給其對應的變量傳遞數據的。
比如說上表中的字母A對應#1 ,若A10 那麼就相當于把10這個數據傳遞給了變量#1,此時#1=10 ;同理若B20 ,那麼#2=20 若Z-26, 那麼#26=-26。
這麼講有些空洞,我舉一個簡單例子給大家一些啟發,比如下面零件:
粗車外圓,我任意設置了三個局部變量#7 ,#24,#26 分别代表:
#7代表毛坯尺寸;
#24代表加工的尺寸;
#26代表加工的長度;
粗車外圓程序如下: (類似G90循環指令)
%
O0001
G0 X#7Z2
WHILE[#7GT#24] DO1
#7=#7-2
G1X#7F#9
Z#26
G0U1.
Z2.
END1
G91G28Z0
M99
%
把上面程序作為子程序,使用G65調用子程序如下:
%
O0002
T0101
M13S800
G65P1 D40. X20. Z-30.F0.05
M30
%
當我使用G65調用O0001号程序時,字母 D, X,Z後面的數據就傳遞給了對應變量。
此時,D就代表零件毛坯直徑了; X代表加工的尺寸;Z代表加工的長度;
如果加工個類似形狀的零件,我們隻需要編寫個主程序調用子程序即可。
比如毛坯為30 ,加工至D20 ,加工長度為-50的外圓粗車,程序如下:
%
O0002
T0202
M3S1000
G65P1 D30. X20. Z-50.F0.1
M30
%
很快就完成了程序的編輯。
好了,學習好絕招,關注鄒軍愛數控,讓你成為經驗豐富的編程高手。
,