第一篇:華中數(shù)控宏程序教案
華中數(shù)控宏程序教案.txt人生在世,難敵宿命,沉淪其中。我不愛風(fēng)塵,似被前緣誤!我只為我最愛的人流淚“我會學(xué)著放棄你,是因?yàn)槲姨珢勰恪壁A了你,我可以放棄整個世界華中數(shù)控宏程序教案 一.什么是宏程序?
什么是數(shù)控加工宏程序?簡單地說,宏程序是一種具有計(jì)算能力和決策能力的數(shù)控程序。宏程序具有如下些特點(diǎn):
1.使用了變量或表達(dá)式(計(jì)算能力),例如:(1)G01X[3+5];有表達(dá)式3+5(2)G00X4F[#1];有變量#1(3)G01Y[50*SIN[3]];有函數(shù)運(yùn)算 2.使用了程序流程控制(決策能力),例如:(1)IF#3GE9;有選擇執(zhí)行命令 ?? ENDIF(2)WHILE#1LT#4*5;有條件循環(huán)命令 ?? ENDW 二.用宏程編程有什么好處? 1.宏程序引入了變量和表達(dá)式,還有函數(shù)功能,具有實(shí)時動態(tài)計(jì)算能力,可以加工非圓曲線,如拋物線、橢圓、雙曲線、三角函數(shù)曲線等;
2.宏程序可以完成圖形一樣,尺寸不同的系列零件加工; 3.宏程序可以完成工藝路徑一樣,位置不同的系列零件加工; 4.宏程序具有一定決策能力,能根據(jù)條件選擇性地執(zhí)行某些部分;
5.使用宏程序能極大地簡化編程,精簡程序。適合于復(fù)雜零件加工的編程。一.宏變量及宏常量 1.宏變量
先看一段簡單的程序: G00X25.0 上面的程序在X軸作一個快速定位。其中數(shù)據(jù)25.0是固定的,引入變量后可以寫成: #1=25.0;#1是一個變量 G00X[#1];#1就是一個變量
宏程序中,用“#”號后面緊跟1~4位數(shù)字表示一個變量,如#1,#50,#101,??。變量有什么用呢?變量可以用來代替程序中的數(shù)據(jù),如尺寸、刀補(bǔ)號、G指令編號??,變量的使用,給程序的設(shè)計(jì)帶來了極大的靈活性。使用變量前,變量必需帶有正確的值。如 #1=25 G01X[#1];表示G01X25 #1=-10;運(yùn)行過程中可以隨時改變#1的值 G01X[#1];表示G01X-10 用變量不僅可以表示坐標(biāo),還可以表示G、M、F、D、H、M、X、Y、??等各種代碼后的數(shù)字。如: #2=3 G[#2]X30;表示G03X30 例1使用了變量的宏子程序。%1000 #50=20;先給變量賦值 M98P1001;然后調(diào)用子程序 #50=350;重新賦值
M98P1001;再調(diào)用子程序 M30 %1001 G91G01X[#50];同樣一段程序,#50的值不同,X移動的距離就不同 M99 2.局部變量
編號#0~#49的變量是局部變量。局部變量的作用范圍是當(dāng)前程序(在同一個程序號內(nèi))。如果在主程序或不同子程序里,出現(xiàn)了相同名稱(編號)的變量,它們不會相互干擾,值也可以不同。例 %100 N10#3=30;主程序中#3為30 M98P101;進(jìn)入子程序后#3不受影響 #4=#3;#3仍為30,所以#4=30 M30 %101 #4=#3;這里的#3不是主程序中的#3,所以#3=0(沒定義),則:#4=0 #3=18;這里使#3的值為18,不會影響主程序中的#3 M99 3.全局變量
編號#50~#199的變量是全局變量(注:其中#100~#199也是刀補(bǔ)變量)。全局變量的作用范圍是整個零件程序。不管是主程序還是子程序,只要名稱(編號)相同就是同一個變量,帶有相同的值,在某個地方修改它的值,所有其它地方都受影響。例 %100 N10#50=30;先使#50為30 M98P101;進(jìn)入子程序
#4=#50;#50變?yōu)?8,所以#4=18 M30 %101 #4=#50;#50的值在子程序里也有效,所以#4=30 #50=18;這里使#50=18,然后返回 M99 為什么要把變量分為局部變量和全局變量?如果只有全局變量,由變量名不能重復(fù),就可能造成變量名不夠用;全局變量在任何地方都可以改變它的值,這是它的優(yōu)點(diǎn),也是它的缺點(diǎn)。說是優(yōu)點(diǎn),是因?yàn)閰?shù)傳遞很方便;說是缺點(diǎn),是因?yàn)楫?dāng)一個程序較復(fù)雜的時候,一不小心就可能在某個地用了相同的變量名或者改變了它的值,造成程序混亂。局部變量的使用,解決了同名變量沖突的問題,編寫子程序時,不需要考慮其它地方是否用過某個變量名。什么時候用全局變量?什么時候用局部變量?在一般情況下,你應(yīng)優(yōu)先考慮選用局部變量。局部變量在不同的子程序里,可以重復(fù)使用,不會互相干擾。如果一個數(shù)據(jù)在主程序和子程序里都要用到,就要考慮用全局變量。用全局變量來保存數(shù)據(jù),可以在不同子程序間傳遞、共享、以及反復(fù)利用。
華中數(shù)控宏程序編程實(shí)例(1)宏程序編拋物線車削 %0342 T0101M03S600 G00X20.5Z2 #11=12;B初值
#10=SQRT[2*#11];A初值 WHILE#10LE8 G90G01X[2*#10]Z[12-#11]F200 #10=#10+0.1 #11=#10*#10/2 ENDW G01X16Z[-32+12] Z-28 U4 G00X20.5Z2M05 M30(2)宏程序編正弦線 %3404 M03S600T0101 G92X80Z30 G00X25Z3 G71U0.6R0.6P6Q13X0.8F100 N6G0X17 #11=0 WHILE#11GE-25 #9=#11*PI/10;#10=3.5*SIN[#9] G01X[17-2*#10]Z[#11]F100 #11=#11-0.5 N13ENDW G01X24Z-25 Z-30 X30 G00X80Z30 M30(3)宏程序編拋物線與橢圓 %8002 G92X50Z100 M98P8001A8B5C4U32V40W55 G36G90X50Z0 M30 %8001 G64G37(連續(xù)切削,半徑編程)#10=0#11=0(拋物線起點(diǎn))WHILE#11LE#20 G01X[#10]Z[-#11]F150 #10=#10+0.08(拋物線X增量)#11=#10*#10/#2(計(jì)算拋物線z)ENDW #50=SQRT[#20*#2](拋物線與橢圓交接處半徑)G01X[#50]Z[-#20](拋物線終點(diǎn))G01Z[-#21](直線終點(diǎn))#12=0#13=0(橢圓起點(diǎn))WHILE#13LE#1 #12=#0/#1*SQRT[#1*#1-#13*#13](橢圓X增量)G01X[#50+#0-#12]Z[-#21-#13] #13=#13+0.08(橢圓z增量)ENDW G01X[#50+#0]Z[-#21-#1](橢圓終點(diǎn))Z[-#22] U2 G0X50Z100 M99
第二篇:數(shù)控編程--宏程序教案
華中數(shù)控加工中心編程---宏程序
教案
一、組織教學(xué)
檢查學(xué)生出勤情況
二、復(fù)習(xí)提問
1、畫圖,橢圓怎么加工
2、舉例,一個任意形狀的工件,如何在邊上倒圓角
三、相關(guān)專業(yè)理論基礎(chǔ)
1、看、畫圖零件
2、加工工藝分析與編寫數(shù)控加工工藝卡
3、裝夾方法與定位方法的分析
4、華中系統(tǒng)編程規(guī)則
5、刀具的選擇
6、檢驗(yàn)方法與檢測技巧
三、課題訓(xùn)練思路
采用綜合例題方式,按上述要求逐一分組進(jìn)行,加工前教師進(jìn)行加工講評,對程序驗(yàn)證后進(jìn)行加工,加工完教師進(jìn)行總結(jié)講評,指出加工過程中的錯誤和不合格項(xiàng)。
四、課題內(nèi)容 用數(shù)控加工中心銑床加工出如下圖所示零件,材料為鋁,毛坯為75*75mm,按圖樣要求完成零件的加工。
五、新授課
如何使加工中心這種高效自動化機(jī)床更好地發(fā)揮效益,其關(guān)鍵之一,就是開發(fā)和提高數(shù)控系統(tǒng)的使用性能。宏程序的應(yīng)用,是提高數(shù)控系統(tǒng)使用性能的有效途徑。下面就宏程序的應(yīng)用。
(一)什么是宏程序?
什么是數(shù)控加工宏程序?簡單地說,宏程序是一種具有計(jì)算能力和決策能力的數(shù)控程序。宏程序具有如下些特點(diǎn): 1.使用了變量或表達(dá)式(計(jì)算能力),例如:(1)G01X[#3+#5];有表達(dá)式#3+#5(2)G00X4F[#1];有變量#1(3)G01Y[50*SIN[#3]];有函數(shù)運(yùn)算
2.使用了程序流程控制(決策能力),例如:(1)WHILE有條件循環(huán)命令
(二)用宏程編程有什么好處?
1.宏程序引入了變量和表達(dá)式,還有函數(shù)功能,具有實(shí)時動態(tài)計(jì)算能力,可以加工非圓曲線,如拋物線、橢圓、雙曲線、三角函數(shù)曲線等; 2.宏程序可以完成圖形一樣,尺寸不同的系列零件加工; 3.宏程序可以完成工藝路徑一樣,位置不同的系列零件加工; 4.宏程序具有一定決策能力,能根據(jù)條件選擇性地執(zhí)行某些部分; 5.使用宏程序能極大地簡化編程,精簡程序。適合于復(fù)雜零件加工的編程。
(三)宏變量及宏常量 1.宏變量
先看一段簡單的程序: G00X25.0 上面的程序在X軸作一個快速定位。其中數(shù)據(jù)25.0是固定的,引入變量后可以寫成: #1=25.0;#1是一個變量 G00X[#1];#1就是一個變量 宏程序中,用“#”號后面緊跟1~4位數(shù)字表示一個變量,如#1,#50,#101,變量有什么用呢?變量可以用來代替程序中的數(shù)據(jù),如尺寸、刀補(bǔ)號、G指令編號變量的使用,給程序的設(shè)計(jì)帶來了極大的靈活性。
使用變量前,變量必需帶有正確的值。如 #1=25 G01X[#1];表示G01X25 #1=-10;運(yùn)行過程中可以隨時改變#1的值 G01X[#1];表示G01X-10 用變量不僅可以表示坐標(biāo),還可以表示G、M、F、D、H、M、X、Y、??等各種代碼后的數(shù)字。如: #2=3 G[#2]X30;表示G03X30 例1使用了變量的宏子程序。%1000#50=20;先給變量賦值 M98P1001;然后調(diào)用子程序 #50=350;重新賦值 M98P1001;再調(diào)用子程序 M30 %1001 G91G01X[#50];同樣一段程序,#50的值不同,X移動的距離就不同 M99 2.局部變量
編號#0~#49的變量是局部變量。局部變量的作用范圍是當(dāng)前程序(在同一個程序號內(nèi))。如果在主程序或不同子程序里,出現(xiàn)了相同名稱(編號)的變量,它們不會相互干擾,值也可以不同。例 %100 N10#3=30;主程序中#3為30 M98P101;進(jìn)入子程序后#3不受影響 #4=#3;#3仍為30,所以#4=30 M30 %101 #4=#3;這里的#3不是主程序中的#3,所以#3=0(沒定義),則:#4=0 #3=18;這里使#3的值為18,不會影響主程序中的#3 M993.全局變量
編號#50~#199的變量是全局變量(注:其中#100~#199也是刀補(bǔ)變量)。全局變量的作用范圍是整個零件程序。不管是主程序還是子程序,只要名稱(編號)相同就是同一個變量,帶有相同的值,在某個地方修改它的值,所有其它地方都受影響。例 %100 N10#50=30;先使#50為30 M98P101;進(jìn)入子程序
#4=#50;#50變?yōu)?8,所以#4=18 M30 %101 #4=#50;#50的值在子程序里也有效,所以#4=30 #50=18;這里使#50=18,然后返回 M99 為什么要把變量分為局部變量和全局變量?如果只有全局變量,由變量名不能重復(fù),就可能造成變量名不夠用;全局變量在任何地方都可以改變它的值,這是它的優(yōu)點(diǎn),也是它的缺點(diǎn)。說是優(yōu)點(diǎn),是因?yàn)閰?shù)傳遞很方便;說是缺點(diǎn),是因?yàn)楫?dāng)一個程序較復(fù)雜的時候,一不小心就可能在某個地用了相同的變量名或者改變了它的值,造成程序混亂。局部變量的使用,解決了同名變量沖突的問題,編寫子程序時,不需要考慮其它地方是否用過某個變量名。什么時候用全局變量?什么時候用局部變量?在一般情況下,你應(yīng)優(yōu)先考慮選用局部變量。局部變量在不同的子程序里,可以重復(fù)使用,不會互相干擾。如果一個數(shù)據(jù)在主程序和
子程序里都要用到,就要考慮用全局變量。用全局變量來保存數(shù)據(jù),可以在不同子程序間傳遞、共享、以及反復(fù)利用。
(四)常量 PI:圓周率π
角度用弧度表示:1°對應(yīng) PI/180弧度
(五)運(yùn)算符
1、算數(shù)運(yùn)算符 +-* /
2、條件運(yùn)算符
EQ(=)NE(≠)GT(>)GE(≥)LT(<)LE(≦)
3、邏輯運(yùn)算符
AND(與)OR(或)NOT(異或)
(六)函數(shù)
SIN[正弦] COS[余弦] TAN[正切] EXP[指數(shù)] ATAN[反正切] ABS[絕對值] INT[取整] FIX[上取整] FUP[下取整] SQRT[開方]
(六)循環(huán)語句(WHILE語句)(七)宏指令編程
%O0001 #1=20(定義a值)#2=10(定義b值)
#4=5(定義刀具補(bǔ)償半徑R值)#5=0(定義步距角初始值)
G90G54G0X0Y0S1500M3 G43X#1Y#2D01 G01Z-5F30 G01Y0F100 WHILE[#5LE360] G01X[#1*COS[#5*PI/180]]Y-[#2*SIN[#5*PI/180]] #5=#5+2 ENDW GOG40Z100 M30 %
六、結(jié)束語
宏程序是數(shù)控加工必不可少的編程方法,只要我們掌握了宏程序的編程原理,對規(guī)則幾何圖形建立數(shù)學(xué)模型,就能解決實(shí)際加工中各種幾何形狀規(guī)則零件的加工和“疑難雜癥”,同時宏程序編制簡單,通用性強(qiáng),加工效率高,在數(shù)控加工中有著廣泛的應(yīng)用。
第三篇:數(shù)控銑床宏程序編程 經(jīng)典
變量
普通加工程序直接用數(shù)值指定G代碼和移動距離;例如,GO1和X100.0。使用用戶宏程序時,數(shù)值可以直接指定或用變量指定。當(dāng)用變量時,變量值可用程序或用MDI面板上的操作改變。#1=#2+100 G01 X#1 F300 說明:
變量的表示
計(jì)算機(jī)允許使用變量名,用戶宏程序不行。變量用變量符號(#)和后面的變量號指定。例如:#1 表達(dá)式可以用于指定變量號。此時,表達(dá)式必須封閉在括號中。例如:#[#1+#2-12]
變量的類型
變量根據(jù)變量號可以分成四種類型
變量號 變量類型 功能
#0 空變量 該變量總是空,沒有值能賦給該變量.#1-#33 局部變量局部變量只能用在宏程序中存儲數(shù)據(jù),例如,運(yùn)算結(jié)果.當(dāng)斷電時,局部變量被初始化為空.調(diào)用宏程序時,自變量對局部變量賦值, #100-#199 #500-#999 公共變量公共變量在不同的宏程序中的意義相同.當(dāng)斷電時,變量#100-#199初始化為空.變量#500-#999的數(shù)據(jù)保存,即使斷電也不丟失.#1000 系統(tǒng)變量 系統(tǒng)變量用于讀和寫CNC運(yùn)行時各種數(shù)據(jù)的變化,例如,刀具的當(dāng)前位置和補(bǔ)償值.變量值的范圍
局部變量和公共變量可以有0值或下面范圍中的值:-1047到-10-29或-10-2到-1047 如果計(jì)算結(jié)果超出有效范圍,則發(fā)出P/S報警NO.111.小數(shù)點(diǎn)的省略
當(dāng)在程序中定義變量值時,小數(shù)點(diǎn)可以省略。
例:當(dāng)定義#1=123;變量#1的實(shí)際值是123.000。
變量的引用
為在程序中使用變量值,指定后跟變量號的地址。當(dāng)用表達(dá)式指定變量時,要把表達(dá)式放在括號中。
例如:G01X[#1+#2]F#3;被引用變量的值根據(jù)地址的最小設(shè)定單位自動地舍入。例如: 當(dāng)G00X#/;以1/1000mm的單位執(zhí)行時,CNC把123456賦值給變量#1,實(shí)際指令值為G00X12346.改變引用變量的值的符號,要把負(fù)號(-)放在#的前面。例如:G00X-#1 當(dāng)引用未定義的變量時,變量及地址都被忽略。
例如:當(dāng)變量#1的值是0,并且變量#2的值是空時,G00X#1 Y#2的執(zhí)行結(jié)果為G00X0。
雙軌跡(雙軌跡控制)的公共變量
對雙軌跡控制,系統(tǒng)為每一軌跡都提供了單獨(dú)的宏變量,但是,根據(jù)參數(shù)N0.6036和6037的設(shè)定,某些公共變量可同時用于兩個軌跡。
未定義的變量
當(dāng)變量值未定義時,這樣的變量成為空變量。變量#0總是空變量。它不能寫,只能讀。
引用
當(dāng)引用一個未定義的變量時,地址本身也被忽略。當(dāng)#1=<空> 當(dāng)#1=0 G90 X100 Y#1 G90 X100 G90 X100 Y#1 G90 X100 Y0
(b)運(yùn)算
除了用<空>賦值以外,其余情況下<空>與0相同。
當(dāng)#1=<空>時 當(dāng)#1=0時
#2=#1 #2=<空> #2=#1 #2=0
#2=#*5 #2=0 #2=#*5 #2=0
#2=#1+#1 #2=0 #2=#1+#1 #2=0
(c)條件表達(dá)式
EQ和NE中的<空>不同于0。當(dāng)#1=<空>時 當(dāng)#1=0時
#1EQ#0 成立 #1EQ#0 不成立
#1 NE #0 成立 #1 NE #0 不成立
#1 GE #0 成立 #1 GE #0 不成立
#1 GT #0 不成立 #1 GT #0 不成立
限制
程序號,順序號和任選程序段跳轉(zhuǎn)號不能使用變量。例:下面情況不能使用變量: 0#1;
/#2G00X100.0;N#3Y200.0;
二 算術(shù)和邏輯運(yùn)算
下面表中列出的運(yùn)算可以在變量中執(zhí)行。運(yùn)算符右邊的表達(dá)式可包含常量和或由函數(shù)或運(yùn)算符組成的變量。表達(dá)式中的變量#j和#k可以用常數(shù)賦值。左邊的變量也可以用表達(dá)式賦值。
功能 格式 備注 定義 #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]/[#k] 角度以度指定,90o30'表示為90.5度。平方根
絕對值
舍入
上取整
下取整
自然對數(shù)
指數(shù)函數(shù) #i=SQRT[#j];
#i=ABS[#j];
#i=ROUNG[#j];
#i=FIX[#j];#i=FUP[#j];
#i=LN[#j];
#i=EXP[#j];或
異或
與
#i=#jOR#k;
#i=#jXOR#k;
#i=#jAND#k;邏輯運(yùn)算一位一位地按二進(jìn)制數(shù)執(zhí)行。從BCD轉(zhuǎn)為BIN
從BIN轉(zhuǎn)為BCD #i=BIN[#j];
#i=BCD[#j];用于與PMC的信號交換。
說明:
角度單位
函數(shù)SIN ,COS,ASIN,ACOS,TAN和ATAN的角度單位是度。如90°30’表示為90.5度。ARCSIN # i= ASIN[#j](1)取值范圍如下:
當(dāng)參數(shù)(NO.6004#0)NAT位設(shè)為0時,270°~90° 當(dāng)參數(shù)(NO.6004#0)NAT位設(shè)為1時,-90°~90°
(2)當(dāng)#j超出-1到1的范圍時,發(fā)出P/S報警NO.111.(3)常數(shù)可替代變量#j
ARCCOS #i=ACOS[#j] 取值范圍從180°~0° 當(dāng)#j超出-1到1的范圍時,發(fā)出P/S報警NO.111.常數(shù)可替代變量#j
三 程序舉例
銑橢圓:
軌跡:
橢圓程序代碼如下:
N10 G54 G90 G0 S1500 M03 N12 X0 Y0 Z20.N14 G0 Z1 N16 G1 Z-5.F150.N18 G41 D1 N20 #1=0 N22 #2=34 N24 #3=24 N26 #4=#2*COS[#1] N28 #5=#3*SIN[#1] N30 #10=#4*COS[45]-#5*SIN[45] N32 #11=#4*SIN[45]+#5*COS[45] N34 G1 X#10 Y#11 N36 #1=#1+1 N38 IF [#1 LT 370] GOTO26 N40 G40 G1 X0 Y0 N42 G0 Z100 N44 M30
銑矩形槽:
銑矩形槽代碼如下: #102=0.N3#100=0.#101=0.#103=200.#104=400.G91G28Z0.G0G90G54X0.Y0.G43H1Z20.M3S2000.N4G0X#100Y#101 G01Z#102F200.#102=#102-2.IF[#102EQ-50.]GOTO1 GOTO2 N2 N4X#104F500.Y#103 X#100 Y#101 #100=#100+10.#101=#101+10.#103=#103-10.#104=#104-10.IF[#100EQ100.]GOTO3 GOTO4 N3 N1 M5 M9 G91G28Z0.G28Y0.M30
銑傾斜3度的面:
軌跡:
銑傾斜3度的面的代碼如下: O0001 #[#1+1*2]=1 G65P9012L1A0B0.1C4I100J3K0 M30
宏程序O9012代碼如下: G54 G90 G00 X[#3] Y0 Z100 S500 M3 G01 Z0 F300 WHILE[#1LE10]DO1 #7= #1/TAN[#5]+#3 G1Z-#1 X#7 #8=#6/2-ROUND[#6/2] IF[#8EQ0]GOTO10 G1Y0 GOTO20 N10 Y#4 N20#1=#1+#2 #6=#6+1 END1 G0 Z100
銑半球:
軌跡:
銑半球代碼如下:
G90G0G54X-10.Y0M3S4500 G43Z50.H1M8 #1=0.5 WHILE[#1LE50.]DO1 #2=50.-#1 #3=SQRT[2500.-[#2*#2]] G1Z-#1F20 X-#3F500 G2I#3 #1=#1+0.5 END1 G0Z50.M5 M30
銑喇叭:
銑喇叭代碼如下: M03 S500 M06 T01 #1=0 #2=0 G0 Z15 X150 Y0 N11 #2=30*SIN[#1] #3=30+30*[1-COS[#1]] G01 Z-#2 F40 G41 X#3 D01 G03 I-#3 G40 G01 X150 Y0 #1=#1+1 IF [#1 LE 90] GOTO 11 G0 Z30 M30
第四篇:宏程序教案
數(shù)控宏程序的概念
用變量的方式進(jìn)行數(shù)控編程的方法就叫做數(shù)控宏程序編程。
一、控宏程序的分類
數(shù)控宏程序分為A類和B類宏程序,其中A類宏程序比較老,編寫起來也比較費(fèi)時費(fèi)力,B類宏程序類似于C語言的編程,編寫起來也很方便。不論是A類還B類宏程序,它們運(yùn)行的效果都是一樣的。
一般說來,華中的數(shù)控機(jī)床用的是B類宏程序,廣州數(shù)控機(jī)床用的是A類宏程序。
二、數(shù)控宏程序的優(yōu)點(diǎn)
1.可以編寫一些非圓曲線,如宏程序編寫橢圓,雙曲線,拋物線等。
2.編寫一些大批相似零件的時候,可以用宏程序編寫,這樣只需要改動幾個數(shù)據(jù)就可以了,沒有必要進(jìn)行大量重復(fù)編程。
數(shù)控宏程序的使用方法
三、A類宏程序
1)變量的定義和替換 #i=#j
編程格式 G65 H01 P#i Q#j
例 G65 H01 P#101 Q1005;(#101=1005)
G65 H01 P#101 Q-#112;(#101=-#112)
2)加法 #i=#j+#k
編程格式 G65 H02 P#i Q#j R#k
例 G65 H02 P#101 Q#102 R#103;(#101=#102+#103)
3)減法 #i=#j-#k
編程格式 G65 H03 P#i Q#j R#k
例 G65 H03 P#101 Q#102 R#103;(#101=#102-#103)
4)乘法 #i=#j×#k
編程格式 G65 H04 P#i Q#j R#k
例 G65 H04 P#101 Q#102 R#103;(#101=#102×#103)
5)除法 #i=#j / #k
編程格式 G65 H05 P#i Q#j R#k
例 G65 H05 P#101 Q#102 R#103;(#101=#102/#103)
6)平方根 #i=
編程格式 G65 H21 P#i Q#j
例 G65 H21 P#101 Q#102;(#101=)
7)絕對值 #i=│#j│
編程格式 G65 H22 P#i Q#j
例 G65 H22 P#101 Q#102;(#101=│#102│)
8)復(fù)合平方根1 #i=
編程格式 G65 H27 P#i Q#j R#k
例 G65 H27 P#101 Q#102 R#103;(#101=
9)復(fù)合平方根2 #i=
編程格式 G65 H28 P#i Q#j R#k
例 G65 H28 P#101 Q#102 R#103
1)邏輯或 #i=#j OR #k
編程格式 G65 H11 P#i Q#j R#k
例 G65 H11 P#101 Q#102 R#103;(#101=#102 OR #103)
2)邏輯與 #i=#j AND #k
編程格式 G65 H12 P#i Q#j R#k
例 G65 H12 P#101 Q#102 R#103;#101=#102 AND #103
(3)三角函數(shù)指令
1)正弦函數(shù) #i=#j×SIN(#k)
編程格式 G65 H31 P#i Q#j R#k(單位:度).例 G65
H31 P#101 Q#102
R#10
3;(#101=#102×SIN(#103))
2)余弦函數(shù) #i=#j×COS(#k)
編程格式 G65 H32 P#i Q#j R#k(單位:度)例 G65
H32 P#101 Q#102
R#103
;(#101=#102×COS(#103))
3)正切函數(shù) #i=#j×TAN#k
編程格式 G65 H33 P#i Q#j R#k(單位:度)例 G65
H33 P#101 Q#102
R#103
;(#101=#102×TAN(#103))
4)反正切 #i=ATAN(#j/#k)
編程格式 G65 H34 P#i Q#j R#k(單位:度,0o≤ #j ≤360o)例 G65
H34 P#101 Q#102
R#103
;(#101=ATAN(#102/#103)
(4)控制類指令
編程格式 G65 H80 Pn(n為程序段號)
例 G65 H80 P120;(轉(zhuǎn)移到N120)
2)條件轉(zhuǎn)移1 #j EQ #k(=)
編程格式 G65 H81 Pn Q#j R#k(n為程序段號)
例 G65 H81 P1000 Q#101 R#102
當(dāng)#101=#102,轉(zhuǎn)移到N1000程序段;若#101≠ #102,執(zhí)行下一程序段。
3)條件轉(zhuǎn)移2 #j NE #k(≠)
編程格式 G65 H82 Pn Q#j R#k(n為程序段號)
例 G65 H82 P1000 Q#101 R#102
當(dāng)#101≠ #102,轉(zhuǎn)移到N1000程序段;若#101=#102,執(zhí)行下一程序段。
4)條件轉(zhuǎn)移3 #j GT #k(>)
編程格式 G65 H83 Pn Q#j R#k(n為程序段號)
例 G65 H83 P1000 Q#101 R#102
當(dāng)#101 > #102,轉(zhuǎn)移到N1000程序段;若#101 ≤#102,執(zhí)行下一程序段。
5)條件轉(zhuǎn)移4 #j LT #k(<)
編程格式 G65 H84 Pn Q#j R#k(n為程序段號)
例 G65 H84 P1000 Q#101 R#102
當(dāng)#101 < #102,轉(zhuǎn)移到N1000;若#101 ≥ #102,執(zhí)行下一程序段。
6)條件轉(zhuǎn)移5 #j GE #k(≥)
編程格式 G65 H85 Pn Q#j R#k(n為程序段號)
例 G65 H85 P1000 Q#101 R#102
當(dāng)#101≥ #102,轉(zhuǎn)移到N1000;若#101<#102,執(zhí)行下一程序段。
7)條件轉(zhuǎn)移6 #j LE #k(≤)
編程格式 G65 H86 Pn Q#j Q#k(n為程序段號)
例 G65 H86 P1000 Q#101 R#102
當(dāng)#101≤#102,轉(zhuǎn)移到N1000;若#101>#102,執(zhí)行下一程序段。
四、B類宏程序
1. 定義
#I=#j
2. 算術(shù)運(yùn)算
#I=#j+#k(加)
#I=#j-#k(減)
#I=#j×#k(乘)
#I=#j/#k(除)
3.1 邏輯函數(shù)之布爾函數(shù)
= EQ 等于
≠ NE 不等于
> GT 大于
< LT 小于
≥ GE 大于或等于
≤ LE 小于或等于
例:#I = #j 即#I EQ #J
3.2 邏輯函數(shù)之二進(jìn)制函數(shù)
#I=#J AND #k(與,邏輯乘)
#I=#J OR #k(或,邏輯加)
#I=#J XOR #k(非,邏輯減)
4.三角函數(shù)
#I=SIN[#j] 正弦
#I=COS[#j] 余弦
#I=TAN[#j] 正切
#I=ASIN[#j]反 正弦
#I=ACOS[#j]反 余弦 #I=ATAN[#j]
5.四舍五入函數(shù)
#I=ROUND[#j] 四舍五入化整
#I=FIX[#j] 上取整
反正切
#I=FUP[#j] 下取整
6.輔助函數(shù)
#I=SQRT[#j]平方根
#I=ABS[#j] 絕對值
#I= LN [#j] 自然對數(shù)
#I= EXP [#j] 指數(shù)函數(shù)
7.變換函數(shù) #I=BIN[#j] BCD→BIN(十進(jìn)制轉(zhuǎn)二進(jìn)制)
#I=BCD[#j] BIN→BCD(二進(jìn)制轉(zhuǎn)十進(jìn)制)
8.轉(zhuǎn)移和循環(huán)
1〉.無條件的轉(zhuǎn)移 格式: GOTO 1; GOTO #10;
2〉.條件轉(zhuǎn)移1 格式: IF[<條件式>] GOTO n
條件式:例:#j=#k用 #j EQ #k 表示,即 IF[#j EQ #k] GOTO n
3〉.條件轉(zhuǎn)移2 格式: IF[<條件式>] THEN #I
例:IF[#j EQ #k] THEN #a=#b
4〉.循環(huán) 格式:WHILE [<條件式>] DOm,(m=1、2、3)
N10~~~~~~~~~
N20~~~~~~~~~~~~
ENDm(上下兩個m只能為1、2、3且必須相
同,這樣才能夠成一段程序的循環(huán))
1. 說明 1)角度單位為度 例:90度30分為90.5度
2)ATAN函數(shù)后的兩個邊長要用“1”隔開 例:#1=ATAN[1]/[-1]時,#1為了35.0
3)ROUND用于語句中的地址,按各地址的最小設(shè)定單位進(jìn)行四舍五入
例:設(shè)#1=1.2345,#2=2.3456,設(shè)定單位1μm
G91 X-#1;X-1.235 X-#2 F300;X-2.346 X[#1+#2];X3.580 未返回原處,應(yīng)改為 X[ROUND[#1]+ROUND[#2]];
4)取整后的絕對值比原值大為上取整,反之為下取整 例:設(shè)#1=1.2,#2=-1.2時 若#3=FUP[#1]時,則#3=2.0 若#3=FIX[#1]時,則#3=1.0 若#3=FUP[#2]時,則#3=-2.0 若#3=FIX[#2]時,則#3=-1.0
5)簡寫函數(shù)時,可只寫開頭2個字母 例:ROUND→RO FIX→FI GOTO→GO
6)優(yōu)先級 函數(shù)→乘除(*,1,AND)→加減(+,-,OR,XOR)例:#1=#2+#3*SIN[#4];
7)括號為中括號,最多5重,園括號用于注釋語句 例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)
轉(zhuǎn)移與循環(huán)指令
第五篇:宏程序加工教案
《數(shù)控銑加工技術(shù)》教案
宏程序加工實(shí)例
一、宏指令編程
1宏變量及常量(1)宏變量
#0~#49當(dāng)前局部變量 #50~#199全局變量
#200~#249 0層局部變量 #250~#299 1層局部變量 #300~#349 2層局部變量 #350~#399 3層局部變量 #400~#449 4層局部變量 #450~#499 5層局部變量 #500~#549 6層局部變量 #550~#599 7層局部變量
#600~#699刀具長度寄存器H0~H99 #700~#799刀具半徑寄存器D0~D99 #800~#899刀具壽命寄存器
#1000“機(jī)床當(dāng)前位置X”#1001“機(jī)床當(dāng)前位置Y”#1002“機(jī)床當(dāng)前位置Z” #1003“機(jī)床當(dāng)前位置A”#1004“機(jī)床當(dāng)前位置B”#1005“機(jī)床當(dāng)前位置C” #1006“機(jī)床當(dāng)前位置U”#1007“機(jī)床當(dāng)前位置V”#1008“機(jī)床當(dāng)前位置W” #1009保留#1010“程編機(jī)床位置X”#1011“程編機(jī)床位置Y”
#1012“程編機(jī)床位置Z”#1013“程編機(jī)床位置A”#1014“程編機(jī)床位置B” #1015“程編機(jī)床位置C”#1016“程編機(jī)床位置U”#1017“程編機(jī)床位置V” #1018“程編機(jī)床位置W”#1019保留#1020“程編工件位置X”
#1021“程編工件位置Y”#1022“程編工件位置Z”#1023“程編工件位置A” #1024“程編工件位置B”#1025“程編工件位置C”#1026“程編工件位置U” #1027“程編工件位置V”#1028“程編工件位置W”#1029保留 53 #1030“當(dāng)前工件零點(diǎn)X”#1031“當(dāng)前工件零點(diǎn)Y”#1032“當(dāng)前工件零點(diǎn)Z” #1033“當(dāng)前工件零點(diǎn)A”#1034“當(dāng)前工件零點(diǎn)B”#1035“當(dāng)前工件零點(diǎn)C” #1036“當(dāng)前工件零點(diǎn)U”#1037“當(dāng)前工件零點(diǎn)V”#1038“當(dāng)前工件零點(diǎn)W”
《數(shù)控銑加工技術(shù)》教案
#1039保留#1040“G54零點(diǎn)X”#1041“G54零點(diǎn)Y”
#1042“G54零點(diǎn)Z”#1043“G54零點(diǎn)A”#1044“G54零點(diǎn)B” #1045“G54零點(diǎn)C”#1046“G54零點(diǎn)U”#1047“G54零點(diǎn)V” #1048“G54零點(diǎn)W”#1049保留#1050“G55零點(diǎn)X”
#1051“G55零點(diǎn)Y”#1052“G55零點(diǎn)Z”#1053“G55零點(diǎn)A” #1054“G55零點(diǎn)B”#1055“G55零點(diǎn)C”#1056“G55零點(diǎn)U” #1057“G55零點(diǎn)V”#1058“G55零點(diǎn)W”#1059保留
#1060“G56零點(diǎn)X”#1061“G56零點(diǎn)Y”#1062“G56零點(diǎn)Z” #1063“G56零點(diǎn)A”#1064“G56零點(diǎn)B”#1065“G56零點(diǎn)C” #1066“G56零點(diǎn)U”#1067“G56零點(diǎn)V”#1068“G56零點(diǎn)W” #1069保留#1070“G57零點(diǎn)X”#1071“G57零點(diǎn)Y”
#1072“G57零點(diǎn)Z”#1073“G57零點(diǎn)A”#1074“G57零點(diǎn)B” #1075“G57零點(diǎn)C”#1076“G57零點(diǎn)U”#1077“G57零點(diǎn)V” #1078“G57零點(diǎn)W”#1079保留#1080“G58零點(diǎn)X”
#1081“G58零點(diǎn)Y”#1082“G58零點(diǎn)Z”#1083“G58零點(diǎn)A” #1084“G58零點(diǎn)B”#1085“G58零點(diǎn)C”#1086“G58零點(diǎn)U” #1087“G58零點(diǎn)V”#1088“G58零點(diǎn)W”#1089保留
#1090“G59零點(diǎn)X”#1091“G59零點(diǎn)Y”#1092“G59零點(diǎn)Z” #1093“G59零點(diǎn)A”#1094“G59零點(diǎn)B”#1095“G59零點(diǎn)C” #1096“G59零點(diǎn)U”#1097“G59零點(diǎn)V”#1098“G59零點(diǎn)W” #1099保留#1100“中斷點(diǎn)位置X”#1101“中斷點(diǎn)位置Y”
#1102“中斷點(diǎn)位置Z”#1103“中斷點(diǎn)位置A”#1104“中斷點(diǎn)位置B” #1105“中斷點(diǎn)位置C”#1106“中斷點(diǎn)位置U”#1107“中斷點(diǎn)位置V”
#1108“中斷點(diǎn)位置W”#1109“坐標(biāo)系建立軸”#1110“G28中間點(diǎn)位置X”
#1111“G28中間點(diǎn)位置Y”#1112“G28中間點(diǎn)位置Z”#1113“G28中間點(diǎn)位置A” #1114“G28中間點(diǎn)位置B”#1115“G28中間點(diǎn)位置C”#1116“G28中間點(diǎn)位置U” #1117“G28中間點(diǎn)位置V”#111“8G28中間點(diǎn)位置W”#1119“G28屏蔽字” #1120“鏡像點(diǎn)位置X”#1121“鏡像點(diǎn)位置Y”#1122“鏡像點(diǎn)位置Z” #1123“鏡像點(diǎn)位置A”#1124“鏡像點(diǎn)位置B”#1125“鏡像點(diǎn)位置C” #1126“鏡像點(diǎn)位置U”#1127“鏡像點(diǎn)位置V”#1128“鏡像點(diǎn)位置W” #1129“鏡像屏蔽字”#1130“旋轉(zhuǎn)中心(軸1)”#1131“旋轉(zhuǎn)中心(軸2)” #1132“旋轉(zhuǎn)角度”#1133“旋轉(zhuǎn)軸屏蔽字”#1134保留
#1135“縮放中心(軸1)”#1136“縮放中心(軸2)”#1137“縮放中心(軸3)” #1138“縮放比例”#1139“縮放軸屏蔽字”#1140“坐標(biāo)變換代碼1” #1141“坐標(biāo)變換代碼2”#1142“坐標(biāo)變換代碼3”#1143保留
#1144“刀具長度補(bǔ)償號”#1145“刀具半徑補(bǔ)償號”#1146“當(dāng)前平面軸1” #1147“當(dāng)前平面軸2”#1148“虛擬軸屏蔽字”#1149“進(jìn)給速度指定”
《數(shù)控銑加工技術(shù)》教案
#1150“G代碼模態(tài)值0”#1151“G代碼模態(tài)值1”#1152“G代碼模態(tài)值2” #1153“G代碼模態(tài)值3”#1154“G代碼模態(tài)值4”#1155“G代碼模態(tài)值5 #1156“G代碼模態(tài)值6”#1157“G代碼模態(tài)值7”#1158“G代碼模態(tài)值8”世紀(jì)星銑床數(shù)控系統(tǒng)(HNC-21/22M)編程說明書 54 #1159“G代碼模態(tài)值9”#1160“G代碼模態(tài)值10”#1161“G代碼模態(tài)值11” #1162“G代碼模態(tài)值12”#1163“G代碼模態(tài)值13”#1164“G代碼模態(tài)值14” #1165“G代碼模態(tài)值15”#1166“G代碼模態(tài)值16”#1167“G代碼模態(tài)值17” #1168“G代碼模態(tài)值18”#1169“G代碼模態(tài)值19”#1170“剩余CACHE” #1171“備用CACHE”#1172“剩余緩沖區(qū)”#1173“備用緩沖區(qū)” #1174保留#1175保留#1176保留 #1177保留#1178保留#1179保留 #1180保留#1181保留#1182保留 #1183保留#1184保留#1185保留 #1186保留#1187保留#1188保留
#1189保留#1190“用戶自定義輸入”#1191“用戶自定義輸出” #1192“自定義輸出屏蔽”#1193保留#1194保留(2)常量
PI:圓周率π
TRUE:條件成立(真)FALSE:條件不成立(假)2運(yùn)算符與表達(dá)式
(1)算術(shù)運(yùn)算符:+,-,*,/(2)條件運(yùn)算符 EQ(=),NE(≠),GT(>),GE(≥),LT(<),LE(≤)(3)邏輯運(yùn)算符 AND,OR,NOT(4)函數(shù)
SIN,COS,TAN,ATAN,ATAN2,ABS,INT,SIGN,SQRT,EXP(5)表達(dá)式
用運(yùn)算符連接起來的常數(shù),宏變量構(gòu)成表達(dá)式。例如:175/SQRT[2]*COS[55*PI/180]; #3*6 GT 14; 3賦值語句
格式:宏變量=常數(shù)或表達(dá)式
《數(shù)控銑加工技術(shù)》教案
把常數(shù)或表達(dá)式的值送給一個宏變量稱為賦值。例如:#2=175/SQRT[2]*COS[55*PI/180];
#3=124.0;世紀(jì)星銑床數(shù)控系統(tǒng)(HNC-21/22M)編程說明書 4條件判別語句IF,ELSE,ENDIF 格式(i):IF條件表達(dá)式 ? ELSE ? ENDIF 格式(ii):IF條件表達(dá)式 ? ENDIF 5循環(huán)語句WHILE,ENDW 格式:WIIILE條件表達(dá)式 ? ENDW 條件判別語句的使用參見宏程序編程舉例。循環(huán)語句的使用參見宏程序編程舉例。
二、宏程序編制舉例 例1:G81宏程序 例2 橢圓編程程序:
a=50 b=30的一個橢圓;
弧度增量:0.1 宏程序:
%1 G54G90G17G21 M03S3000 G00X50Y0Z10 G01 Z-1 F300 #1=0 #2=50 #3=30 WHILE #1 LT 2*PI #4=#2*COS#1 #5=#3*SIN#1 G01 X[#4] Y[#5]
#1=#1+0.1 《數(shù)控銑加工技術(shù)》教案
ENDW G01 X__Y__Z100;
M30 % 例3拋物線編程: Y=0.1 *X*X %0206 G54M03S600T1D1 M03S6000 G41 X27.9 Y32 D1 #1=17.9 G01 X[#1+10] Y[0.1*#1*#1-8]
#1=#1-0.1 IF[#1GE-19.8] GOTO__ G40 G01 X__Y__ G00Z100 M30 % 例4切圓臺與斜方臺,各自加工3個循環(huán),要求傾斜10°的斜方臺與圓臺相 切,圓臺在方臺之上,頂視圖見圖3.50。
%8002 #10=10.0;圓臺階高度
《數(shù)控銑加工技術(shù)》教案
#11=10.0;方臺階高度
#12=124.0;圓外定點(diǎn)的X坐標(biāo)值 #13=124.0;圓外定點(diǎn)的Y坐標(biāo)值 #101=8.0刀具半徑偏置(粗加工)#102=6.5刀具半徑偏置(半精加工)#103=6.0刀具半徑偏置(精加工)N01 G92 X0.0 Y0.0 Z10.0 #0=0 N06 G00 X[?#12]Y[?#13];→A N07 G01 Z[?#10]M03 S600 F200;Z軸進(jìn)刀,準(zhǔn)備加工圓臺 WHILE#0 LT 3;加工圓臺
N[08+#0*6]G01 G42 X[?#12/2]Y[?90/2]F280.0 D[#0+101];→B N[09+#0*6]X[0]Y[?90/2];→C N[10+#0*6]G03 J[90/2];整圓加工
N[11+#0*6]G01 X[#12/2]Y[?90/2];→B’ N[12+#0*6]G40 X[#12]Y[?#13];→A’ N[13+#0*6]G00 X[-#12]Y[?#13];→A #0=#0+1;#0中數(shù)值加1 ENDW N100 Z[-#10-#11];Z軸進(jìn)刀,準(zhǔn)備加工斜方臺
#2=90/SQRT[2]*COS[55*PI/180];P1點(diǎn)坐標(biāo)(X=-#12,Y=-#13)#3=90/SQRT[2]*SIN[55*PI/180] #4=90*COS[10*PI/180];P1 P2間X增量為#4,Y增量為#5 #5=90*SIN[10*PI/180] #0=0 WHILE#0 LT 3;加工斜方臺
N[101+#0*8]G01 G42 X[?#12/2]Y[?90/2]F280.0 D[#0+101];→B N[102+#0*8]X[?#2]Y[?#3];→P1 N[103+#0*8]G91 X[+#4]Y[+#5];→P2 N[104+#0*8]X[?#5]Y[+#4];→P3 N[105+#0*8]X[?#4]Y[?#5];→P4 N[106+#0*8]X[+#5]Y[?#4];→P1 N[107+#0*8]G90 X[#12/2]Y[?90/2];→B’ N[108+#0*8]G00 G40 X[?#12]Y[?#13];→A #0=#0+1 ENDW G00 X0 Y0 M05 M30 《數(shù)控銑加工技術(shù)》教案
例5要求沿直線方向鉆一系列孔,直線的傾角由C65指令中的x,Y變量來決定,如圖所示。
%100G54G21 M03 S1000 G90G00X1Y1Z20 G65P10 M05 M30 %10 #10=10 孔數(shù)10 #11=100 進(jìn)給速度100 #12=50 長軸50 #13=25 短軸25 #14=-10 孔深10 G98G81X1Y1Z[#14]F[#11]R2 G91 WHILE[#10GT0] #10=#10-1 G81 X[#12]Y[#13]R0 ENDW M99 例6加工一橢圓,橢圓長軸為100 mm,短軸為50 mm。
《數(shù)控銑加工技術(shù)》教案