- FANUC數控手工編程及實例詳解
- 李體仁主編
- 4092字
- 2020-05-07 10:46:45
2.2 程序的結構和組成
2.2.1 程序有關的術語
通過如下簡單的程序,來說明程序有關的術語,如圖2-12所示,主軸從工件坐標系G54的原點,沿箭頭方向,逆時針運動。

圖2-12 簡單加工
程序如下:
O0001(MAKINO); 程序號O0001,括弧內的內容為注釋 N1 G90 G54 G00 X0 Y0 M03 S1000; 快速移動到G54原點,主軸正轉,轉速1000r/min /N3 Z100 移動到Z100位置,“/”為單段跳過。N3為順序號 N4 G01 X0 Y-50.0 F100; 從G54原點移動到1點 X100.0; 從1點移動到2點 Y50.0; 從2點移動到3點 X-100.0; 從3點移動到4點 Y-50.0; 從4點移動到5點 X0; 從5點移動到1點 N8 Y0 M05; 從1點移動到原點,主軸停止轉動 N9 M30; 程序結束,并返回到程序的開始位置
(1)程序
程序的結構如圖2-13所示,程序是由許多單段組成,一系列單段所組成的集合稱為程序。

圖2-13 程序結構
(2)單段
每一個程序段由若干個字組成(如圖2-14所示),每個字是控制系統的具體指令,字由表示地址的英語字母與隨后的若干位十進制數字組成。即字=地址(字母)+數字。

圖2-14 段的組成
在每個單段的前端,可以包含一個順序號碼N□□□□,在單段末端以“;”表示程序段結束。中間部分為程序段的內容。
(3)字的含義
程序段中的每個字都是指定一種特定的功能,主要功能包括:準備功能字如G01,尺寸功能字如Y-50,進給功能字如F200,主軸功能字如S900,刀具功能字如T01,輔助功能字如M03等。
每個程序段并不是須包括所有的功能字,根據需要可以由一個字或幾個功能字組成。但一般在程序中要完成一個動作必須具備以下內容:
①刀具移動路線軌跡:如G01直線、G02圓弧等準備功能字。
②刀具移動目標位置,如尺寸字X、Y、Z表示終點坐標值。
③刀具移動的速度,如進給功能字F。
④刀具的切削速度,如主軸轉速功能字S。
⑤使用哪把刀具,如刀具功能字T。
⑥其他機床輔助動作、輔助功能字M等。
一個程序段除程序段號與程序段結束字符外,其余各字的順序并不嚴格,可先可后,但為編寫、檢查程序的方便,習慣上可按N—G—X—Y—Z—F—S—T—M的順序編程。
表2-1為FANUC系統可用的地址(字母)和它們的含義。
表2-1 FANUC主要功能字

(4)主要功能字指令值的范圍
地址后所帶數據根據功能不同,它的大小范圍、是否可以有負號、是否可帶小數點都有一定的規則,其中G代碼和M代碼的數字是由系統指定。表2-2為FANUC系統主要地址和指定值的范圍。
表2-2 功能字的指令值范圍

從表2-2可以看出,程序名O、順序號N、準備功能代碼G、刀具指令T、輔助指令M、指定程序號指令P和重復次數指令P后所帶數字除有一定的數值范圍外,要求都必須是整數,且不可以用負號來表示。
凡有計量單位的功能字,例如暫停地址所帶數值單位為秒,尺寸字地址所帶數值單位為毫米,這些尺寸字、進給、主軸有計量單位地址字都為工藝參數和切削用量,需編程人員計算出精確數字,其他的功能字所帶數字都為編號之類的數字,由編程人員任意或對應指定即可。
2.2.2 程序的結構
(1)程序編號
程序編號的結構如圖2-15所示,程序被保存在存儲器中,程序編號被用來區別不同的程序。

