數控車削中經常會遇到一些形狀復雜但卻有一定規律的零件,如:橢圓、拋物線、雙曲線等異形曲面的加工,盡管使用各種C A D/C A M軟件來自動編制數控加工程序已經成為現實,但自動生成的程序不能直接應用于生產,所以各種“疑難雜癥”的解決往往還要依靠手動編程。手動編程可以使用變量編程即用戶宏程序,它是FANU C數控系統中的特殊編程功能,其實質就是帶有變量的子程序,用戶宏程序本體中既可以使用變量進行編程,還可以用宏指令對這些變量進行賦值、運算等處理,從而將有規律的形狀或尺寸用最短的程序段表示出來,編寫的程序清晰簡潔、邏輯嚴密、通用性強,在機械加工中得到了廣泛應用。
一、宏指令的基本理論
FANUC系統提供兩類用戶宏指令,即A類宏指令和B類宏指令。早期的FANU C系統中曾廣泛使用A類宏指令,主要特征為使用G65代碼作為宏指令專用代碼,包括宏變量的賦值、運算、條件調用等。FANUC 0i系統使用B類宏指令,其可以兼容A類宏指令,且功能更強大,編程更直觀。因此本文重點介紹B類宏指令的基本概念及其用法。
1.變量
普通加工程序直接用數值指定G代碼和移動距離,例如:G01 X150.0;當使用用戶宏程序時,數值可以直接指定或用變量指定。當用變量時,變量值可用程序或由M D I方式設定、修改。例如:#1=#22=100;G0l X#l F0.1;其與G01 X100 F0.1效果一樣。
(1)變量的表示
一般的編程中允許對變量命名,用戶宏程序不可以,一個變量需用“#”號和后面的變量號指定。變量號可以是數值或表達式,但必須注意此時表達式必須封閉在“[]”中。例如:#1(主要用于A類宏指令);#[#1+#3+5]若#1=100,#3=2,則該變量表示#107。
(2)變量的類型
變量根據變量號可以分成4種類型(見表1)。

(3)變量值范圍
局部變量和公共變量可以是0值或以下范圍中的值:-1047~-10-29或10-29~1047,若計算結果超出該范圍,則發出報警NO.111。
(4)變量的引用
在程序中的地址后指定變量號即可引用其變量值。例如:G00 X#1 Z#2;當用表達式指定變量時,必須將表達式放在括號中,例如:G01X[#2+#5] F#1。被引用變量的值根據地址的最小設定單位自動地舍入。
例如:當C N C把10.1428賦值給變量#102,且以1u m為單位執行G00 X#102語句時,實際指令值為10.143。改變引用變量的值的符號,要把“—”號放在“#”的前面。即:G00 X —#120。
(5)關于變量的其他說明
①表達式可以表示變量號和變量,且兩者并不相同。例如:X#[#1+#2]和X [#1+#2]不相等。
②在程序中定義變量時,小數點可以省略。例如:當定義#1=108;變量#1的實際值是108.000。
③若變量值未定義即為“空”變量。當引用未定義的變量并執行時,變量及地址字都被忽略。例如:當變量#130的值是0,變量#150的值為空時,執行G00 X#130 Z#150;程序的結果為G00 X0。
④變量#0總是空變量。其不能寫,只能讀。
⑤程序號、順序號和任選程序跳轉號不能使用變量。例如:O#2,/#5G00X80;N#6Z100;等語句不能在程序中出現。
2.變量的算術和邏輯運算
宏程序可以利用變量進行算術和邏輯運算,例如減法:#i=#j-#k;運算符右邊的表達式可包含常量和“/”或由函數、運算符組的變量。表達式中的變量#j和#k可以用常數賦值,左邊的變量也可以用表達式賦值。
(1)運算符的優先級
按照優先的先后順序依次是:函數→乘和除運算(*,/,AND,MOD)→加和減運算(+,﹣,OR,X OR)。用“[]”可以改變運算的優先級,最里層的“[]”優先運算,“[]”最多可以嵌套使用5級(包括函數內部使用的括號)當超出5級時,會出現NO.118報警。
(2)變量的賦值
①直接賦值
變量可以在操作面版上用M D I方式直接賦值,也可以在程序中以等式方式賦值,但等號左邊不能用表達式。
如:#110=60;
#110=40+30;
②引用賦值
宏程序以子程序方式出現,所用的變量可在宏調用時賦值。如:G65 P0060 X120 Z30 F100;此程序段中,X,Z不代表進給字,而是對應于宏程序中的變量號,變量的具體數值由引數后的數值決定。
二、宏程序的功能語句
在程序中,使用G O T O和I F語句可以起到改變和控制程序流向的作用。有4種轉移和循環操作可供使用:
1.無條件轉移語句(GOTO)
轉移到有順序號m的程序段,如:G O T O1;(轉移到第一行)。
2.條件轉移IF[表達式]GOTO m如果條件表達式滿足,轉移到標有順序號m的程序段;如果條件不滿足,則執行下一個程序段(如圖1所示)。

