午夜视频在线网站,日韩视频精品在线,中文字幕精品一区二区三区在线,在线播放精品,1024你懂我懂的旧版人,欧美日韩一级黄色片,一区二区三区在线观看视频

分享

數(shù)控編程宏程宏入門,變量的認(rèn)識(shí),由淺入深學(xué)會(huì)宏程序!

 qyphhh 2017-10-05

覺得此文對(duì)你有所幫助的朋友,請(qǐng)收藏轉(zhuǎn)發(fā)!收藏同時(shí)也請(qǐng)不要吝惜在評(píng)論區(qū)給小編任意留言,或文末點(diǎn)個(gè)贊!也好讓小編知道有多少人看,也是以后更新的動(dòng)力!

數(shù)控編程宏程宏入門,變量的認(rèn)識(shí),由淺入深學(xué)會(huì)宏程序!

  1. 什么是宏程序?

在數(shù)控編程中,用戶宏程序是數(shù)控系統(tǒng)中的特殊編程功能。所謂用戶宏程序其實(shí)是把一組帶有變量的子程序事先存儲(chǔ)在系統(tǒng)存儲(chǔ)器中,并通過(guò)主程序中的宏程序調(diào)用指令調(diào)用并執(zhí)行這一組程序。由于數(shù)控系統(tǒng)的指令功能有限,而宏程序功能可以顯著地增強(qiáng)機(jī)床的加工能力,同時(shí)可精簡(jiǎn)程序,所以宏程序編程是加工編程的重要補(bǔ)充。

用戶宏程序可以用公式來(lái)加工零件,例如加工橢圓,如果用常規(guī)的編程方法,需要逐點(diǎn)算出曲線上的點(diǎn),然后用直線或圓弧進(jìn)行擬合逼近,所以編程時(shí)需要計(jì)算很多的點(diǎn)。如果使用用戶宏程序,可以直接把橢圓公式編入到程序中,加工零件時(shí)系統(tǒng)會(huì)自動(dòng)計(jì)算出曲線上各點(diǎn)的坐標(biāo),大大減輕了編程的工作量。

數(shù)控編程宏程宏入門,變量的認(rèn)識(shí),由淺入深學(xué)會(huì)宏程序!

2.什么是變量?

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

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

局部變量是一個(gè)在宏程序中局部使用的變量,即只在本程序內(nèi)起作用。例如當(dāng)宏程序A調(diào)用宏程序B而且都有變量#1時(shí),由于變量#1服務(wù)于不同的宏程序,所以宏程序A中數(shù)控cnc的#1與宏程序B中的#1不是同一個(gè)變量,因此可以賦于不同的值,相互間互不影響。局部變量不能在程序運(yùn)行時(shí)加以修改,只能由程序控制。在使用局部變量時(shí),必須在程序中賦初值。當(dāng)斷電時(shí),局部變量被初始化為空,調(diào)用宏程序時(shí),自變量對(duì)局部變量賦值,

公共變量貫穿于整個(gè)程序過(guò)程,即在所有程序中起相同的作用。同樣,當(dāng)宏程序A調(diào)用宏程序B而且都有變量#100時(shí),由于#100是全局變量,所以宏程序A中的#100與宏程序B中的#100是同一個(gè)變量。全局變量可以程序運(yùn)行時(shí)人為地加以修改。在使用全局變量時(shí),可以不在程序中賦初值,而在加工時(shí)由系統(tǒng)MDI面板中輸入所需值。

系統(tǒng)變量是系統(tǒng)自動(dòng)保存的一些與當(dāng)前運(yùn)行有關(guān)的數(shù)據(jù),它的值決定系統(tǒng)的狀態(tài)。如當(dāng)前的絕對(duì)坐標(biāo)值、刀具偏置值變量、連接中的輸入與輸出信號(hào)變量、位置信號(hào)變量等。系統(tǒng)變量可以在程序中使用,但不能修改系統(tǒng)變量。

一般情況下變量可以在程序中用賦值語(yǔ)句賦值,也可以在系統(tǒng)面板上直接鍵入。直接鍵入可以在不修改程序的情況下,把一個(gè)程序用于加工多個(gè)不同的工件。

大多數(shù)數(shù)控系統(tǒng)使用#號(hào)后面加幾位數(shù)字來(lái)表示變量號(hào),如#201,西門子系統(tǒng)的變量稱為計(jì)算參數(shù),用R后面加幾位數(shù)字來(lái)表示變量號(hào),如R15。

#0是空變量,#0始終是為空,任何情況下都不能給#0賦值??兆兞亢?的含義是不同的。例如當(dāng)#1=0時(shí),G1 X100 Y#1相當(dāng)于G1 X100 Y0,而當(dāng)#1=#0時(shí),也就是#1為空時(shí),G1 X100 Y#1相當(dāng)于G1 X100。再如當(dāng)#1的值為0時(shí),G#1 X100相當(dāng)于G0 X100,而當(dāng)#1為空時(shí),G#1 X100相當(dāng)于X100。

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

