A. 高級數控編程:子程序調用及編程舉例
高級數控編程:子程序調用及編程舉例
一次裝夾加工多個形狀相同或刀具運動軌跡相同的零件,即一個零件有重復加工部分的情況下,為了簡化加工程序,把重復軌跡的程序段獨立編成一程序進行反復調用, 這重復軌跡的程序稱為子程序,而調用子程序的程序稱主程序。
子程序的調用
子程序的`調用方法如圖1-2所示。需要注意的是,子程序還可以調用另外的子程序。從主程序中被調用出的子程序稱一重子程序,共可調用四重子程序,如圖1-3所示。
在子程序中調用子程序與在主程序中調用子程序方法一致。
格式:M98 P L ;
說明:P:子程序名;
L:重復調用次數,省略重復次數,則認為重復調用次數為1次;
例:M98 P123 L3;
表示程序號為123的子程序被連續調用3次,如圖1-4所示。
子程序中必須用M99指令結束子程序並返回主程序。
應用舉例:
加工如圖1-5所示輪廓,以知刀具起始位置為(0,0,100),切深為10mm,試編製程序。
圖1-6
相關知識點:
●在使用子程序編程時,應注意主、子程序使用不同的編程方式。一般主程序中使用G90指令,而子程序使用G91指令,避免刀具在同一位置加工。
●當子程序中使用M99指令指定順序號時,子程序結束時並不返回到調用子程序程序段的下一程序段,而是返回到M99指令指定的順序號的程序段,並執行該程序段。
編程舉例:如圖1-6所示。
子程序執行完以後,執行主程序順序號為18的程序段。
;B. 數控機床程序中m代碼中的m98和m99是什麼意思
§2.18子程序(M98、M99)
當一個主程序內,有一些固定的程序指令組,它們須時常重復執行,這時可將它們編成子程序,而在主程序中可對它們進行調用,如此可簡化程序,使主程序的結構更簡潔、清楚。一個子程序亦可調用另一子程序,這種情況稱之謂子程序嵌套。
下圖表示兩層嵌套的子程序調用:
1.子程序的結構
子程序的組成,依下列格式編程:
O05……………子程序編號
N1………………指令內容
N2………………指令內容
........
NnM99…………子程序結束
即子程序以字母O(注意不是數字零0)為開始,其後跟數字,為子程序名編號。在上例中即為05。子程序的結束以M99為結束符。
2.子程序的執行
子程序必須在主程序調用時才能被執行。子程序的調用格式如下:
M98P_________L_________
字母P後所跟的數字就是子程序編號,L後的數據是子程序調用次數,若L沒有被指定時,子程序僅執行一次。
例:
M98P05………執行05子程序一次。
M98P05L8……執行05子程序八次。
在主程序里,子程序的調用與執行順序如下:
3.子程序的位置
在編寫加工程序時,如需要用子程序調用功能,則子程序一般寫在主程序之後,兩者在一個加工文件里。如下圖所示:
如在一個加工程序中有多個子程序,則子程序必須都在主程序之後,而子程序之間的前後位置可以是任意的。
4.子程序編程時的注意事項
[1]在子程序中可以調用其它子程序,既子程序可以嵌套調用。
系統規定子程序嵌套調用最多為十層。
[2]子程序不能遞歸調用。所謂遞歸調用就是在子程序中有自己調用自己的
語句,或者是子程序1調用子程序2,在子程序2中又調用子程序1,當出
現這種情況時也是間接的遞歸調用。
C. 什麼是子程序
子程序是一個大型程序中的某部份代碼,由一個或多個語句塊組成。
一般會有輸入參數並有返回值,提供對過程的封裝和細節的隱藏。這些代碼通常被集成為軟體庫。函數在面向過程的語言中已經出現。是結構納備(Struct)和類(Class)的前身。本身就是對具有相關性語句的歸類和對某過程的抽滾扮象。大茄灶
子程序(subroutine)是一個概括性的術語,任何高級程序所調用的程序,都被稱為子程序。它經常被使用在匯編語言層級上。子程序的主體(body)是一個代碼區塊,當它被調用時就會進入運行。
子程序的應用:
1、零件上若干處具有相同的輪廓形狀,在這種情況下,只要編寫一個加工該輪廓形狀的子程序,然後用主程序多次調用該子程序的方法完成對工件的加工。
2、加工中反復出現具有相同軌跡的走刀路線,如果相同軌跡的走刀路線出現在某個加工區域或在這個區域的各個層面上,採用子程序編寫加工程序比較方便,在程序中常用增量值確定切入深度。
3、在加工較復雜的零件時,往往包含許多獨立的工序,有時工序之間需要適當的調整,為了優化加工程序,把每一個獨立的工序編成一個子程序,這樣形成了模塊式的程序結構,便於對加工順序的調整,主程序中只有換刀和調用子程序等指令。
以上內容參考:網路—子程序
D. 華中數控銑床編子程序實例
例:在一塊平板上加工6個邊長為10mm的等邊三角形,每邊的槽深為-2mm,工件上表面為Z向零點。其程序的編制就可以採用調用子程序的方式來實現(編程時不考慮刀具補償)。
設置G54:X=-400,Y=-100,Z=-50。
主程序:
O10
N 10 G54 G90 G01 Z40 F2000 //進入工件加工坐標系
N20 M03 S800 //主軸啟動
N30 G00 Z3 //快進到工件表面上方
N40 G01 X 0 Y8.66 //到1#三角形上頂點
N50 M98 P20 //調20號切削子程序切削三角形
N60 G90 G01 X30 Y8.66 //到2#三角形上頂點
N70 M98 P20 //調20號切削子程序切削三角形
N80 G90 G01 X60 Y8.66 //到3#三角形上頂點
N90 M98 P20 //調20號切削子程序切削三角形
N100 G90 G01 X 0 Y -21.34 //到4#三角形上頂點
N110 M98 P20 //調20號切削子程序切削三角形
N120 G90 G01 X30 Y -21.34 //到5#三角形上頂點
N130 M98 P20 //調20號切削子程序切削三角形
N140 G90 G01 X60 Y -21.34 //到6#三角形上頂點
N150 M98 P20 //調20號切削子程序切削三角形
N160 G90 G01 Z40 F2000 //抬刀
N170 M05 //主軸停
N180 M30 //程序結束
子程序:
O20
N10 G91 G01 Z -2 F100 //在三角形上頂點切入(深)2mm
N20 G01 X -5 Y-8.66 //切削三角形
N30 G01 X 10 Y 0 //切削三角形
N40 G01 X 5 Y 8.66 //切削三角形
N50 G01 Z 5 F2000 //抬刀
N60 M99 //子程序結束
E. cNC倒C5怎麼編子程序
cNC倒C5編子程序
數控車床子程序M98、M99編程。把程序中某些固定順序和重復出現的程序單獨抽出來,按一定格式編成一個程序供調用,這個程序就是常說的子程序,這樣可以簡化主程序的編制。子程序可以被主程序調用,同時子程序也可以調用另一個子程序。這樣可以簡化程序的編制和節省CNC系統的內存空間。 子程序必須有一程序號碼,且以M99作為子程序的結束指令。主過程調用子程序的指令格式如下: M98 P___L___; 其中P為被調用的子程序號 L為重復調用的次數 例如:M98 P1234L4 主程序調用同一子程序執行加工,最多可執行999次,且子程序亦可再調用另一子程序執行加工,最多可調用4層子程序(不同的系統其執行的次數及層次可能不同)。