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