發(fā)那科宏程序
發(fā)那科宏程序,程序
用戶宏程序,用 戶 宏 程 序,,用戶宏程序,一、變量 二、運算指令 三、控制指令 四、簡單練習(xí) 五、系統(tǒng)變量 六、宏程序調(diào)用,主要內(nèi)容:,,用戶宏程序,主程序,宏程序,下一頁,用戶宏程序,宏程序的適用范圍:,,形狀類似但大小不同(圓、方及其它),其它,自動化功能(刀具長度測量、生產(chǎn)管理等),特殊形狀(橢圓、球等),大小相同但位置不同(組孔、陣列等),上一頁,用戶宏程序,宏程序與子程序的比較:,,用戶宏程序,宏程序相關(guān)的參數(shù),,#5(SBM) 用戶宏程序語句中, 0: 單程序段不停止 1: 單程序段停止,#6(CCV) 復(fù)位(Reset)后,公共變量#100~#199 0: 清空 1: 不清空 #7(CLV) 復(fù)位(Reset)后,局部變量#1~#33 0: 清空 1: 不清空,用戶宏程序,#4(NE9) 編輯程序號為9000~9999的程序 0: 不禁止 1: 禁止,#6(NPE) 程序登錄時,對含有M02,M99,M30的程序段 0: 視為登錄結(jié)束 1: 不視為登錄結(jié)束,用戶宏程序,變量的種類 變量的顯示與設(shè)定 變量的使用 未定義變量,,一、變量,用戶宏程序,1. 變量的種類,,例: #10, #1005 表達(dá)式也可以用于指定變量號,需封閉在括號中。 例: #[#2-1], #[#500/2] 可在程序段結(jié)尾加注釋說明變量內(nèi)容,需用括號封閉。 例: #2=#3-1(TOOL NUMBER);,變量符號(#)+ 變量號,,變量的表示,用戶宏程序,,變量的種類,用戶宏程序,,,變量的范圍,用戶宏程序,2.變量的顯示與設(shè)定,,變量的顯示,1.按下MDI面板上的功能鍵,,OFFSET SETTING,2.按幾次 鍵,直至出現(xiàn),,用戶宏程序,,3.按下 顯示宏程序變量值,用戶宏程序,4.按 、 顯示局部和公共變量值,用戶宏程序,,公共變量的設(shè)定,1.找到顯示公共變量的畫面。 2.將光標(biāo)移至欲設(shè)定的變量號上。 鍵入變量號并按 鍵 按換頁鍵 、 和光標(biāo)鍵將光標(biāo)移至欲設(shè)定的變量號上 3.鍵入數(shù)據(jù)并按,用戶宏程序,,,3.變量的使用,# i = ,將計算結(jié)果賦值給對應(yīng)的變量號,常數(shù)、變量、函數(shù)和運算符的組合,,表示方法,#1= #2 + 100 ; #1= #2 + #18 * SIN[#5] ;,用戶宏程序,,,變量的定義,當(dāng)在程序中定義變量值時,小數(shù)點可以省略,#1 = 123;,,#1,,123.000,,變量的引用,跟在地址后面的數(shù)值可用變量來代替。,G01 X10.0 F#1;,,F,,把#1值作為F的指令值,G01 X-[#1+#2] F#1;,把表達(dá)式放在括號中,用戶宏程序,把變量用于地址數(shù)據(jù)的時候,被引用變量的值根據(jù)地址的最小設(shè)定單位自動地四舍五入,G01 X#1; 當(dāng)#1賦值為12.3456時,實際指令值為G01 X12.346;,改變引用變量的值的符號,要把負(fù)號放在#的前面,G00 X-#1;,用戶宏程序,當(dāng)引用未定義的變量時,變量及地址字都被忽略,G00 X#1 Y#2; 當(dāng)#1=0,#2為空時, G00 X0;,,,程序號、順序號和任選程序段跳轉(zhuǎn)號不能使用變量,O#1; N#3 Y200.0; /#2 G00 X10.;,用戶宏程序,4.未定義變量,當(dāng)變量值未定義時,這樣的變量成為變量,變量#0 總是空變量,它不能寫只能讀,,未定義變量的引用,當(dāng)引用一個未定義的變量時,地址本身也被忽略,用戶宏程序,,未定義變量的計算,除了用賦值以外,其余情況下與0 相同,用賦值,,用戶宏程序,,條件表達(dá)式,EQ和NE中的不同于0,用戶宏程序,,示例,用戶宏程序,,二、運算指令,運算命令的種類 運算順序,用戶宏程序,1.運算命令的種類,,加減乘除,用戶宏程序,下取整(FIX):舍去小數(shù)點以下部分 上取整(FUP):將小數(shù)后部分進(jìn)位到整數(shù)部分,,數(shù)據(jù)處理,用戶宏程序,,1.0,2.0,-1.0,-2.0,1.0,1.234,-2.0,1.679,計算相應(yīng)的變量值#1,下取整(FIX):舍去小數(shù)點以下部分 上取整(FUP):將小數(shù)后部分進(jìn)位到整數(shù)部分,用戶宏程序,三角函數(shù)的角度單位為度。如:90°30′表示為90.5,,三角函數(shù),用戶宏程序,反三角函數(shù)的取值范圍,#1=SIN[90]; #1=COS[90]; #1=TAN[45]; #1=ATAN[1]/[1]; #1=ATAN[-1]/[-1];,,,1,,,,,,0,,1,,123.000,,123.000,#1 #1 #1 #1 #1,用戶宏程序,,其它函數(shù),#2=2; #1=SQRT[#2];,,,1.414,#1,用戶宏程序,,邏輯運算,對32位的每一位按二進(jìn)制進(jìn)行邏輯運算,用戶宏程序,29 25 4,00011101,00011001,00000100,從BCD轉(zhuǎn)為BIN: #i= BIN[#j]; 從BIN轉(zhuǎn)為BCD: #i= BCD[#j];,用戶宏程序,2. 運算順序,① 函數(shù) ② 乘除運算( * ,/,AND ) ③ 加減運算(+, - , OR , XOR ),#1=#2 + #3 * SIN[#4];,①,,②,,③,,用戶宏程序,可以利用[ ]來改變運算順序,可嵌套5次,可以使用函數(shù)名前面的兩個字母來指定該函數(shù)。 ROUND→RO FIX→FI,用戶宏程序,,三、控制指令,GOTO 語句 IF 語句 WHILE 語句,用戶宏程序,1.無條件轉(zhuǎn)移(GOTO 語句),GOTO n; n:程序段號(1- 99999),無條件地轉(zhuǎn)移到程序段n去。,n也可用變量或表達(dá)式來代替 GOTO 10; GOTO #10;,用戶宏程序,IF [] GOTO n;,若滿足,下步操作轉(zhuǎn)移到程序段號為n的程序段去。 若不滿足,執(zhí)行下個程序段。,2. 條件轉(zhuǎn)移(IF語句),IF [] THEN … ;,若滿足,執(zhí)行THEN后的宏程序語句,只執(zhí)行一個語句。 IF[#1 EQ #2] THEN #3=0;,,用戶宏程序,條件表達(dá)式,,條件不滿足時執(zhí)行的操作,,,,條件滿足時,是,否,IF,GOTO,上一頁,用戶宏程序,,常用格式,(當(dāng)前值)=(初值); WHILE [(當(dāng)前值)比較(目標(biāo)值)] DO m; (執(zhí)行循環(huán)操作); (當(dāng)前值)=(當(dāng)前值)±1; ENDm;,用戶宏程序,,四、簡單練習(xí),深孔加工 銑圓內(nèi)腔 粗車外圓 數(shù)據(jù)計算,用戶宏程序,#26= -30.0; #17= -10.0; #1= 0; #2= 0; #3= 0; WHILE[#1 GT #26] DO1; #1= #1+ #17; IF[#1 GE #26] GOTO1; #1= #26; G00 G90 Z[#2 + #3]; G01 Z#1 F300; G00 Z0; #2= #1; #3= 1.0; END1;,N1,,,,,,,鉆孔最終深度賦值,每次鉆孔深度賦值,當(dāng)次鉆孔深度坐標(biāo)初始化,前次鉆孔深度坐標(biāo)初始化,計算當(dāng)次鉆孔深度坐標(biāo),記錄當(dāng)次鉆孔深度,,與最終鉆孔深度比較,,鉆孔深度空程量初始化,,鉆孔深度空程量賦值,,用戶宏程序,O9999; #1=500; WHILE[#1 LE 507] DO1; #[#1]=#0 ; #1=#1+1; END1; M30;,O9999; #1=0; WHILE[#1 LE 9] DO1; #[500+#1]=SIN[#1*10] ; #1=#1+1; END1; M30;,將#500~#507的值設(shè)為,計算SIN0~SIN90的值并賦值給#500~#509,用戶宏程序,O9999; #1=501; #506=#500; WHILE[#1 LE 505] DO1; IF[#506 GT #[#1] ] GOTO1; #506=#[#1]; N1 #1=#1+1; END1; M30;,O9999; #2=501; WHILE[#2 LE 505] DO2; #1=#2; #506=#[#2-1]; WHILE[#1 LE 505] DO1; IF[#506 GT #[#1] ]GOTO1; #506=#[#1]; #[#1]=#[#2-1]; #[#2-1]=#506; #1=#1+1; END1; #2=#2+1; END2; M30;,N1,用戶宏程序,時間信息,示 例,用戶宏程序,○:有效 ×:無效,示 例,用戶宏程序,SETTING值,用戶宏程序,鏡向,用戶宏程序,加工零件數(shù),
收藏