圖2-15 程序編號
(2)序號
序號格式:N □□□□□
序號以N開始,其取值范圍為1~99999。序號不要求連續,在單段中,它可有可無,作用是對程序進行校對和檢索修改時作為標記,或在程序執行轉換指令時作為條件轉向的目標號,即作為轉向目的程序段的名稱。
(3)單段跳過
單段跳過格式:/N□□□□
當單段的前端加上一個“/”,該單段被忽略,不被執行。
(4)尺寸字
尺寸字格式:軸的地址+移動值。
尺寸字定義了刀具的移動,它由移動軸的地址及移動值組成。表示沿X軸方向移動,移動的值的變化取決于是絕對還是相對編程。小數點的位數,與機床的NC裝置最小取值有關。
(5)準備功能(G)
準備功能格式:G □□ ,功能編號2位(0~99)。
準備功能是建立機床或控制數控系統工作方式的一種指令。表2-3為FANUC-0i MA數控銑削系統的準備功能G指令。
表2-3 G代碼功能


G代碼可分成兩類:單(非)模態和模態,見表2-4。
表2-4 單(非)模態和模態的含義

模態指令又稱續效指令,是指在同一個程序中,在前程序段中出現,對后續程序段保持有效,此時在后程序段中可以省略不寫,直到需要改變工作方式時,指令同組其他G指令時才失效。另外所有的F、S、T指令和部分M代碼都屬模態指令。
例如下列O3002與O3003兩程序功能完全相同,但O3002程序清晰明了,避免了大量指令的重復。

非模態指令是指只在本程序段中有效,下一程序段需要時必須重寫,如表2-4中00組中的G04暫停、G28參考點、G92設工件坐標系等指令屬非模態指令。
(6)輔助功能
輔助功能格式:M□□,功能編號2位(0~99)。M功能定義了主軸回轉的啟動、停止,切削液的開、關等輔助功能。表2-5為FANUC-0i-MA數控系統的常用的輔助功能M代碼及其功能。
表2-5 輔助功能M代碼及其功能

①程序暫停M00。
M00程序自動運行停止,模態信息保持不變。按下機床控制面板上的循環啟動鍵,程序繼續向下自動執行。
②程序選擇停止M01。
M01與機床控制面板上M01選擇按鈕配合使用。按下此按鈕,程序即暫停。如果未按下選擇按鈕,則M01在程序中不起任何作用。
③程序結束M02、M30。
M02:程序結束,主軸運動、切削液供給等都停止,機床復位。若程序再次運行,需要手動將光標移動到程序開始。
M30:程序結束,光標返回到程序的開頭。可直接再次運行。
④主軸順時針旋轉M03、主軸逆時針旋轉M04。
該指令使主軸以S指令的速度轉動。M03順時針旋轉,M04逆時針旋轉。
⑤主軸停止旋轉M05。
⑥刀具交換指令M06。
M06用于加工中心上的換刀。
⑦切削液開、關 M08、M09。
開啟切削液M08,停止切削液供給M09。
⑧調用子程序M98。
⑨子程序返回 M99。
數控系統允許在一個程序段中最多指定三個M 代碼。但是M00 、M01、 M02、 M30、 M98、M99不得與其他M 代碼一起指定,這些M 代碼必須在單獨的程序段中指定。
(7)切削進給速度F、主軸回轉數S
切削進給速度格式:F □□□□,切削的進給速度,4位以內。
F代碼可以用每分鐘進給量(mm/min)和每轉進給量(mm/r)指令來設定進給單位。準備功能G94設定每分鐘進給量,G95設定每轉進給量。
例:G94 F01,表示切削進給速度1mm/min;
G95F0.1,表示切削進給速度0.1mm/ r。
主軸回轉數格式:S □□□□,主軸的回轉數,4位以內。
主軸轉速根據加工需有兩種轉速單位設定,用指令指定為每分鐘多少轉,單位是r/min;用G96指定為線速度,每分鐘多少米,單位是m/min。
例:G97 S100,表示主軸100r/min;
G96 S400,表示主軸線速度400m/min。
用戶使用下列公式可求解主軸的回轉數:
N=1000V/(πD)
式中 V——切削速度,m/min;
π——圓周率,3.14;
D——刀具直徑,mm;
N——主軸回轉數,r/min。
例:用高速鋼立銑刀加工中碳鋼材料零件時,一般銑削速度取20~40m/min。現假定用?16mm的立銑刀,銑削速度取30m/min,試計算主軸轉速。
用戶使用下列公式可求解切削進給速度:
F=fZZN
式中 fZ——每齒進給量,mm/齒;
Z——刀具的齒數;
F——切削進給速度,mm/min。
例:?16mm的立銑刀為3個齒,每齒進給量為0.07mm,試求切削進給速度。
(8)絕對(G90)和增量(G91)
程序制作有絕對(用ABS表示)和增量(用INC表示)兩種方法。ABS方式,以移動后主軸位置的坐標來表示,而INC方式以主軸相對前一位置移動的距離來表示。
例:如圖2-16所示。

