宏程序編程解析_第1頁(yè)
宏程序編程解析_第2頁(yè)
宏程序編程解析_第3頁(yè)
宏程序編程解析_第4頁(yè)
宏程序編程解析_第5頁(yè)
已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、用戶宏程序雖然子程序?qū)幹葡嗤庸げ僮鞯某绦蚍浅S杏?,但用戶宏程序由于允許使用變量、算術(shù)和邏輯運(yùn)算及條件轉(zhuǎn)移,使得編制相同加工操作的程序更方便,更容易。 可將相同加工操作編為通用程序,如型腔加工宏程序和固定加工循環(huán)宏程序。 使 用時(shí),加工程序可用一條簡(jiǎn)單指令調(diào)出用戶宏程序,和調(diào)用子程序完全一樣。一、變量普通加工程序直接用數(shù)值指定 G代碼和移動(dòng)距離;例如,G01和X100。使用用戶宏程序時(shí),數(shù)值可以直接指定或用變量指定。當(dāng)用變量時(shí),變量值可用 程序或用MDI面板上的操作改變。#1= #2+100;G01 X#1 F300;說(shuō)明:1、變量的表示計(jì)算機(jī)允許使用變量名,用戶宏程序不行。變量用變量符號(hào)倂

2、)和后面的變量號(hào)指定。例如:#1表達(dá)式可以用于指定變量號(hào)。此時(shí),表達(dá)式必須封閉在括號(hào)中。例如:#1+#2-122、變量的類型變量根據(jù)變量號(hào)可以分成四種類型。變量號(hào)變量類型功能#0r空變量該變量總是空,沒(méi)有值能賦給該變量。#1-#33局部變量局部變量只能用在宏程序中存儲(chǔ)數(shù)據(jù),例如,運(yùn)算結(jié) 果。當(dāng)斷電時(shí),局部變量被初始化為空。調(diào)用宏程序 時(shí),自變量對(duì)局部變量賦值。#100-#199#500-#999公共變量公共變量在不同的宏程序中的意義相同。當(dāng)斷電時(shí), 變量#100 一#199初始化為空。變量#500 #999的 數(shù)據(jù)保存,即使斷電也不丟失。#1000系統(tǒng)變量系統(tǒng)變量用于讀和寫(xiě)CNC運(yùn)行時(shí)各3、變

3、量值的表示范圍局部變量和公共變量可以有0值或下面范圍中的值:-1047 至-10-29或10-29 到 1047如果計(jì)算結(jié)果超出有效范圍,則發(fā)出P/S報(bào)警No. 111。4、小數(shù)點(diǎn)的省略當(dāng)在程序中定義變量值時(shí),小數(shù)點(diǎn)可以省略。例:當(dāng)定義#仁123;變量#1的實(shí)際值是123.000;5、變量的引用為在程序中使用變量值,指定后跟變量號(hào)的地址。當(dāng)用表達(dá)式指定變 量時(shí),要把表達(dá)式放在括號(hào)中。例如:G01X#1+#2F#3;被引用變量的值根據(jù)地址的最小設(shè)定單位自動(dòng)地舍入。例如:當(dāng)G00X#1 ;以1/1000mm的單位執(zhí)行時(shí),CNC把12.3456賦值給 變量#1,實(shí)際指令值為G00X12. 346;改

4、變引用變量的值的符號(hào),要把負(fù)號(hào)(一)放在#的前面。例如:GOOX-#1 ;當(dāng)引用未定義的變量時(shí),變量及地址字都被忽略。例如:當(dāng)變量#1的值是0,并且變量#2的值是空時(shí),G00X#1 Y#2的執(zhí)行結(jié)果為G00X0;6、未定義的變量當(dāng)變量值未定義時(shí),這樣的變量成為“空”變量。變量#0總是空變量。它不能寫(xiě),只能讀。(a)引用當(dāng)引用一個(gè)未定義的變量時(shí),地址本身也被忽略。當(dāng)#1=空當(dāng) #1=0G90X100Y#1G90X100Y#11*G90X100*G90X100Y0(b)運(yùn)算當(dāng)#1=空當(dāng) #1=0#2= #11#2= #11*#2= 空 #2=0#2= #1*5#2= #1*5#2=0#2=0#2=

