宏程序的基本概念_第1頁(yè)
宏程序的基本概念_第2頁(yè)
宏程序的基本概念_第3頁(yè)
宏程序的基本概念_第4頁(yè)
宏程序的基本概念_第5頁(yè)
已閱讀5頁(yè),還剩5頁(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)介

宏程序的基本概念宏程序的基本概念/NUMPAGES10第10頁(yè)共7頁(yè)宏程序的基本概念宏程序的基本概念數(shù)控銑削宏程序編程(一)一、宏程序的基本概念1、宏程序的定義以一組子程序的形式存儲(chǔ)并帶有變量的程序稱為用戶宏程序,簡(jiǎn)稱宏程序;調(diào)用宏程序的指令稱為“用戶宏程序指令”,或宏程序調(diào)用指令(簡(jiǎn)稱宏指令)。宏程序與普通程序相比較,普通的程序字為常量,一個(gè)程序只能描述一個(gè)幾何形狀,所以缺乏靈活性和適用性。而在用戶宏程序的本體中,可以使用變量進(jìn)行編程,還可以用宏指令對(duì)這些變量進(jìn)行賦值、運(yùn)算等處理。通過(guò)使用宏程序能執(zhí)行一些有規(guī)律變化(如非圓二次曲線輪廓)的動(dòng)作。宏程序分A類和B類兩種,F(xiàn)ANUCi系統(tǒng)采用B類宏程序進(jìn)行編程。2、宏程序中的變量在常規(guī)的主程序和子程序內(nèi),總是將一個(gè)具體的數(shù)值賦給一個(gè)地址,為了使程序更加具有通用性、靈活性,故在宏程序中設(shè)置了變量。1)、變量的表示:一個(gè)變量由符號(hào)“#”和變量序號(hào)組成,如:#I(I=1,2,……)。此外,變量還可以用表達(dá)式進(jìn)行表示,但其表達(dá)式必須全部寫入方括號(hào)“[]”中。例:#100,#500,#5,#[#1+#2+#10];2)、變量的引用:將跟隨在地址符后的數(shù)值用變量來(lái)代替的過(guò)程稱為引用變量。同樣,引用變量也可以用表達(dá)式。例G01X#100Y—#101F[#101+#103];當(dāng)#100=100.0、#101=50.0、#103=80.0時(shí),上例即表示為G01X100.0Y50.0F130;3)、變量的種類:變量分為局部變量、公共變量(全局變量)和系統(tǒng)變量三種。在A、B類宏程序中,其分類均相同。A、局部變量(#1~#33)是在宏程序中局部使用的變量。當(dāng)宏程序C調(diào)用宏程序D而且都有變量#1時(shí),由于變量#1服務(wù)于不同的局部,所以C中的#1與D中的#1不是同一個(gè)變量,因此可以賦予不同得不償失值,且互不影響。關(guān)閉電源時(shí),局部變量被初始化成“空”。宏調(diào)用時(shí),自變量分配給局部變量。B、公共變量(#100~#149/#199;#500~#549/#599)貫穿于整個(gè)程序過(guò)程。他可以在不同的宏程序間共享,當(dāng)宏程序C調(diào)用宏程序D而且都有變量#100時(shí),由于#100是全局變量,所以C中的#100與D中的#100是同一個(gè)變量。關(guān)閉電源時(shí)變量#100~#149被初始化成“空”,而變量#500~#531保持?jǐn)?shù)據(jù)。公共變量#150~#199和#532~#999也可以選用,但是當(dāng)這些變量被使用時(shí),紙帶長(zhǎng)度減少了8.5米。C、系統(tǒng)變量(#1000~)是指有固定用途的變量,它的值決定系統(tǒng)的狀態(tài)。系統(tǒng)變量用于讀寫各種NC數(shù)據(jù)項(xiàng),如當(dāng)前位置、刀具補(bǔ)償值。系統(tǒng)變量包括刀具偏置值變量,接口輸入與接口輸出信號(hào)變量及位置信號(hào)變量等。宏程序編程1、變量的賦值變量的賦值方法有兩種,即直接賦值和引數(shù)賦值,其中直接賦值的方法較為直觀,方便,其書寫格式如下:[例]:#100=100.0#101=30.0+20.0;2、宏程序運(yùn)算指令宏程序的運(yùn)算類似于數(shù)學(xué)運(yùn)算與邏輯運(yùn)算,用各種數(shù)學(xué)符號(hào)來(lái)表示。常用運(yùn)算指令表如下:變量的各種運(yùn)算功能格式備注與具體示例定義,轉(zhuǎn)換/賦值#i=#j#100=#1,#100=30.0加法#i=#j+#k#100=#1+#2#100=#100.0-#2#100=#1*#2#100=#1/30減法#i=#j-#k乘法#i=#j*#k除法#i=#j*#k正弦#i=SIN[#j]#100=SIN[#1]#100=COS[36.3+#2]#100=ATAN[#1]/[#2]反正弦#i=ASIN[#J]余弦#i=COS[#J]反余弦#i=ACOS[#j]正切#i=TAN[#j]反正切#i=ATAB[#j]/[#K]平方根#i=SQRT[#j]#100SQRT[#1*#1-100]#100=EXP[#1]絕對(duì)值#i=ABS[#j]舍入#i=ROUND[#j]上取整/上進(jìn)位#i=FIX[#j]下取整/下進(jìn)位#i=FUP[#j]自然對(duì)數(shù)#i=LN[#j]指數(shù)函數(shù)#i=EXP[#j]或#i=#jOR#k用二進(jìn)制數(shù)按位進(jìn)行邏輯操作異或#i=#jXOR#K與#i=#jAND#K將BCD碼轉(zhuǎn)換成BIN碼#i=BIN[#j]用于與PMC間信號(hào)的交換將BIN碼轉(zhuǎn)換成BCD碼#i=BCD[#j]宏程序計(jì)算說(shuō)明如下:、角單位:在SIN,COS,TAN,ATAN中所用的角度單位是度,分和秒要換算成帶小數(shù)點(diǎn)的度。如90°30′表示90.5°,而30°18′表示30.3°。、ATAN功能:在ATANT之后的兩個(gè)變量用“/”分開,結(jié)果在0°和360°之間。如當(dāng)#1=ATANT[1]/[—1]時(shí),#1=135.0。、ROUND功能:當(dāng)ROUND功能包含在算術(shù)或邏輯操作、IF語(yǔ)句、WHILE語(yǔ)句中時(shí),將保留小數(shù)點(diǎn)后一位,其余位進(jìn)行四舍五入。例:#1=ROUND[#2];其中#2=1.2345,則#1=1.0當(dāng)ROUND出現(xiàn)在NC語(yǔ)句地址中時(shí),進(jìn)位功能根據(jù)地址的最小輸入增量四舍五入指定的值。例:編一個(gè)程序,根據(jù)變量#1、#2的值進(jìn)行切削,然后返回到初始點(diǎn)。假定增量系統(tǒng)是1/1000mm,#1=1.2345,#2=2.3456則G00G91X—#1;移動(dòng)1.235mmG01X—#2F300;移動(dòng)2.346mmG00X[#1+#2]; 因?yàn)?.2345+2.3456=3.5801移動(dòng)3.580mm刀具此時(shí)不能返回到加工的初始位置。而換成G00X[ROUND[#1]+ROUND[#2]]時(shí)能返回到初始點(diǎn)。、上進(jìn)位和下進(jìn)位成整數(shù):例:#1=1.2、#2=—1.2則:#3=FUP[#1],結(jié)果#3=2.0#3=FIX[#1],結(jié)果#3=1.0#3=FUP[#2],結(jié)果#3=—2.0#3=FIX[#2],結(jié)果#3=—1.0、算術(shù)和邏輯操作的縮寫方式:取功能塊名的前兩個(gè)字符,例:ROUNDRO。、宏程序數(shù)學(xué)計(jì)算的次序依次為:函數(shù)運(yùn)算(SIN,COS,ATAN等),乘和除運(yùn)算(*,/,AND等),加和減運(yùn)算(+,—,OR,XOR等)。、函數(shù)中的括號(hào)。括號(hào)用于改變運(yùn)算次序,函數(shù)中的括號(hào)允許嵌套使用,但最多只允許嵌套5級(jí)。[例]#1=SIN[[[#2+#3]*4+#5]/#6];注意:在加工程序中,方括號(hào)用于封閉表達(dá)式,圓括號(hào)用于注釋。3、宏程序轉(zhuǎn)移指令控制指令起到控制程序流向的作用。在一個(gè)程序中,控制程序流向可以用GOTO、IF語(yǔ)句改變。有三種分支循環(huán)語(yǔ)句如下:GOTO語(yǔ)句(無(wú)條件分支);IF語(yǔ)句(條件分支:if...,then...);WHILE語(yǔ)句(循環(huán)語(yǔ)句while...)。、分支語(yǔ)句格式一:GOTOn;[例]GOTO1000;無(wú)條件轉(zhuǎn)移語(yǔ)句,當(dāng)執(zhí)行該程序時(shí),無(wú)條件轉(zhuǎn)移到N1000程序段執(zhí)行,順序號(hào)可以用表達(dá)式。格式二:IF[條件表達(dá)方式]GOTOn;[例]IF[#1GT#100]GOTO100;有條件轉(zhuǎn)移語(yǔ)句,如果條件成立,則轉(zhuǎn)到N程序段執(zhí)行,如果條件不成立,則執(zhí)行下一句程序。一個(gè)條件表達(dá)式一定要有一個(gè)操作符,這個(gè)操作符插在兩個(gè)變量或一個(gè)變量和一個(gè)常數(shù)之間,并且要用方括號(hào)括起來(lái),即:[表達(dá)式操作符表達(dá)式]。條件式的種類如下表:表達(dá)式種類條件式意義具體示例#iEQ#j等于(=)IF[#5EQ#6]GOT100;#iNE#j不等于(≠)IF[#5NE100]GOT100;#iGT#j大于(>)IF[#5GT#6]GOT100;#iGE#j大于等于(≥)IF[#5GE100]GOT100;#iLT#j小于(<)IF[#5LT#6]GOT100;#iLE#j小于等于(≤)IF[#5LE100]GOT100;、循環(huán)指令WHILE[條件式]DOm(m=1,2,3,…);……ENDm;當(dāng)條件式滿足時(shí),就循環(huán)執(zhí)行WHILE與END之間的程序段m次,當(dāng)條件不滿足時(shí),就執(zhí)行ENDm;的下一個(gè)程序段。、宏程序的嵌套WHILE[條件式]DOm和ENDm必須成對(duì)使用,并且,DOm一定要在ENDm之前指定,用m來(lái)識(shí)別;同一識(shí)別號(hào)m可以在一個(gè)程序中多次使用,但DOm與ENDm必須成對(duì)使用;在一個(gè)程序中DO的范圍不能夠交叉,DO可以嵌套三重;在DOm~ENDm的內(nèi)部可以用GOTOn轉(zhuǎn)移到外部,但

溫馨提示

  • 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)論