圖2-16 ABS和INC方式

·括號內的指令可以省略。
·增量(INC)值的正、負,取決于運動的距離在各軸上的分量是否與工件坐標系各軸的正方向相同,若相同,增量的值為正,反之為負。
·絕對和相對增量的使用場合。
例:圖2-17,各孔的坐標以原點為基準,用絕對編程很容易實現各孔的加工。圖2-18,各孔以該孔的前一孔為基準,用孔間距離標出各孔的坐標,比較適合用相對增量編程實現各孔的加工。

圖2-17 絕對的使用
提示:程序中絕對和相對的使用,主要根據加工的圖紙來確定,以方便編程者和操作者對程序進行檢查為原則。
2.2.3 子程序
如果程序包含固定的加工路線或多次重復的圖形,這樣的加工路線或圖形可以編成單獨的程序作為子程序。這樣在工件上不同的部位實現相同的加工,或在同一部位實現重復加工,大大簡化編程。
子程序作為單獨的程序存儲在系統中時,任何主程序都可調用,最多可達999次調用執行子程序。
當主程序調用子程序時,它被認為是一級子程序,在子程序中可再調用下一級的另一個子程序,子程序調用可以嵌套4級,如圖2-19所示。

圖2-19 程序嵌套
(1)子程序的結構
子程序與主程序一樣,也是由程序名、程序內容和程序結束三部分組成。子程序與主程序唯一的區別是結束符號不同,子程序用M99,而主程序用M30或M02結束程序。
例:
O1000 子程序名 N010 …… 程序段 …… M99; 子程序結束
M99指令為子程序結束,并返回主程序,在開始調用子程序的程序段“M98 P—”的下一程序段,繼續執行主程序。M99可不必作為獨立的程序段指令,例如“X100.0 Y100.0 M99;”。
(2)子程序調用格式
①M98 P ×××□□□□
×××表示子程序被重復調用的次數,□□□□表示調用的子程序名(數字)。
例如:M98 P51234;表示調用子程序O1234重復執行5次。
當子程序調用只一次時,調用次數可以省略不寫,如M98 P1010;表示調用程序名為O1010的子程序一次。
②有些系統用以下格式來調用子程序:
M98 P××××L□□
××××表示子程序名,□□表示子程序調用次數。如P1L2;表示調用程序名為O0001的子程序2次。
(3)子程序使用中注意的問題
①在主程序中,如果執行M99指令,控制回到主程序的開頭。
例如(圖2-20),當單段插入到主程序適當位置時,選擇性單段跳躍在OFF,會執行M99,控制回到主程序的開頭,再度執行主程序。

圖2-20 選擇性單段跳躍在程序中的應用
如果選擇性單段跳躍在ON,“/M99” 被省略,控制進入下一個單段。如果插入“/M99Pn;” 控制不回到主程序的開頭,而是回到序號“n”的單段,回到序號“n”的處理時間較回到程序的開頭長。
思考:如果在主程序中僅僅使用“M99Pn;”,程序將會出現死循環,為了避免此種情況的發生,一般使用 “/M99Pn;”,并配合機床操作面板上的“選擇性單段跳躍”。
②在子程序的最后一個單段用P指定序號(圖2-21),子程序不回到主程序中呼叫子程序的下一個單段,而是回到P指定的序號。返回到指定單段的處理時間較通常回到主程序的時間長。

圖2-21 子程序返回到指定的單段