5、 #1+#1#2= #1+#1#2=0#2=0(c)條件表達(dá)式EQ和NE中的空不同于0。當(dāng)#1=空當(dāng) #1=0#1EQ#0成立#1EQ#0不成立#1 NE#0成立#1 NE#0J不成立#1 GE#0成立#1 GE#0不成立#1 GT#0不成立#1 GT#0不成立7、限制程序號(hào),順序號(hào)和任選程序段跳轉(zhuǎn)號(hào)不能使用變量。例:下面情況不能使用變量:0#1;/ #2G00X100;N#3Y200;二、算術(shù)和邏輯運(yùn)算下表中列出的運(yùn)算可以在變量中執(zhí)行。 運(yùn)算符右邊的表達(dá)式可包含常量和/ 或由函數(shù)或運(yùn)算符組成的變量。表達(dá)式中的變量 #J和#k可以用常數(shù)賦值。左邊 的變量也可以用表達(dá)式賦值。算術(shù)和邏輯運(yùn)算功能格

6、式備注定義#i= #J加法 減法 乘法 除法#i= #J+#k; #i= #J-#k; #i= #J*#k ; #i= #J/#k;正弦 反正弦 余弦 反余弦 正切 反正切#i=SIN#J; #i=ASIN#J; #i=COS#J; #i=ACOS#J; #i=TAN#J; #i=ATAN#J;角度以度指定.90 30,表示為90. 5度平方根 絕對(duì)值 舍入 上取整 下取整 自然對(duì)數(shù) 指數(shù)函數(shù)#i=SQRT#J; #i=ABS#J; #i=ROUND#J; #i=FIX#J; #i=FUP#J; #i=LN#J; #i=EXP#J;邏輯運(yùn)算一位一位地按 二進(jìn)制數(shù)執(zhí)行或 異或 與#i= #J O

7、R #k; #i= #J XOR #k; #i= #J AND #k ;從BCD轉(zhuǎn)為BIN 從BIN轉(zhuǎn)為BCD#i=BIN#J; #i=BCD#J;用于與PMC的信號(hào)交換說(shuō)明:角度單位函數(shù)SIN, COS, ASIN , ACOS, TAN和ATAN的角度單位是度。如 90° 30 表示為90. 5度。三、宏程序語(yǔ)句和NC語(yǔ)句 下面的程序段為宏程序語(yǔ)句:包含算術(shù)或邏輯運(yùn)算(=)的程序段。包含控制語(yǔ)句(例如,GOTO,DO, END)的程序段。包含宏程序調(diào)用指令(例如,用G65, G66, G67或其它G代碼,M代碼調(diào)用 宏程序)的程序段。除了宏程序語(yǔ)句以外的任何程序段都為 NC語(yǔ)句。

8、 說(shuō)明1、與NC語(yǔ)句的不同即使置于單程序段運(yùn)行方式,機(jī)床也不停止。但是,當(dāng)參數(shù)No。6000#5SBM設(shè)定為1時(shí),在單程序段方式中,機(jī)床停止。在刀具半徑補(bǔ)償方式中宏程序語(yǔ)句段不做為不移動(dòng)程序段處理。2、與宏程序語(yǔ)句有相同性質(zhì)的 NC語(yǔ)句含有子程序調(diào)用指令(例如,用M98或其它M代碼或用T代碼調(diào)用子程序) 但沒(méi)有除O, N或L地址之外的其它地址指令的 NC語(yǔ)句其性質(zhì)與宏程序相 同。不包含除O. N . P或L以外的指令地址的程序段其性質(zhì)與宏程序語(yǔ)句相同。四、轉(zhuǎn)移和循環(huán)在程序中,使用GOTO語(yǔ)句和IF語(yǔ)句可以改變控制的流向。有三種轉(zhuǎn)移和 循環(huán)操作可供使用:轉(zhuǎn)移和循環(huán)GOTO語(yǔ)句(無(wú)條件轉(zhuǎn)移)IF語(yǔ)

9、句(條件轉(zhuǎn)移:IFTHEN) WHILE語(yǔ)句(當(dāng)時(shí)循環(huán))a、無(wú)條件轉(zhuǎn)移(GOTO語(yǔ)句)轉(zhuǎn)移到標(biāo)有順序號(hào)n的程序段。當(dāng)指定1到99999以外的順序號(hào)時(shí),出現(xiàn) P/S報(bào)警No. 128??捎帽磉_(dá)式指定順序號(hào)。GOTO n; n:順序號(hào)(1 到 99999)例:GOTO 1;GOTO #10b、條件轉(zhuǎn)移(IF語(yǔ)句)IF之后指定條件表達(dá)式。IFv條件表達(dá)式GOTO n如果指定的條件表達(dá)式滿足時(shí),轉(zhuǎn)移到標(biāo)有順序號(hào)n的程序段。如果指定的 條件表達(dá)式不滿足,執(zhí)行下個(gè)程序段。如果變量#1的值大于10,轉(zhuǎn)移到順序號(hào)N2的程序段如果條件不滿足一 IF#1 GT l0GOTO 2.程序N2GOOG91 X10 如果