①#6=#[#1]:因?yàn)?1=5所以#[#1]=#5,即#6=#5;又因?yàn)?5=80,所以#6=80;

②#[3+4]=128:因?yàn)?+4=7,所以#[3+4]= #7,又因?yàn)?[3+4]=128,所以#7=128;

③#8=#[#4]:因?yàn)?4=0,所以#[#4]=#0,又因?yàn)?0是空變量,所以#8=#0相當(dāng)于#8為空;

④#9=#[#2-#3]:因?yàn)?2-#3=30-25=5,所以#[#2-#3]=#5,即#9=#5,又因?yàn)?5=80,所以#9=80;

⑤G#4X#2*#1Y#[#4]:因?yàn)?2=30, #1=5,所以#2*#1=150,即X#2*#1=X150;又因?yàn)?[#4]=#0,所以Y#[#4]為空,因此G#4X#2*#1Y#[#4]相當(dāng)于G0X150。

當(dāng)引用的變量值為負(fù)值時(shí),要把負(fù)號(hào)(-)放在#的前面。 例如:G00X-#1

變量可以自增或自減,變量經(jīng)過(guò)運(yùn)算后的值可以賦給自身。例如,當(dāng)前#1=3;則執(zhí)行#1=#1+1后#1的值是4;再如,當(dāng)前#1=3,則執(zhí)行#1=#1EQ3(EQ相當(dāng)于等于號(hào))后,#1的值是1。

程序號(hào),順序號(hào)和任選程序段跳轉(zhuǎn)號(hào)不能使用變量。

數(shù)控編程宏程宏入門,變量的認(rèn)識(shí),由淺入深學(xué)會(huì)宏程序!

3.邏輯跳轉(zhuǎn)或邏輯循環(huán)。

用戶宏程序可以使程序?qū)崿F(xiàn)智能化判斷,根據(jù)一定的條件決定執(zhí)行或不執(zhí)行某些程序段,繼續(xù)一個(gè)循環(huán)或退出循環(huán)。這樣可以實(shí)現(xiàn)一些復(fù)雜形狀的加工。

使用條件表達(dá)式來(lái)測(cè)試條件是否成立,兩個(gè)條件表達(dá)式可以使用比較運(yùn)算符來(lái)連接,比較運(yùn)算符有:大于、大于等于、小于、小于等于、等于、不等于。

跳轉(zhuǎn)和循環(huán)功能的使用使程序增加了靈活性,循環(huán)的使用可以在重復(fù)加工的情況下大大減少程序的長(zhǎng)度,使程序易于閱讀和維護(hù)。結(jié)合變量的計(jì)算功能,可以實(shí)現(xiàn)常規(guī)程序無(wú)法完成的插補(bǔ)運(yùn)動(dòng)。

跳轉(zhuǎn)與循環(huán)指令主要有IF、WHILE,WHILE用來(lái)實(shí)現(xiàn)循環(huán),即當(dāng)條件滿足時(shí)重復(fù)執(zhí)行WHILE至END間的程序段;IF的用法則比較多,大致上有以下幾種用法:

在FANUC B類宏程序中,有IF GOTO及IF THEN二個(gè)用法,前者用于當(dāng)條件滿足時(shí)跳轉(zhuǎn)到指定的程序段運(yùn)行;后者用于當(dāng)條件滿足時(shí)執(zhí)行一個(gè)命令。

在華中世紀(jì)星宏程序中,有IF ......END IF及IF...... ELSE......ENDIF;前者用于當(dāng)條件滿足時(shí)執(zhí)行其中的程序段;后者用于當(dāng)條件滿足時(shí)執(zhí)行IF至ENDIF間的程序段,不滿足時(shí)執(zhí)行ELSE至ENDIF間的程序段。

在西門子801/802宏程序中,沒有WHILE這類循環(huán)語(yǔ)句,完全依靠IF命令來(lái)實(shí)現(xiàn)跳轉(zhuǎn)或循環(huán)功能,IF.......GOTOF是當(dāng)條件滿足時(shí)向前跳轉(zhuǎn)到指定程序段,一般用來(lái)在某些情況下避免運(yùn)行一些程序段;IF......GOTOB是向后跳轉(zhuǎn),一般用來(lái)重復(fù)執(zhí)行某些程序段,可以使用這個(gè)命令來(lái)實(shí)現(xiàn)循環(huán)。

關(guān)注小編,學(xué)習(xí)更多數(shù)控知識(shí),分享機(jī)加工技巧,感謝!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多