熊飛龍,晁 云
(江西理工大學(xué)能源與機(jī)械工程學(xué)院,南昌330013)
西門子系統(tǒng)R參數(shù)編程是一種基于變量編程的高級(jí)語(yǔ)言編程,類似于FANUC系統(tǒng)的宏程序。這是數(shù)控編程人員掌握了數(shù)控基本編程指令后需要繼續(xù)學(xué)習(xí)的一種高級(jí)指令。數(shù)控車工國(guó)家職業(yè)資格也要求高級(jí)工以上資格人員掌握能運(yùn)用變量編制數(shù)控加工程序[1]。
合理運(yùn)用西門子系統(tǒng)R參數(shù)編程能大大減少程序的內(nèi)容,減少輸入程序的工作量。修改R參數(shù)后不用重新編制程序就能適應(yīng)同一類型不同尺寸零件的加工。本文結(jié)合實(shí)際生產(chǎn)內(nèi)容,以生產(chǎn)過(guò)程中常常加工的槽為例,介紹系統(tǒng)子系統(tǒng)802D中R參數(shù)編程在數(shù)控車槽加工中的運(yùn)用。
如果一個(gè)數(shù)控程序中對(duì)于數(shù)值要求具有可修改性或者利用數(shù)控系統(tǒng)的計(jì)算功能來(lái)計(jì)算數(shù)值,從而讓數(shù)控程序適應(yīng)同一類型不同尺寸零件的加工,則可以使用西門子系統(tǒng)的R參數(shù)編程。
1)西門子802D系統(tǒng)中共有300個(gè)R計(jì)算參數(shù)可以使用,用字母R后跟數(shù)字來(lái)表示變量地址。其中R0-R99由用戶定義可以自由使用,R100-R299為加工循環(huán)時(shí)循環(huán)指令中的參數(shù)使用。如程序中無(wú)循環(huán)指令,則這部分參數(shù)也可以使用。為避免程序指令中R參數(shù)沖突,一般不用R100-R299。
2)R參數(shù)的賦值,除地址N、G、L外,可以用數(shù)值、算術(shù)表達(dá)式或者R參數(shù)對(duì)任意數(shù)控程序地址賦值。賦值時(shí)在地址符之后加上符號(hào)“=”,計(jì)算參數(shù)的賦值范圍(0.000 001…99 999 999)。
N10程序中把數(shù)值50賦值給R1,N20快速定位移動(dòng)X方向的數(shù)值為R1,根據(jù)上面的R1=50,所以X的坐標(biāo)為50。N30就是把算術(shù)表達(dá)式(R1+100)賦值給Y,根據(jù)兩個(gè)程序可得Y值等于150。
3)運(yùn)算的規(guī)定在進(jìn)行表達(dá)式運(yùn)算時(shí)遵循數(shù)學(xué)運(yùn)算法則。圓括號(hào)內(nèi)的運(yùn)算優(yōu)先進(jìn)行,然后按照先乘除后加減進(jìn)行運(yùn)算[2]。
通常數(shù)控機(jī)床運(yùn)行程序時(shí)是按照程序錄入的順序來(lái)執(zhí)行的,但有時(shí)程序需要改變執(zhí)行順序,此時(shí)則要用程序跳轉(zhuǎn)指令來(lái)實(shí)現(xiàn)程序的多分支運(yùn)行。實(shí)現(xiàn)程序控制跳轉(zhuǎn)指令需要指定跳轉(zhuǎn)目標(biāo)和跳轉(zhuǎn)條件兩個(gè)要素。
跳轉(zhuǎn)目標(biāo)只能是有標(biāo)記符的程序段。標(biāo)記符由2~8個(gè)字母或數(shù)字組成,其中開始兩個(gè)字符必須是字母或下劃線。標(biāo)記符位于一個(gè)程序段的開頭,后面必須加上冒號(hào)。
程序控制跳轉(zhuǎn)指令包括絕對(duì)跳轉(zhuǎn)和有條件跳轉(zhuǎn)。程序運(yùn)行到絕對(duì)跳轉(zhuǎn)指令后不再按照程序運(yùn)行順序執(zhí)行,而是按照指令跳轉(zhuǎn)到有標(biāo)記符的程序段。絕對(duì)跳轉(zhuǎn)指令的格式為:向前跳轉(zhuǎn)GOTOF標(biāo)記符(按程序運(yùn)行的順序,從程序頭到程序結(jié)束的方向跳轉(zhuǎn)),向后跳轉(zhuǎn)GOTOB標(biāo)記符(與程序運(yùn)行的方向相反,從程序開頭的方向跳轉(zhuǎn))。絕對(duì)跳轉(zhuǎn)示例如圖1所示[3]。
有條件跳轉(zhuǎn)則是使用IF條件語(yǔ)句來(lái)實(shí)現(xiàn)有條件跳轉(zhuǎn),如果滿足條件那么執(zhí)行跳轉(zhuǎn),不滿足條件,依然按照先后順序來(lái)執(zhí)行程序。其程序格式為:IF(跳轉(zhuǎn)條件)GOTO F(標(biāo)記符);滿足條件向前跳轉(zhuǎn)。或IF(跳轉(zhuǎn)條件)GOTOB(標(biāo)記符);滿足條件向后跳轉(zhuǎn)。條件跳轉(zhuǎn)示例如圖2所示[4]。
圖1 絕對(duì)跳轉(zhuǎn)指令示例
圖2 條件跳轉(zhuǎn)指令示例
采用手工編程編寫以下實(shí)例工件加工程序,若是使用西門子系統(tǒng)提供的槽加工指令編程時(shí),則程序內(nèi)容冗長(zhǎng),容易出錯(cuò)。而采用自動(dòng)編程方式編寫時(shí),當(dāng)同一類型不同尺寸的零件加工時(shí),還得重新繪圖、設(shè)置工藝參數(shù)、后處理程序、輸入到機(jī)床,適應(yīng)性差。采用西門子系統(tǒng)R參數(shù)編程,不僅可以簡(jiǎn)化程序內(nèi)容,而且具有很強(qiáng)的適應(yīng)性。操作者只要修改程序中R參數(shù)數(shù)值,就可以實(shí)現(xiàn)同一類型不同尺寸零件的加工[3]。
如圖3所示零件圖,槽的形狀相同槽寬5mm槽深2.5 mm,外圓直徑及長(zhǎng)度尺寸都已加工到位。用R參數(shù)編程編寫加工程序。
圖3 均布槽零件圖
此例中我們可以找到零件圖槽的變換規(guī)律:每個(gè)槽寬為5mm槽深2.5mm槽間距都是3mm,每個(gè)槽的加工動(dòng)作相同,因此我們將Z軸作為變量R參數(shù),用程序描述槽的加工動(dòng)作,多次循環(huán)調(diào)用來(lái)簡(jiǎn)化編程。Z坐標(biāo)R1初始值為-8,每個(gè)槽的間距是8mm,所以運(yùn)算表達(dá)式R1=R-8。程序示例如下所示。
如圖4所示階梯槽類零件圖,槽寬3mm,槽深5mm,圓錐及長(zhǎng)度尺寸加工完成,用參數(shù)編程編寫切槽程序。
圖4 階梯槽零件圖
本例中的變化規(guī)律:X和Z軸方向都是變化,每個(gè)槽的形狀一樣,所以槽的加工步驟還是一樣。X方向變化設(shè)置為R1,初始值為12.8。Z方向變化設(shè)置為R2,初始值為-12。根據(jù)槽的變化量R1=R1+4.54;R2=R-8。根據(jù)變化規(guī)律用程序描述出加工的動(dòng)作,結(jié)合參數(shù)編程循環(huán)調(diào)用即可。程序示例如下所示。
如圖5所示槽間距為等差數(shù)列排列的軸類零件,槽寬3mm槽深4mm,外圓柱面及長(zhǎng)度尺寸加工完成,用參數(shù)編程編寫切槽程序。
圖5 等差槽零件圖
本例中的變化規(guī)律是槽的間隔成等差數(shù)列,槽又是同一大小。把槽間距Z方向設(shè)定為變量,初始值R1=6。間距遞增量為3,用相對(duì)編程G91方式來(lái)表示遞增,描述出加工的動(dòng)作,用R參數(shù)重復(fù)調(diào)用。程序示例如下。
通過(guò)以上實(shí)例,西門子系統(tǒng)R參數(shù)編程的重點(diǎn)是要找到其中的變化規(guī)律,將加工動(dòng)作描述起來(lái),用變量計(jì)算方式來(lái)定義多次使用,不必每個(gè)槽都編寫程序。變量可以是一個(gè)軸發(fā)生改變,也可以是多個(gè)軸同時(shí)發(fā)生改變。多個(gè)軸就用多個(gè)R參數(shù)即可[5]。
也可以總結(jié)歸納出西門子R參數(shù)編程一般包括5個(gè)步驟:首先在程序中要先定義R參數(shù)初始值,寫出程序跳轉(zhuǎn)目標(biāo)的標(biāo)記符,用程序語(yǔ)言對(duì)加工動(dòng)作進(jìn)行描述,R參數(shù)運(yùn)算,用條件跳轉(zhuǎn)語(yǔ)句來(lái)實(shí)現(xiàn)加工動(dòng)作的多次調(diào)用[6]。參數(shù)編程加工步驟如圖6所示[3]。
圖6 參數(shù)編程加工步驟流程圖
以上實(shí)例中若槽的大小改變,或者加工槽的數(shù)量有變化,我們只是需要更改R參數(shù)數(shù)值或者對(duì)加工動(dòng)作描述做些修改,就可以滿足,而不需要重新編寫程序,大大節(jié)約了編程時(shí)間,提高了程序的適用性。合理使用R參數(shù)編程可以通過(guò)運(yùn)算指令來(lái)多次調(diào)用程序,從而優(yōu)化程序、簡(jiǎn)化程序,提高了程序的適用性,在數(shù)控加工中運(yùn)用廣泛。通過(guò)對(duì)R參數(shù)的修改,就可以實(shí)現(xiàn)對(duì)同一類型不同尺寸零件的加工[7]。