10、條件滿足IFv條件表達(dá)式>THEN如果條件表達(dá)式滿足,執(zhí)行預(yù)先決定的宏程序語(yǔ)句。只執(zhí)行一個(gè)宏程序語(yǔ)句如果#1和#2的值相同,0賦給#3。IF#1 EQ #2 THEN #3=0說(shuō)明1、條件表達(dá)式條件表達(dá)式必須包括算符。算符插在兩個(gè)變量中間或變量和常數(shù)中間,并且用括號(hào)(,)封閉。表達(dá)式可以替代變量。2、運(yùn)算符運(yùn)算符由2個(gè)字母組成,用于兩個(gè)值的比較,以決定它們是相等還是一個(gè)值 小于或大于另一個(gè)值。注意,不能使用不等號(hào)。典型程序下面的程序計(jì)算數(shù)值1-10的總和09500;#1=0;存儲(chǔ)和數(shù)變量的初值 #2=1;被加數(shù)變量的初值N1 IF#2 GT 10GOTO 2 ;#1= #1+#2;#2=

11、 #2+#1;GOTO 1;N2 M30 ;循環(huán)(WHILE語(yǔ)句)c、當(dāng)被加數(shù)大于10時(shí)轉(zhuǎn)移到N2 計(jì)算和數(shù)下一個(gè)被加數(shù)轉(zhuǎn)到N1程序結(jié)束運(yùn)算符運(yùn)算符含義EQ等于(=)NE不等于(工)GT大于(>)GE大于或等于(>)LT小于(<)LE小于或等于(<)在WHILE后指定一個(gè)條件表達(dá)式。當(dāng)指定條件滿足時(shí),執(zhí)行從DO到END 之間的程序。否則,轉(zhuǎn)到END后的程序段。r WHILE 條件表達(dá)式DO m ; (m=1,2,3)如果條件不滿足程序如果條件滿足卜 ENDm;說(shuō)明1、當(dāng)指定的條件滿足時(shí),執(zhí)行 WHILE從DO到END之間的程序。否則,轉(zhuǎn)而執(zhí)行END之后的程序段。這種指令

12、格式適用于IF語(yǔ)句。DO后的號(hào)和END 后的號(hào)是指定程序執(zhí)行范圍的標(biāo)號(hào),標(biāo)號(hào)值為1, 2, 3。若用1, 2,3以外的值會(huì)產(chǎn)生P/S報(bào)警No. 126。2、嵌套在DO END循環(huán)中的標(biāo)號(hào)(1到3)可根據(jù)需要多次使用。但是,當(dāng)程序有 交叉重復(fù)循環(huán)(DO范圍的重疊)時(shí),出現(xiàn)P/S報(bào)警No. 124。a標(biāo)號(hào)(1到3)可以根據(jù)要求多次使用.一WHILE DO 1;程序END 1;一WHILE DO 1;程序END 1;b、DO的范圍不能交又.一WHILE DO 1; 程序WHILE DO 2; -END 1;程序1- END2;c、DO循環(huán)可以嵌套3級(jí).WHILE DO 1 ;WHILE DO 2;W

13、HILE DO 3; 程序END3;END2;END1 ;d、控制可以轉(zhuǎn)到循環(huán)的外邊.WHILE DO 1;IF GOTO n; END 1;* Nnf、轉(zhuǎn)移不能進(jìn)入循環(huán)區(qū)內(nèi).IF GOTO n;WHILEDO 1 ;Nn .;END l;說(shuō)明無(wú)限循環(huán)當(dāng)指定DO而沒(méi)有指定 WHILE語(yǔ)句時(shí),產(chǎn)生從DO到END的無(wú)限循環(huán)。 處理時(shí)間當(dāng)在GOTO語(yǔ)句中有標(biāo)號(hào)轉(zhuǎn)移的語(yǔ)句時(shí),進(jìn)行順序號(hào)檢索。反向檢索的時(shí) 間要比正向檢索長(zhǎng)。用 WHILE語(yǔ)句實(shí)現(xiàn)循環(huán)可減少處理時(shí)間。典型程序下面的程序計(jì)算數(shù)值1到10的總和OOOO1;#仁0;#2=1;WHILE #2 LE 10 DO 1 ;#仁 #1+#2;#2= #

