程禮勇
(四川鴻艦重型機(jī)械制造有限責(zé)任公司,四川 攀枝花 617000)
隨著工業(yè)4.0的推廣,我們國(guó)家的現(xiàn)代制造技術(shù)蓬勃發(fā)展,數(shù)控機(jī)床的應(yīng)用得到了飛速的普及,從事數(shù)控加工的技術(shù)工人不斷增加,數(shù)控加工技術(shù)得到了加工企業(yè)的極大重視。數(shù)控編程是數(shù)控加工的關(guān)鍵技術(shù)之一,是數(shù)控加工中不可或缺的重要工作內(nèi)容,其編制效率直接影響數(shù)控加工的質(zhì)量和生產(chǎn)效率。目前,數(shù)控編程主要有軟件自動(dòng)編程和手工編程[1],軟件自動(dòng)編程存在一些缺陷和弊病,所編制的程序可讀性差、繁瑣、靈活性不夠好。為了解決這一弊病,就出現(xiàn)了宏程序編程。宏程序是手工編程的高級(jí)應(yīng)用和精髓,也是軟件自動(dòng)編程所不能達(dá)到的高點(diǎn)。
生產(chǎn)加工中會(huì)遇到一些數(shù)量少、品種多、形狀相似的工件,按照常規(guī)的編程加工方法加工此類工件,就必須對(duì)每一個(gè)工件進(jìn)行編程,加工時(shí)操作者還需要對(duì)每一個(gè)工件的程序作調(diào)整,因此生產(chǎn)加工效率低。我們?cè)诰幊踢^(guò)程中找到它們的共同點(diǎn),利用宏程序變量運(yùn)算和程序跳轉(zhuǎn)特性進(jìn)行程序編寫(xiě),可以縮短整體編程時(shí)間,減少操作者對(duì)程序的調(diào)整時(shí)間,提高生產(chǎn)加工效率[2]。
用戶宏程序是我們?cè)诰幊讨羞\(yùn)用的一種類似高級(jí)語(yǔ)言的程序,程序中存有變量,它能把由一種指令實(shí)現(xiàn)的某種功能像子程序一樣事先存入存儲(chǔ)器中,用一個(gè)命令代表這些功能。程序中只要寫(xiě)出該代表命令,就能實(shí)現(xiàn)這些功能。用戶宏程序是提高數(shù)控機(jī)床效能的一種高級(jí)應(yīng)用,在類似工件的加工中巧用宏程序?qū)⑵鸬绞掳牍Ρ兜男Ч?/p>
把由一組指令實(shí)現(xiàn)的某種功能像子程序一樣事先存入存儲(chǔ)器中,用一個(gè)命令代表這些功能。程序中只要寫(xiě)出該程序命令,就能實(shí)現(xiàn)這些功能。把這一組命令稱為用戶宏程序本體,把代表命令稱為“用戶宏命令”。用戶宏程序本體有時(shí)也簡(jiǎn)稱宏程序。用戶宏命令也稱為宏程序調(diào)用(見(jiàn)圖1所示)。
圖1 宏程序調(diào)用
1.1.1 變量的表示
用變量符號(hào)R和后面的變量號(hào)指定,表達(dá)式也可以用于指定變量符號(hào),但必須封閉在括號(hào)內(nèi)。比如R1=1,R2=6,R3=R1+R2。
1.1.2 變量的類型
R0~R99—可自由使用;R100~R249—加工循環(huán)傳遞參數(shù)(如程序中沒(méi)有使用加工循環(huán),這部分參數(shù)可自由使用);R250~R299—加工循環(huán)內(nèi)部計(jì)算參數(shù)(如程序中沒(méi)有使用加工循環(huán),這部分參數(shù)可自由使用)。
1.1.3 賦值方式
為程序的地址字賦值時(shí),在地址字之后應(yīng)使用“=”,N、G、L除外。
例:G00 X=R2
1.2.1 指令
主要有:IF 條件 GOTOF 標(biāo)號(hào) 、IF 條件 GOTOB 標(biāo)號(hào)[3]。
說(shuō)明:IF—如果滿足條件,跳轉(zhuǎn)到標(biāo)號(hào)處;如果不滿足條件,執(zhí)行下一條指令;GOTOF—向前跳轉(zhuǎn);GOTOB—向后跳轉(zhuǎn)。
1.2.2 標(biāo)號(hào)
目標(biāo)程序段的標(biāo)記符,必須要由2~8個(gè)字母或數(shù)字組成,其中開(kāi)始兩個(gè)符號(hào)必須是字母或下劃線。標(biāo)記符必須位于程序段首;如果程序段有順序號(hào)字,標(biāo)記符必須緊跟順序號(hào)字;標(biāo)記符后面必須為冒號(hào)。
1.2.3 條件
計(jì)算表達(dá)式,通常用比較運(yùn)算表達(dá)式,比較運(yùn)算符見(jiàn)表1。
表1 比較運(yùn)算符
(1)普通的數(shù)控加工程序只允許使用常量,例如加工圓形軌跡只能用很多點(diǎn)來(lái)采用逐步逼近的方式,使得工件由不規(guī)則形狀逐漸向圓形靠攏,對(duì)于精度高的工件就需要算出更多的點(diǎn),讓編程人員花費(fèi)大量時(shí)間。宏程序只需要將變量和公式寫(xiě)入編程中,通過(guò)指令控制,自動(dòng)進(jìn)行計(jì)算加工。
(2)普通程序的常量不能進(jìn)行相互計(jì)算,而宏程序變量可以計(jì)算,并且還有判斷和跳轉(zhuǎn)功能。
(3)對(duì)于自動(dòng)編程的程序來(lái)說(shuō),經(jīng)常一個(gè)簡(jiǎn)單的零件由軟件自動(dòng)編程出來(lái)的程序非常復(fù)雜,且不能跳轉(zhuǎn)、循環(huán)等。
(4)宏程序的容量小,機(jī)床的反應(yīng)速度快,加工效率高。由于宏程序多采用跳轉(zhuǎn)、循環(huán)等功能指令,其程序較短。機(jī)床在執(zhí)行宏程序時(shí),數(shù)控系統(tǒng)的計(jì)算機(jī)可以直接進(jìn)行插補(bǔ)運(yùn)算,加上電機(jī)和數(shù)控機(jī)床的反應(yīng)迅速,加工效率高。
在數(shù)控加工中,宏程序通過(guò)編輯子程序和使用全局變量來(lái)控制改變刀具路徑和刀具位置;在編程時(shí),不必要記住用戶宏程序功能主體所含的具體指令,只要記住用戶宏程序功能指令即可,同時(shí)在修改同類型的程序中,也只需要修改很少部分的變量即可。宏程序具有模塊化的思想和條件,編程時(shí)只需要根據(jù)零件幾何信息和不同的數(shù)學(xué)模型即可完成相應(yīng)的模塊化加工程序設(shè)計(jì),應(yīng)用時(shí)也只需要把零件信息、加工參數(shù)輸入到相應(yīng)的模塊調(diào)用語(yǔ)句中,能使編程人員從繁瑣的、重復(fù)的編程工作中解脫出來(lái),使得編程效率和生產(chǎn)加工效率得到有效提高。
生產(chǎn)加工中經(jīng)常遇到加工路徑重復(fù)情況,以下是加工錐型件實(shí)例(見(jiàn)圖2),其加工刀路見(jiàn)圖3。
圖2 錐型件
圖3 加工刀路
程序:
R0=16;
刀半徑
R1=5
刀尖圓弧半徑
R2=0.5
單邊余量
R17=-40;
當(dāng)前Z
R3=-40;
起點(diǎn)Z
R4=1;
終點(diǎn)Z
R5=5;
深度步長(zhǎng)
R6=43;
工件實(shí)際厚度
R7=22.5;
大端圓弧半徑
R8=10;
大端倒角半徑
R9=10;
錐度
R10=-10;
啟刀點(diǎn)X
R11=110;
R12=R11-R7-SQRT(R7*R7-(R6/2-R8)*(R6/2-R8));
R13=ACOS((R6/2-R8)/(R7-R8));
R14=180-2R13;
R15=R0-R1+R*COS(R9);
工作刀半徑
R16=R1*SIN(R9)-R1;
附加Z
T1D1;
G54G40G90G0Z50F100;
定點(diǎn),啟動(dòng)主軸
M3S1000;
主軸正轉(zhuǎn),1000轉(zhuǎn)/分
REPEAT
IFR17>R4;
R17=R4;
強(qiáng)制等于最后加工點(diǎn)的坐標(biāo)
ENDIF;
R18=R7-(R17-R3)*TAN(R9);
當(dāng)前大端圓弧半徑
R19=R8-(R17-R3)*TAN(R9);
當(dāng)前大端倒角半徑
R20=R6/2-(R17-R3)*TAN(R9);
R30=R18+R15+R2;
R31=R19+R15+R2;
R32=R20+R15+R2;
G0X=R10Y-R32;
Z=R17+R16;
G1X=R12;
G 3RP=R31 AP=R13;
RP=R30 AP=R14;
RP=R31 AP=R13;
G1X=R10;
G0Z5;
STOPRE;
R17=R17+R5;
每次循環(huán)增加的加工量
UNTILR17==R4+R5;
條件滿足結(jié)束循環(huán)
G0Z200;
M30
本程序在加工圓弧倒角時(shí),刀具直徑為32,刀尖圓弧為5的立銑刀。程序中把需要加工的尺寸、刀具大小、加工遞增量的大小等用宏程序中的變量代替,使得在宏程序中只有變量之間的計(jì)算,讓主要部分程序非常簡(jiǎn)潔明了。利用刀具中心位置理論與實(shí)際的偏差,通過(guò)走刀的角度和變量控制,讓機(jī)床在走刀的時(shí)候能準(zhǔn)確地走出加工軌跡;利用變量自增的循環(huán)刀路,簡(jiǎn)單明了的宏程序解決復(fù)雜的工件加工路線,并且加工精度是用宏程序變量控制,我們需要達(dá)到什么精度都只用改變一個(gè)變量就能解決,粗加工和精加工也只需要更換宏程序中控制刀具的圓弧半徑和加工余量的一個(gè)變量即可,從而精確快速地完成加工任務(wù)。
在普通的程序編制中程序字為一常量,一個(gè)程序只能加工一個(gè)幾何形狀,比較缺乏靈活性和通用性。在一些實(shí)際情況中機(jī)床需要按照一定的規(guī)律動(dòng)作,或者是加工法完全一樣,只是加工位置在工件上有所不同,如在環(huán)形上加工孔,如果用普通程序編程,那么會(huì)相當(dāng)復(fù)雜而且不通用。針對(duì)這種情況,用宏程序編程,在程序中使用變量,通過(guò)對(duì)變量進(jìn)行賦值和一定的運(yùn)算達(dá)到程序加工的功能。
我們國(guó)家的機(jī)械加工行業(yè)擁有大量的數(shù)控車間或數(shù)控機(jī)床,這些數(shù)控機(jī)床每天加工大量的工件,很多公司里都是采用人工手工編程,采用宏程序進(jìn)行歸類編程,會(huì)減少編程人員繁瑣的編程時(shí)間,并且在實(shí)際生產(chǎn)過(guò)程中降低操作者的勞動(dòng)強(qiáng)度,提高生產(chǎn)效率,增加企業(yè)的效益。所以宏程序在先進(jìn)的制造業(yè)和數(shù)控加工編程的實(shí)踐中具有重要意義。