3.條件轉移IF[表達式]THEN
如果表達式滿足,執行預先決定的宏程序語句,且只執行一個宏程序語句。例如:I F[#1E Q#3] T H E N #4=8;表示如果#1和#3的值相同,將8賦給#4。
4.循環功能(WHILE)語句
如果WHIL E后指定的表達式條件滿足,執行D O到E N D之間的程序;否則,轉到E N D后的程序(如圖2所示)。

三、宏程序的調用
宏程序的調用可以通過指令M98或G65來實現,使用M98方式調用和子程序調用格式一樣,但使用前必須了解宏程序使用了哪些變量,并對變量賦值。G65指令稱為宏程序非模態調用指令,其使用格式如:G65 P0040 L6自變量地址;P為宏程序號。L為調用次數,缺省時為1次。自變量地址為用戶使用系統提供的自定義地址號表達的變量值。
四、宏程序在橢圓加工中的應用實例
一帶有橢球面的工件(如圖3所示)。長軸a=40㎜,短軸b=20㎜。

橢圓標準方程為:(X-m)2
/b2
+(Z-n)2
/a2
=1,m,n
分別為X方向和Z方向中心坐標。
參數方程:Z=20cosΦ X=2×10sinΦ
橢球的中心為圖3中的(0,0)點,但一般工件坐標系建立在工件的右端面,為了讓橢球的中心與工件坐標系重合,通過程序將橢球的中心向右移動一個長半軸即#103=20,這樣才能順利地完成工件的加工。手工編制加工程序:
O0005
N10 G98;
N20 T0202;
N30 M03 S800;
N40 G00 X100 Z100;
N50 G00 X30 Z10;
N60 G73 U2 W2 R5;
N70 G73 P80 Q140 U0.5 W0.1 F100;
N80 G01 X0 Z0 F50;
N90 M98 P0002;
N100 G01 X20 Z-50;
N110 Z-60;
N120 G01 X28;
N130 G00 X100;
N140 Z10;
N150 M00;
N160 G42 X25 Z2;
N170 M03 S1000;
N180 G70 P80 Q140 F60;
N190 G40 G00 X100;
N200 Z100
N210 M30;
子程序
N10 T0202;
N20 M03 S500;
N30 G01 X30 Z10 F50;
N40 #101=20;
N50 #102=10;
N60 #103=20;
N70 #104=SQRT[#101*#101-#103*#103];
N80 G01 X#104 Z[#103-20];
N90 #103=#103-0.5;
N100 IF [#103GT-15] GO TO 70;
N110 M99;(返回主程序)
工件三維圖如圖4所示。

2024-11
本文以組合式六角亭模型為實例,分析工藝難點與加工可行性,指出該模型的加工難點是模型形狀不規則和整體剛性差,并通過設計新的工藝方案解決加工難點,完成了模型整體的加工。新的加工工藝有助于提高加工效率和精度,為五軸數控加工提供了一個典型案例,對于五軸加工中心數控加工也具有指導作用和重要… [了解更多]
2024-11
宇匠數控 備注:為保證文章的完整度,本文核心內容由PDF格式顯示,如未有顯示請刷新或轉換瀏覽器嘗試,手機瀏覽可能無法正常使用!本文摘要:通過對混聯五軸加工中心自適應深度學習控制方法的 研 究,可 知 此 方 法 的 創 新 之 處 在 于:1)建 立 了 機 床 的 運 動 學 … [了解更多]
2024-11
宇匠數控 備注:為保證文章的完整度,本文核心內容由PDF格式顯示,如未有顯示請刷新或轉換瀏覽器嘗試,手機瀏覽可能無法正常使用!本文摘要:1)本文建立了基于轉角向量和雙弦弓高的局部能量光順算法,該方法以刀心點光順前后最大許用偏移量作為約束,通過計算拐角處微小線段局部能量最優解,可使… [了解更多]
2024-11
在機測量技術由于其成本低、檢測效率高、無需二次裝夾等優勢被廣泛用于零件加工測量當中,使得五軸加工中心和五軸鉆攻中心,同時又兼具測量功能。在機測量系統的構成如圖1所示,硬件部分主要是由高精度探頭、信號接收器、機床整個本體,軟件部分由機床控制系統、測量軟件等組成[8]。待零件加工完成… [了解更多]