梁鵬飛

摘要:在數控機床的編程與操作過程中,手工編程的使用是非常廣泛的,也是必不可少的一種編程方法,只需要簡單的指令,就可以完成一般零件程序的編制,它具有操作比較簡單、效率高、可以現場進行靈活調整等特點。而宏程序更具有編程簡單快捷,短小精悍的特點,得到了廣泛的使用,本文以FANUC 0i-MD系統B類宏程序為例進行簡要的說明。
關鍵詞:數控機床;宏程序;編程
1? 宏程序的使用及特點
在數控編程中,有許多自動編程軟件,如UG、PRO/E、CAXA等,可以進行自動編程,但是生成的程序都是由小段直線組成的,程序比較冗長,可讀性比較差,不方便查看和修改,適合復雜零件的編程。而對于簡單的零件,宏程序有著不可替代的作用,宏程序可以使用變量、運算指令進行計算,還可以進行條件轉移,使一般程序的編寫變得更加容易。宏程序的邏輯性比較好,可讀性強,程序比較簡練,既可以進行常規的編程,也可以和子程序交叉使用,可以用G65指令調用宏程序,就像調用子程序一樣。更可以完成子程序無法實現的一些特殊功能,常規指令G01、G02、G03只能進行直線和圓弧的插補,而對于一些非圓曲線,比如:雙曲線、拋物線、橢圓等用常規指令肯定是無法完成的,而使用宏程序就可以很容易的完成編程。
宏程序在車床加工中,可以完成復雜零件的編程,比如圓弧螺紋、梯形螺紋、橢圓輪廓、圓弧上的螺紋、球面蝸桿等等,有些甚至是利用CAD/CAM軟件也無法實現的編程。而在銑床加工中,宏程序的使用更加廣泛,可以進行半圓球、橢圓球等空間曲面的編程,還可以進行平面、型腔、孔等工序的編程,程序簡短明了,方便查看和修改,非常的靈活。
2? 宏程序的基本知識
普通加工程序直接用數值指定G代碼和移動距離,例如:G01 X10、G00 X100 Y100 等等,使用宏程序時,數值可以直接指定或者使用變量指定。宏程序的變量需要用變量符號“#”和后面的變量號指定。例如:#1、#2、#1=#2+10等等。
變量的書寫方式為:地址字后面指定變量號或表達式。例如:G01 X#1 Y#2 F#3,當#1=100,#2=50,#3=100時。與指定了G01 X100 Y50 F100時的結果是相同的。變量不能使用O和N,這是數控系統不允許的,不能編制如O#20、N#3等類似的程序。
2.1 變量的邏輯運算
變量的邏輯運算就相當于簡單的數學計算,可以進行加減乘除運算,也可以求一個數的正弦余弦余切等等。只要會基本的數學知識,宏程序就非常的容易學習使用。
變量的常用邏輯運算方法如下:
2.2 轉移語句
在編程的時候,可以使用GOTO語句和IF語句進行條件轉移。例如:GOTO n,n為順序號,表示的是當執行到此程序段時,無條件的轉移到n程序段繼續運行。必須注意的是,在同一個程序中,不能指定多個相同的程序段順序號,因為在GOTO語句中,由于是靠順序號n指定轉移的目的地的,如果有相同的順序號,則目的地不明確,容易出現事故,十分危險的。
IF[表達式]THEN語句:此表達式的功能是首先判斷條件是否成立,如果成立的話,就去執行THEN之后的程序內容,如果不成立,程序按順序接著運行。例如:IF[#10EQ#11]THEN#12=10,表示的是如果#10和#11相等,把10賦值給#12。EQ指的是一種邏輯符號,表示兩個量相等。每個算符是由兩個字母組成的,用來比較兩個數值的大小,決定他們是否相等,或者一個數比另一個數大或小。EQ表示等于、NE表示不等于、GT表示大于、GE是大于等于、LT表示小于、LE表示小于等于。
2.3 重復語句(WHILE語句)
WHILE語句其實也是判斷語句,格式為:WHILE[條件表達式]DO m,其中m只能是1、2、3來表示,當條件表達式滿足時,順序執行到END之間的程序,如果表達式不成立時,進入END后面的程序段執行,DO和END后面的數字是相同的,只能用1、2、3這三個數字來表示。重復循環語句在程序中可以多次使用,但是不能相互的交叉。例:求1至20的總和。
宏程序就是結合數控機床的功能和數控系統的特點,融合編程人員的智慧,來完成零件程序的編制。編程人員根據零件圖紙,進行分析計算,選擇合適的指令,進行相應的組合編程,就能編制出符合要求的程序。而自動編程,即便是簡單的零件,也需要進行各項參數的設定,比較麻煩。而且自動編程生成的程序比較長,可讀性差,存儲容量大,中間出了問題后,不方便查找,甚至還得從新開始運行加工。因此宏程序在實際生產和教學過程中,還具有很重要的意義。
3? 宏程序的應用案例
下面以FANUC 0i-MD系統B類宏程序為例,編制如圖1(圓盤工件圖)所示的零件,工件厚度為25mm。本例是一個簡單的圓盤類零件,外圓和兩端面已經完成了加工,尺寸精度已經達到要求,只需要進行鉆40個直徑為8毫米的通孔。如果利用一般的手工編程,需要計算每一個孔的坐標位置,這樣下來就是40個孔位置坐標的計算,計算量比較大,程序內容比較長,不容易查閱,而且容易出錯,出現問題的時候也很難找出問題的所在,如果利用自動編程的話,雖然零件結構比較簡單,但是與自動編程相關的步驟一個也不少,首先需要計算機和相應的CAD/CAM自動編程軟件,然后要畫出零件的三維圖,進行相應的刀具、切削參數、非切削參數、坐標系等的設定,再進行后處理生產程序,最后把程序導入機床進行加工,這是非常繁瑣的,比較浪費時間,相應的增加了加工成本。而宏程序則比較簡單方便。
此程序是利用宏程序、鉆孔復合循環指令和極坐標相結合的編程方式,大大的降低了計算的難度,不需要人工計算每個孔的中心位置坐標,利用極坐標,孔的中心位置用孔中心所在圓的半徑和角度來表示,利用宏程序的重復循環功能,數控系統自動計算每個孔的中心位置,然后使用G81復合循環鉆孔指令來完成孔的鉆削加工。
如果孔的精度要求很高,需要先利用中心鉆,在工件表面上打出中心孔,然后用直徑為7.8mm的鉆頭進行鉆孔,留0.2mm的余量,最后用直徑為8mm的鉸刀進行鉸孔,這樣的話,就比較容易保證零件精度。如果零件是單件生產的話,只需要這一個程序就能完成加工任務,鉆中心孔時只需要改變一下鉆孔循環中的Z值,也就是孔的深度值,因為中心孔一般較淺,鉆孔時再把深度改一下就行了。最后鉸孔時,只需要改變一下主軸的轉速和進給速度,修改非常的方便,可以根據需要進行靈活的改動。另外還可以根據此程序進行孔口倒角的加工,只需要簡單的改變下Z方向的坐標深度,即可完成倒角加工。
從上面的程序可以看出,在實踐教學和實際生產中,利用宏程序編程是非常簡便的。在教學中,由于程序簡潔明了,學生比較容易理解掌握,在實際的生產過程中,可以根據實際加工需要,靈活的進行零件程序的編制和修改。如果利用UG、CAXA等軟件進行編程的話,需要先建模,再設定各種加工參數,最后生成程序代碼,整個過程相對繁瑣。由此可見,雖然自動編程運算能力強,不用人工計算各點的坐標,但宏程序仍有不可替代的重要作用。
參考文獻:
[1]陳海舟.數控銑削加工宏程序及其應用實例[M].機械工業出版社,2006.
[2]宋正.數控機床編程與操作[M].中國勞動社會保障出版社,2009.