<delect id="8qkqs"><td id="8qkqs"></td></delect>
<tbody id="8qkqs"></tbody>
  • <li id="8qkqs"></li>
    <dl id="8qkqs"><nav id="8qkqs"></nav></dl>
  • <center id="8qkqs"><dd id="8qkqs"></dd></center>
    您好,歡迎來到思誠資源 Mro工業(yè)品商城!
    關注我們

    微信公眾號

    抖音視頻號

    微信視頻號

    0769-22186189
    全部產品分類

    宏程序WHILE與IF的區(qū)別及應用

    [原創(chuàng)內容] 發(fā)布于:2019-04-01 12:05:09 閱讀:3728次 編輯:思誠市場部
    UG、MasterCAM、Cimatron等CAD/CAM軟件的興起讓自動編程技術不斷發(fā)展完善,作為傳統(tǒng)手動編程的宏程序應用空間也逐步縮小,但是宏程序精煉簡潔的特性讓它仍然具有實用性,宏程序的編寫過程體現(xiàn)著工程師的工藝理念。

    宏程序WHILE與IF的區(qū)別及應用

    一、什么場合會用到宏程序編程?

    其實說起來宏就是用公式來加工零件,比如說橢圓,如果沒有宏的話,我們要逐點算出曲線上的點,然后慢慢來用直線逼近,如果是個光潔度要求很高的工件的話,那么需要計算很多的點,可是應用了宏后,我們把橢圓公式輸入到系統(tǒng)中然后我們給出Z坐標并且每次加一個量,那么宏就會自動算出X坐標并且進行切削, 實際上宏在程序中主要起到的是運算作用。

    ?手工編程加工公式曲線(計算簡單,輸入快捷)

    ?有規(guī)律的切削路徑(作為一個切削模塊)

    ?程序間的控制(程序的調度)

    ?刀具的管理(刀具的磨損)

    ?自動測量(機內測頭)

    二、用戶宏程序與普通程序的區(qū)別

    1.在用戶宏程序本體中,能使用變量,可以給變量賦值,變量間可以運算,程序可以跳轉。

    2.普通程序中,只能指定常量,常量之間不能運算,程序只能順序執(zhí)行,不能跳轉,因此功能是固定的,不能變化。

    3.用戶宏功能是用戶提高數控機床性能的一種特殊功能,在相類似工件的加工中巧用宏程序將起到事半功倍的效果。

    三、變量的三種類型

    數控系統(tǒng)變量表示形式為“#”后跟1~4位數字,變量種類有三種:

    1.局部變量:#1~#33是在宏程序中局部使用的變量,它用于自變量轉移。

    2.公用變量:用戶可以自由使用,它對于由主程序調用的各子程序及各宏程序來說是可以公用的。#100~#149在關掉電源后,變量值全部被清除,而#500~#509在關掉電源后,變量值則可以保存。

    3.系統(tǒng)變量:由后跟4位數字來定義,它能獲取包含在機床處理器或NC內存中的只讀或讀/寫信息,包括與機床處理器有關的交換參數、機床狀態(tài)獲取參數、加工參數等系統(tǒng)信息。

    四、宏程序的特點

    宏程序可使用變量,可用變量執(zhí)行相應操作;實際變量值可由宏程序指令賦給變量。

    指令

    1.宏程序的簡單調用格式

    宏程序的簡單調用是指在主程序中,宏程序可以被單個程序段單次調用。

    調用指令格式:

    G65 P(宏程序號)L(重復次數)(變量分配)。

    其中:G65―宏程序調用指令;

    P(宏程序號)―被調用的宏程序代號;

    L(重復次數)―宏程序重復運行的次數,重復次數為1時,可省略不寫;

    (變量分配)―為宏程序中使用的變量賦值。

    宏程序與子程序相同的一點是,一個宏程序可被另一個宏程序調用,最多可調用4重。

    2.宏程序的編寫格式

    宏程序的編寫格式與子程序相同。其格式為:

    0~(0001~8999為宏程序號)

    N10 指令

    N~ M99

    上述宏程序內容中,除通常使用的編程指令外,還可使用變量、算術運算指令及其它控制指令。變量值在宏程序調用指令中賦給。

    五、FANUC系統(tǒng)宏程序應用

    1.宏程序切槽

    宏程序WHILE與IF的區(qū)別及應用

    1)WHILE語句

    G00 X52 Z2;

    #2=-14;   

    是刀具z向的起刀點(因為刀寬為4mm,所以起刀點定在Z-14的位置)

    WHILE〔#2 GE -30〕DO2;   

    是z方向的約束條件,當z等于-30時,z向就不再移動

    G00 Z〔#2〕;   

    z方向的當前位置

    #2=#2-2;   

    z方向的移動步距,每次移動2mm

    #1=52; 

    是x方向的起刀點

    WHILE〔#1 GE 20〕DO1; 

    X方向的約束條件,當直徑等于20時就不再切削

    G01 X〔#1〕F0.2; 

    x方向的切深

    G00 X〔#1+1〕; 

    x方向的相對退刀量

    #1=#1-1; 

    x方向的步距(每次切1mm)

    END1;

    G00 X52;

    END2;


    完整程序:

    O1234;

    G40 G97 G99;                 

    T0101;                           

    S1000 M3;                       

    G00 X52 Z2;                   

    #2=-14;                         

    WHILE〔#2GE-30〕DO2;    END1;

    G00 Z〔#2〕;                   

    #2=#2-2;                       

    #1=52                           

    WHILE〔#1GE20〕DO1;

    G01X〔#1〕F0.2;

    G00X〔#1+1〕;

    #1=#1-1;

    G00 X52;

    END2;

    G00 X150 Z150;

    M30;


    2)IF語句

    G00 X52 Z-2;

    #1=-14; 

    是刀具的z向起刀點(刀寬為4mm)

    N2 #1=#1-2;   

    是z方向的移動步距

    #2=52; 

    為x方向的起刀點

    N1#2=#2-1; 

    是x方向的步距(每次切深1mm)

    G01 X〔#2〕F0.2; 

    X方向的當前位置

    G00 X〔#2+1〕;   

    X方向的相對退刀量

    IF 〔#2 GE 21〕GOTO1;     

    x方向的約束條件(當x的數值切到20時就進行下面程序,不再返回)

    G00 X52;   

    X退刀到52的位置

    G00 Z〔#1〕;   

    Z方向的當前位置

    IF 〔#1 GE -30〕GOTO2;   

    Z方向的約束條件,當z等于-30時,z向就不在移動


    完整程序:

    O1234;

    G40G97G99;                   

    T0101;                           

    S1000M3;                       

    G00 X52 Z-2;                 

    #1=-14;                         

    N2 #1=#1-2;                   

    #2=52;                           

    N1#2=#2-1;                     

    G01 X〔#2〕F0.2;

    G00 X〔#2+1〕;

    IF〔#2GE21〕GOTO1;

    G00X52;

    G00Z〔#1〕;

    IF〔#1GE-30〕GOTO2;

    G00X200;

    Z200;

    M5;

    M30;


    2.橢圓編程

    1)橢圓WHILE語句的標準格式:

    #1=a; 

    a :為刀具的起刀點在相對橢圓的軸線Z的正方向a mm處

    WHILE〔#1 GE b〕DO1;   

    b: 為橢圓加工的終點在相對橢圓的軸線Z的負方向b mm處(如果加工的是一個完整的半橢圓,那a、b是數值相同符號不同的兩個數值)


    #2= c*SQRT〔1-#1*#1/d*d〕;   

    c: 橢圓的短半軸     

    d: 橢圓的長半軸(根據橢圓公式求#2,長半軸為d,短半軸為c,#2代表X的數值,#1為Z的數值,SQRT是開方的意思)

    G01 X〔±2*#2+e〕Z〔#1±f〕;

    e: 橢圓的X向軸線相對工件坐標系的偏移量(直徑值)

    f: 橢圓的Z向軸線相對工件坐標系的偏移量


    #1=#1-1;步距(每次移動1mm)

    END1;


    注意事項:當車削凹橢圓時X后括號中的“±”取“﹣”;當車削凸橢圓時X后括號中的“±”取“+”。


    當橢圓的X軸線向正向偏移則Z后括號中的“±”取“+”;當橢圓的X向軸線向負向偏移則Z后括號中的“±”取“﹣”


    2)橢圓IF語句的標準格式

    #1=a;

    a: 為刀具的起刀點在相對橢圓的軸線Z的正方向a mm處

    N1#2=b*SQRT〔1-#1*#1/c*c〕;

    b:橢圓的短半軸c:橢圓的長半軸(根據橢圓公式X/c+ Y/b=1,SQRT是開方的意思)

    G01X〔±2*#2+d〕Z〔#1±e〕F0.2; d:橢圓的X向軸線相對坐標零點的偏移量(直徑值)e:橢圓的Z向軸線相對零面的偏移量

    #1=#1-1; 

    步距(每次移動1mm)


    IF〔#1 GE -f〕GOTO1   

    f:橢圓加工的終止

    注意事項:當車削凹橢圓時X后括號中的“±”取“﹣”;當車削凸橢圓時X后括號中的“±”取“+”。當橢圓的X軸線向正向偏移則Z后括號中的“±”取“+”;當橢圓的X向軸線向負向偏移則Z后括號中的“±”取“﹣”。

    宏程序WHILE與IF的區(qū)別及應用

    WHILE語句

    #1=20;

    WHILE〔#1GE-20〕DO1;

    #2=10*SQRT〔1-#1*#1/400〕;

    G01X〔-2*#2+50〕Z〔#1-25〕;

    #1=#1-1;

    END1;


    IF語句

    #1=20;

    N1#2=10*SQRT〔1-#1*#1/400〕;

    G01X〔-2*#2+50〕Z〔#1-25〕F0.2;

    #1=#1-1;

    IF〔#1GE-20〕GOTO1;


    完整程序


    O1234;

    G40G97G99;               

    T0101;                   

    S1000 M3;                 

    G00 X50 Z2;               

    G73 U5 R5;               

    G73 P10 Q20 U0.5 F0.2;     

    N10 G0 G42 Z-5;           

    #1=20;                 

    WHILE〔#1GE-20〕DO1;     

    #2=10*SQRT〔1-#1*#1/400〕;

    G01X〔-2*#2+50〕Z〔#1-25〕F0.2;

    #1=#1-1;

    END1;

    G00 X50;

    N20 G00 G40 Z2;

    G70 P10 Q20;

    G00 X200;

    Z200;

    M5;

    M30;

    IF語句完整格式省略,(IF語句也一樣,只要加上循環(huán)就可以),在FANUC-0i系統(tǒng)中宏程序只能加在G73中。

    3.拋物線的加工

    1)拋物線WHILE語句的標準格式:


    #1=a;

    a: 為刀具的起刀點在拋物線軸線Z的方向a mm處

    WHILE〔#1 GE -b〕DO1;

    b: 為橢圓z向的加工長度

    #2=SQRT〔-#1*5/3〕;   

    (根據拋物線公式Z=-3/5*X*X,求其中的X值,也就是#2,其中SQRT是開平方的意思)

    G01 X〔±2*#2+c〕Z〔#1〕;

    c: 為拋物線的X向軸線相對工件坐標系的偏移量(直徑值),“±”

    取“+”時為凸,取“-”時為凹#1=#1-1;  步距(每次移動1mm)

    END1;

    2)拋物線IF語句的標準格式

    #1=a;

    a: 為刀具的起刀點在拋物線軸線Z的方向a mm處

    N1 #2=SQRT〔-#1*5/3〕; 

    (根據拋物線公式Z=-3/5*X*X,求其中的X值,也就是#2,其中SQRT是開平方的意思)

    G01 X〔±2*#2+b〕Z〔#1〕;

    b:為拋物線的X向軸線相對坐標零點的偏移量(直徑值),“±”取“+”時為凸,取“-”時為凹

    #1=#1-1;

    (Z方向的步距,每次移動1mm)


    IF〔#1 GE -c〕GOTO1; c:為橢圓z向的加工長度


    拋物線IF語句的另一種形式

    #1=a;

    N1 #2=SQRT〔(+)#1*5/3〕; 

    “+”號可省略

    G01 X〔2*#2+b〕Z〔-#1〕;

    #1=#1+1;

    IF〔#1 LE c〕GOTO1;

    假設拋物線是向Z的正方向,再用Z〔-#1〕;把拋物線對稱到負方向

    宏程序WHILE與IF的區(qū)別及應用

    WHILE語句

    #1=0;

    WHILE〔#1 GE -15〕DO1;

    #2=SQRT〔-#1*5/3〕;

    G01 X〔2*#2+30〕Z〔#1〕;

    #1=#1-1;

    END1;


    IF語句

    #1=0;

    N1 #2=SQRT〔-#1*5/3〕;

    G01X〔2*#2+30〕Z〔#1〕;

    #1=#1-1;

    IF〔#1 GE -15〕GOTO1;


    完整程序

    O1234;

    G40 G97 G99;               

    T0101;                     

    S1000 M3;                 

    G00 X42 Z1;                 

    G73 U5 R5;                 

    G73 P10 Q20 U0.5 F0.2;       

    N10 G00 G42 Z0;             

    #1=0;                   

    WHILE〔#1 GE -15〕DO1;     

    #2=SQRT〔-#1*5/3〕;       

    G01 X〔2*#2+30〕Z〔#1〕;

    #1=#1-1;

    END1;

    G00 X42;

    N20 G00 G40 Z2;

    G70 P10 Q20;

    G00 X200;

    Z200;

    M5;

    M30;


    4.WHILE語句與IF語句的區(qū)別

    1)兩種語句返的方向不同

    WHILE語句向后返

    例:WHILE〔#1 GE 20〕DO1;

    G01 X〔#1〕F0.2; 

    假設機床執(zhí)行到此句時#1=20,它會繼續(xù)往下執(zhí)行,執(zhí)行到#1=#1-1后#1的值變?yōu)?9,不再滿足約束條件所以就不會返回去。(X方向切到20)

    G00 X〔#1+1);

    #1=#1-1;

    END1;


    2)IF語句向前返

    例:N1 #2=#2-1;

    G01X〔#2〕F0.2;假設機床執(zhí)行到此句時#2=20,它會繼續(xù)往下執(zhí)行,執(zhí)行到IF〔#2 GE 20〕GOTO1;仍然滿足條件,它會繼續(xù)返回到N1 #2=#2-1;而現(xiàn)在的X值就會變?yōu)?9,不再滿足約束條件,而后再執(zhí)行一

    G01X〔#2〕F0.2;最后就執(zhí)行下面的程序(X方向已經切到19)

    G00X〔#2+1);

    IF〔#2 GE 20〕GOTO1; 


    3)從上面的切槽程序可以看出,IF語句要比WHILE語句的字數要少很多。

    4)由于返回的方向不同,在加工中WHILE語句少讀一句,IF語句要多讀一句。

    SIEMENS系統(tǒng)(車床)宏程序應用

    說明:宏程序是用變量編程,西門子系統(tǒng)的變量號用R表示。

    例如用普通編程方法編寫的:G01X-10

    用宏程序可表示為:

    R1=-10

    G01 X=R1

    條件轉移:

    IF GOTOB:向后跳轉

    IF GOTOF:向前跳轉

    用普通編程方法編寫的

    GO1X100

    用變量可表示為:

    R1=0

    AA:R1=R1+1

    G01X=R1

    IF R1<100 GOTOB AA

    R1是自變量,初始值為0,R1=R1+1表示的是自變量的遞增數值為1,當程序每次走過此行時,R1的值增加1,R1<100是條件式,IF R1<100 GOTOB  AA此行的意思是如果自變量R1<100則程序向后跳轉到標記處:AA

    如果R1大于或等于100,則程序往下走。

    宏程序在G90和G91模態(tài)下都可以使用,不過它們含義不同,例如;

    R1=0,G90R1=R1+1,G1X=R1,此程序走完第二遍X的值是2.

    R1=0,G91R1=R1+1,G1X=R1,此程序走完第二遍X的值是3.   解釋:程序走完第一遍R1的值是1,走第二遍的時候R1的值是2,但是在G91模態(tài)下它是在前面的基礎上走的。

    1.切槽

    宏程序WHILE與IF的區(qū)別及應用

    T1

    TC

    T1D1

    G0G40X100Z100

    M03S1000

    G0X54Z2               

    快速到達起刀點

    Z-10

    R1=3                     

    定義刀片寬度為3mm   

    R2=-10-R1-0.2       

    起刀點 為-10,對刀時以刀片左邊;

    對刀,所以應減去刀片的寬度,0.2為精加工余量

    G1Z=R2F0.1         

    刀具到達Z軸起刀點

    AA:R2=R2-2.5   

    R3=50                   

    槽X軸起到點

    BB:R3=R3-2       

    定義每刀切削深度為2 mm

    G1X=R3             

    X=R3+1               

    每切深2mm單邊退0.5mm排屑

    IF R3>30+0.4 GOTOB BB

    定義槽深10mm,如果R3>30mm程序向后跳轉到標記處BB,0.4為精加工余量

    G0X50                 

    刀具到達X軸起刀點

    G1Z=R2

    IF R2>-30+0.2  GOTOB AA 

    定義槽寬為20mm,0.2是精加工余量

    G0X50

    G01Z-13   

    精加工

    X30

    Z-16

    G0X50

    Z-30

    G01X30

    Z-16

    G0X50     

    退刀

    G0X100

    Z100

    M05

    M30

    2.橢圓

    1)基本格式

    R1=0

    定義變量R1初始值為0

    AA:R2=b×SQRT(1-R1×R1/a×a)

    根據橢圓方程所得,a是橢圓的長半軸,b是橢圓短半軸,SQRT是開平方符號。

    G1X=±2×R2+X Z=R1-Z 

    設定橢圓的位置和形狀,+2為凸形,-2為凹形,X、Z分別是工件軸線和橢圓軸線的距離(直徑制)。

    R1=R1-1 

    設定加工步距

    IF R1>=n GOTOB AA 

    如過變量R1<n,則向后跳轉到標記處AA,n為Z向終點坐標。

    2)編程舉例:

    T1D1

    G0G40X100Z100

    M3S1000

    G0X52Z2

    Z-20

    CYCLE95(   )

    G42S1500

    OO:

    R1=20

    AA:R2=5×SQRT(1-R1×R1/400)

    G1X=-2×R2+50 Z=R1-40

    R1=R1-2

    IF R1>=-20 GOTOB AA

    PP:X42

    G0G40X100Z100

    M05

    M09

    M30


    3.拋物線

    1)基本格式:


    R1=0               

    設定變量R1的初始值為0

    AA:R2=SQRT(-R1×n)

    根據拋物線基本格式所得,式中SQRT為開平方符號,n是系數

    G01X=2×R2+n   

    Z=R1 

    加工路徑,+2是凸形,n是X軸起點數值

    R1=R1-1           

    變量增量值為1mm

    IF R1>-30 GOTOB AA   

    如果變量R1>-30,程序向后跳轉到標記處:AA


    2)編程舉例:

    宏程序WHILE與IF的區(qū)別及應用

    T1

    Tc

    T1D1

    G0G40X100Z100

    M03S1000

    G0X52Z2

    CYCLE95(  )

    G0G42

    OO:

    R1=0

    AA:R2=SQRT(-R1×5/3)

    G01X=2×R2+30  Z=R1

    R1=R1-2

    IF R1>-60  GOTOB  AA

    PP:X52

    G0X100Z100

    M05

    M30
    反對 0 收藏 0
    版權聲明:部分文章信息來源于網絡信息整理,思誠資源官網只負責對文章進行整理、排版、編輯,是出于傳遞 更多信息之目的,轉載請保留出處和本文地址,若涉及版權問題,請及時與我們客服取得聯(lián)系。

    標題:宏程序WHILE與IF的區(qū)別及應用     本文地址:http://www.91huohuo.com/article-1895.html
    在線客服

    微信掃碼溝通,無需添加好友

    0769-22186189
    全新aV黄片在线播,亚洲成年在线影院,中文字字幕在线38乱码,在线一区中文字幕无码 国产高潮激情高潮无遮 日韩中文无码中出人妻
    <delect id="8qkqs"><td id="8qkqs"></td></delect>
    <tbody id="8qkqs"></tbody>
  • <li id="8qkqs"></li>
    <dl id="8qkqs"><nav id="8qkqs"></nav></dl>
  • <center id="8qkqs"><dd id="8qkqs"></dd></center>