14、2+1:END I ;M30 ;五、宏程序的調(diào)用用下面的方法調(diào)用宏程序:宏程序調(diào)用非模態(tài)調(diào)用(G65) 模態(tài)調(diào)用(G66,G67)用G代碼調(diào)用宏程序用M代碼調(diào)用宏程序用M代碼調(diào)用子程序用T代碼調(diào)用子程序宏程序調(diào)用(G65)和子程序調(diào)用(M98)的不同之處如下:a 用G65,可以指定自變量(數(shù)據(jù)傳送到宏程序)。M98沒(méi)有該功能。b、 當(dāng)M98程序段包含另一個(gè)NC指令(例如,G01 X100 M98 Pp)時(shí),在指令執(zhí)行之后調(diào)用子程序。相反,G65無(wú)條件地調(diào)用宏程序。c、 M98程序段包含另一個(gè)NC指令(例如,G01 X100 M98 Pp)時(shí),在單程序段 方式中,機(jī)床停止。相反,G65機(jī)床不停止

15、。d、用G65,改變局部變量的級(jí)別。用 M98,不改變局部變量的級(jí)別。1、非模態(tài)調(diào)用(G65)當(dāng)指定G65時(shí),以地址P指定的用戶宏程序被調(diào)用。數(shù)據(jù)(自變量)能傳遞到 用戶宏程序體中。G65 Pp L e自變量指定;P:要調(diào)用的程序L :重復(fù)次數(shù)(默認(rèn)值為1)e:自變量:數(shù)據(jù)傳遞到宏程序說(shuō)明a、呼調(diào)在G65之后,用地址P指定用戶宏程序的程序號(hào)。當(dāng)要求重復(fù)時(shí),在地址L后指定從1到9999的重復(fù)次數(shù)。省略L值時(shí),認(rèn) 為L(zhǎng)等于1。使用自變量指定,其值被賦值到相應(yīng)的局部變量。b、自變量指定可用兩種形式的自變量指定。自變量指定 I使用除了 G,L,O, N和P以 外的字母,每個(gè)字母指定一次。自變量指定U使

16、用A,B,C和Ii,Ji和Ki(i 為110)。根據(jù)使用的字母,自動(dòng)地決定自變量指定類型。自變量指定I地址變量號(hào)地址變量號(hào)地址變量號(hào)A#1I#4T#20B#2J#5U#21C#3K#6V#22D#7M#13W#23E#8Q#17X#24F#9R#18Y#25H#11S#19Z#26地址G,L,N,Q和P不能在自變量中使用。不需要指定的地址可以省略,對(duì)應(yīng)于省略地址的局部變量設(shè)定為空。地址不需要按字母順序指定。但應(yīng)符合字地址的格式。但是,I, J和K需要按字母順序指定。例:B A DJ K正確B A DJ I不正確自變量指定U自變量指定U使用A,B和C各1次,I,J, K10次。自變量指定U用于傳

17、 遞諸如三維坐標(biāo)值的變量。地址變量號(hào)地址變量號(hào)地址變量號(hào)A#1K3#12J7#23B#2I4#13K7#24C#3J4#14I8#25I1#4K4#15J8#26J1#5I5#16K8#27K1#6J5#17I9#28I2#7K5#18J9#29J2#8I6#19K9#30K2#9J6#20I10#31I3#10K6#21J10#32J3#11I7#22K10#33I,J, K的下標(biāo)用于確定自變量指定的順序,在實(shí)際編程中不寫(xiě)格式 任何自變量前必須指定G65。自變量指定I和U的混合CNC內(nèi)部自動(dòng)識(shí)別自變量指定I和自變量指定U。如果自變量指定I和自變 量指定U混合指定的話,后指定的自變量類型有效。

18、本例中的I4和D5自變量都分配給變量#7,貝忻者D5有效。典型程序編制一個(gè)宏程序加工輪圓上的孔。圓周的半徑為I,起始角為A,間隔為B,鉆孔數(shù)為H ,圓的中心是(X , 丫)。指令可以用絕對(duì)值或增量值指定。順時(shí)針 方向鉆孔時(shí)B應(yīng)指定負(fù)值。調(diào)用格式G65 P9100 Xx Yy Zz Rr Ii Aa Bb Hh ;X:圓心的X坐標(biāo)(絕對(duì)值或增量值指定)(#24)Y:圓心的Y坐標(biāo)(絕對(duì)值或增量值指定)(#25)Z:孔深(#26)R:快速趨近點(diǎn)坐標(biāo) 倂18)F:切削進(jìn)給速度(#9)I:圓半徑(#4)A:第一孔的角度倂1)B:增量角(指定負(fù)值時(shí)為順時(shí)針)(#2)H:孔數(shù)倂11)宏程序調(diào)用程序00002

