數控編程宏程宏入門,變量的認識,由淺入深學會宏程序!

技術 數控青春 數控青春 2017-10-04

覺得此文對你有所幫助的朋友,請收藏轉發!收藏同時也請不要吝惜在評論區給小編任意留言,或文末點個贊!也好讓小編知道有多少人看,也是以後更新的動力!

數控編程宏程宏入門,變量的認識,由淺入深學會宏程序!

  1. 什麼是宏程序?

在數控編程中,用戶宏程序是數控系統中的特殊編程功能。所謂用戶宏程序其實是把一組帶有變量的子程序事先存儲在系統存儲器中,並通過主程序中的宏程序調用指令調用並執行這一組程序。由於數控系統的指令功能有限,而宏程序功能可以顯著地增強機床的加工能力,同時可精簡程序,所以宏程序編程是加工編程的重要補充。

用戶宏程序可以用公式來加工零件,例如加工橢圓,如果用常規的編程方法,需要逐點算出曲線上的點,然後用直線或圓弧進行擬合逼近,所以編程時需要計算很多的點。如果使用用戶宏程序,可以直接把橢圓公式編入到程序中,加工零件時系統會自動計算出曲線上各點的座標,大大減輕了編程的工作量。

數控編程宏程宏入門,變量的認識,由淺入深學會宏程序!

2.什麼是變量?

變量是指在程序的運行過程中隨時可以發生變化的量。普通加工程序直接用數值指定G代碼和移動距離;例如,G01和X100.0等,這些數值都是常量,所以一個程序只能描述一個幾何形狀。而用戶宏程序本體中可以使用變量進行編程,編程時可以使用變量進行算術運算、邏輯運算和函數的混合運算,這樣就可以實現編制一個程序,即可加工尺寸不同但是形狀相同的工件,加工時只需修改少數幾個參數,從而可以使用宏程序執行一些有規律變化的動作。

變量分局部變量,公共變量(全局變量)和系統變量三種。

局部變量是一個在宏程序中局部使用的變量,即只在本程序內起作用。例如當宏程序A調用宏程序B而且都有變量#1時,由於變量#1服務於不同的宏程序,所以宏程序A中數控cnc的#1與宏程序B中的#1不是同一個變量,因此可以賦於不同的值,相互間互不影響。局部變量不能在程序運行時加以修改,只能由程序控制。在使用局部變量時,必須在程序中賦初值。當斷電時,局部變量被初始化為空,調用宏程序時,自變量對局部變量賦值,

公共變量貫穿於整個程序過程,即在所有程序中起相同的作用。同樣,當宏程序A調用宏程序B而且都有變量#100時,由於#100是全局變量,所以宏程序A中的#100與宏程序B中的#100是同一個變量。全局變量可以程序運行時人為地加以修改。在使用全局變量時,可以不在程序中賦初值,而在加工時由系統MDI面板中輸入所需值。

系統變量是系統自動保存的一些與當前運行有關的數據,它的值決定系統的狀態。如當前的絕對座標值、刀具偏置值變量、連接中的輸入與輸出信號變量、位置信號變量等。系統變量可以在程序中使用,但不能修改系統變量。

一般情況下變量可以在程序中用賦值語句賦值,也可以在系統面板上直接鍵入。直接鍵入可以在不修改程序的情況下,把一個程序用於加工多個不同的工件。

大多數數控系統使用#號後面加幾位數字來表示變量號,如#201,西門子系統的變量稱為計算參數,用R後面加幾位數字來表示變量號,如R15。

#0是空變量,#0始終是為空,任何情況下都不能給#0賦值。空變量和0的含義是不同的。例如當#1=0時,G1 X100 Y#1相當於G1 X100 Y0,而當#1=#0時,也就是#1為空時,G1 X100 Y#1相當於G1 X100。再如當#1的值為0時,G#1 X100相當於G0 X100,而當#1為空時,G#1 X100相當於X100。

#號後面的數也可以用表達式表示,表達式必須封閉在中括號中。例如,已知#1=5,#2=30,#3=25,#4=0,#5=80時,判斷①#6=#[#1]、②#[3+4]=128、③#8=#[#4]、④#9=#[#2-#3]與⑤G#4X#2*#1Y#[#4]的值。

①#6=#[#1]:因為#1=5所以#[#1]=#5,即#6=#5;又因為#5=80,所以#6=80;

②#[3+4]=128:因為3+4=7,所以#[3+4]= #7,又因為#[3+4]=128,所以#7=128;

③#8=#[#4]:因為#4=0,所以#[#4]=#0,又因為#0是空變量,所以#8=#0相當於#8為空;

④#9=#[#2-#3]:因為#2-#3=30-25=5,所以#[#2-#3]=#5,即#9=#5,又因為#5=80,所以#9=80;

⑤G#4X#2*#1Y#[#4]:因為#2=30, #1=5,所以#2*#1=150,即X#2*#1=X150;又因為#[#4]=#0,所以Y#[#4]為空,因此G#4X#2*#1Y#[#4]相當於G0X150。

當引用的變量值為負值時,要把負號(-)放在#的前面。 例如:G00X-#1

變量可以自增或自減,變量經過運算後的值可以賦給自身。例如,當前#1=3;則執行#1=#1+1後#1的值是4;再如,當前#1=3,則執行#1=#1EQ3(EQ相當於等於號)後,#1的值是1。

程序號,順序號和任選程序段跳轉號不能使用變量。

數控編程宏程宏入門,變量的認識,由淺入深學會宏程序!

3.邏輯跳轉或邏輯循環。

用戶宏程序可以使程序實現智能化判斷,根據一定的條件決定執行或不執行某些程序段,繼續一個循環或退出循環。這樣可以實現一些複雜形狀的加工。

使用條件表達式來測試條件是否成立,兩個條件表達式可以使用比較運算符來連接,比較運算符有:大於、大於等於、小於、小於等於、等於、不等於。

跳轉和循環功能的使用使程序增加了靈活性,循環的使用可以在重複加工的情況下大大減少程序的長度,使程序易於閱讀和維護。結合變量的計算功能,可以實現常規程序無法完成的插補運動。

跳轉與循環指令主要有IF、WHILE,WHILE用來實現循環,即當條件滿足時重複執行WHILE至END間的程序段;IF的用法則比較多,大致上有以下幾種用法:

在FANUC B類宏程序中,有IF GOTO及IF THEN二個用法,前者用於當條件滿足時跳轉到指定的程序段運行;後者用於當條件滿足時執行一個命令。

在華中世紀星宏程序中,有IF ......END IF及IF...... ELSE......ENDIF;前者用於當條件滿足時執行其中的程序段;後者用於當條件滿足時執行IF至ENDIF間的程序段,不滿足時執行ELSE至ENDIF間的程序段。

在西門子801/802宏程序中,沒有WHILE這類循環語句,完全依靠IF命令來實現跳轉或循環功能,IF.......GOTOF是當條件滿足時向前跳轉到指定程序段,一般用來在某些情況下避免運行一些程序段;IF......GOTOB是向後跳轉,一般用來重複執行某些程序段,可以使用這個命令來實現循環。

關注小編,學習更多數控知識,分享機加工技巧,感謝!