19、;G90 G54 G00 X0 Y0 Z100;H5;G65 P9100 X100 Y50 R30 Z-50 F500 I100 A0 B45 M30;宏程序(被調(diào)用的程序)09100;#3= #4003;G81 Z#26 R#18 F#9;IF#3 EQ 90GOTO 1 ;#24= #5001+#24;#25= #5002+#25;N1 WHILE #11 GT 0 DO 1 ;#5= #24+#4*COS#1;#6= #25+#4*SIN#1;G90 X#5 Y#6;#仁 #1+#2;#1 仁 #11-1;END 1 ;G#3 G80;M99;變量的含義#3:貯存03組的G代碼#5:下個(gè)

20、孔的X坐標(biāo)#6:下個(gè)孔的丫坐標(biāo)2、模態(tài)調(diào)用(G66)一旦發(fā)出儲(chǔ)存03組G代碼鉆孔循環(huán)在G90方式轉(zhuǎn)移到N1計(jì)算圓心的X坐標(biāo) 計(jì)算圓心的丫坐標(biāo) 直到剩余孔數(shù)為0 計(jì)算X軸上的孔位 計(jì)算X軸上的孔位 移動(dòng)到目標(biāo)位置之后執(zhí)行鉆孔 更新角度孔數(shù)-1返回原始狀態(tài)的G代碼取消模態(tài)調(diào)用G66 Pp L P: e:G66則指定模態(tài)調(diào)用,即指定沿移動(dòng)軸移動(dòng)的程序宏程序。e自變量指定; 要調(diào)用的程序號(hào) 重復(fù)次數(shù)(默認(rèn)值為1)G67自變量:傳遞到宏程序的數(shù)據(jù)O0001;/,9100 ;G66 P9100 L2 A1 B2f G00 G90 X100 ;Y200;X150Y300 ;G67:GOOZ-#1; G01

21、Z-#2 F300;M30 ;pi99 ;說(shuō)明調(diào)用A、在G66之后,用地址P指定模態(tài)調(diào)用的程序號(hào)。B、當(dāng)要求重復(fù)時(shí),地址L后指定從1到9999的重復(fù)次數(shù)。C、與非模態(tài)調(diào)用 G65 相同,自變量指定的數(shù)據(jù)傳遞到宏程序體中。 取消指定G67代碼時(shí),其后面的程序段不再執(zhí)行模態(tài)宏程序調(diào)用。嵌套調(diào)用調(diào)用可以嵌套4級(jí)。包括非模態(tài)調(diào)用(G65)和模態(tài)調(diào)用(G66)。但不包括子程 序調(diào)用 (M98)。模態(tài)調(diào)用嵌套A、在模態(tài)調(diào)用期間,指定另一個(gè) G66代碼,可以嵌套模態(tài)調(diào)用。B、在G66程序段中,不能調(diào)用多個(gè)宏程序。C、G66必須在自變量之前指定。D、在只有諸如輔助功能但無(wú)移動(dòng)指令的程序段中不能調(diào)用宏程序。E、

22、局部變量(自變量)只能在G66程序段中指定。注意,每次執(zhí)行模態(tài)調(diào)用時(shí), 不再設(shè)定局部變量。典型程序 用宏程序編制 G81 固定循環(huán)的操作。加工程序使用模態(tài)調(diào)用。為了簡(jiǎn)化程 序,使用絕對(duì)值指定全部的鉆孔數(shù)據(jù)。固定循環(huán)是由下面的基本動(dòng)作組成的:第 1 步:沿 K 軸和 Y 軸定位第 2 步:快速移動(dòng)到口點(diǎn)第 3 步:切削進(jìn)給到 Z 點(diǎn)第 4 步:快速退回到 R 點(diǎn)或初始點(diǎn)調(diào)用格式G65 P9110 Xx Yy Zz Rr Ff Ll;X :孔的X坐標(biāo)(由絕對(duì)值指定)(#24)丫 :孔的丫坐標(biāo)(由絕對(duì)值指定。)(#25)Z: Z點(diǎn)坐標(biāo)(由絕對(duì)值指定)(#26)R: R點(diǎn)坐標(biāo)(由絕對(duì)值指定)(# 18)F:切削進(jìn)給速度(#9)L :重復(fù)次數(shù) 調(diào)用宏程序的程序O0001;G28 G91 X0 丫0 Z0;G92 X0 丫0 Z50;G00 G90 X100 丫50;G66 P9110 Z-20 R2 F500;G90 X20 丫20;X50;丫50;X0 丫80;G67;M30;宏程序(被調(diào)用的

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論