Fanuc用戶宏程序基礎(NC車床)_第1頁
Fanuc用戶宏程序基礎(NC車床)_第2頁
Fanuc用戶宏程序基礎(NC車床)_第3頁
Fanuc用戶宏程序基礎(NC車床)_第4頁
Fanuc用戶宏程序基礎(NC車床)_第5頁
已閱讀5頁,還剩21頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

本文格式為Word版,下載可任意編輯——Fanuc用戶宏程序基礎(NC車床)Fanuc用戶宏程序基礎

1、概要

2、變量的指定3、變量(1)局部變量(2)公共變量(3)系統(tǒng)變量

4、運算指令

5、控制指令

6、利用機床內(nèi)部傳感器測外徑時宏程序的組合方法以及步驟介紹

7、的靈活使用

8、刀具最大磨損值作為壽命值

9、機床外部測量以及輸入輸出端口

1

1、概要

宏程序?qū)Υ蠹襾碇v都比較困難,即便是閱讀了使用說明書。的確,關于宏程序是有一些比較難以理解的部分,鑒于此種狀況,這一次以簡單實例并加以詳細說明來解釋何謂宏程序。這個教材的對象是已經(jīng)能夠熟練把握了NC加工編程的人員。

本資料作為參考,希望能夠?qū)Υ蠹矣兴鶐椭?/p>

到現(xiàn)在為止,宏程序是基于NC語言,由主、子程序來組合而成。說到宏程序和子程序的最大區(qū)別就是宏程序能夠調(diào)用變量。所以最近機器人、裝載機無人化系統(tǒng)上應用到的內(nèi)部外部測定、刀具破損、刀具壽命管理、負荷監(jiān)視系統(tǒng)、工件判斷等,像這些領域,宏程序就不得不被使用到了。

不管怎么樣,總之原本是人進行的作業(yè)轉由機床來進行,所以要必需方方面面都要考慮到。

另外,本資料針對的是FANUC18T,16T,15T,11T,10T,0T(用戶宏程序B),YASNUC作為說明對象的。

2

2、變量指定

關于宏變量的調(diào)用,請看下例。

(1)形狀一致,尺寸不同的時候、各尺寸定義為A~D等變

量;

(2)刀尖的進給路線1~7的程序用宏程序來編制。

主程序宏程序

3

(3)宏調(diào)用及變量指定

G65P9000A(#1)B(#2)C(#3)D(#7)此命令為編集、輸入A~D圖面尺寸值,并執(zhí)行跳轉至(O9000)。

像上述程序中,A~D的內(nèi)容即使更改,A~D也依舊使用對應的#1、#2、#3、#7變量(最初指定后就不能更改)。這些常數(shù)都是分派給局部變量的。

與宏程序相關的指令,除了G65以外還有G66(宏模態(tài)調(diào)用)、G67(宏模態(tài)調(diào)用取消)。假使定義G65,定義的宏程序只被調(diào)用一次;G66是模態(tài)調(diào)用指令,每次軸移動指令都調(diào)用宏程序,直到G67(取消模態(tài)調(diào)用)。具體參考控制裝置廠商的使用說明書。

非G代碼選配的宏模態(tài)調(diào)用的指令也有。假使定義了M96P****,系統(tǒng)不管外部有沒有其他信號還是處于加工過程中,會強制執(zhí)行宏模態(tài)調(diào)用。

宏程序一般是O9000號。但是O1000或者是別的也可以,但是系統(tǒng)有相關參數(shù)可以設定O9000、O8000號程序不能夠被刪除。

即、所有的程序都被誤刪,O9000、O8000號程序也不能被刪除,具有這個優(yōu)點。另外某些參數(shù)更改后G、M、T代碼也能調(diào)用宏變量(須參考廠家使用說明書)。

*1、精加工的程序已經(jīng)說明白,實際粗加工也有使用宏程序的必要,在學習了粗加工宏程序后,請練習試試看。

端面的取材,余量控制在一刀。外徑切削量設為E、X軸精加工

4

量設為U(直徑)、Z軸精加工量設為W、倒角量設為X。

(4)變量定義Ⅰ的地址以及相對應的局部變量

變量的對象是變量定義Ⅰ、Ⅱ控制裝置的廠家決定的,作為用戶是不能夠更改的。

變量定義有TYPE1、TYPE2兩種。(表一、表二)

注)變量定義Ⅰ的話,除了G、L、N、O、P,其他地址都可以定義,另外無須依照拉丁字母順序來定義。但是,I、J、K必需依照拉丁字母順序來指定。

5

6

注)1、定義I、J、K的時候,必需依照拉丁字母順序排列。另外變量定義類型2的狀況下,I、J、K的后綴1~10分

別將I、J、K各組按順序分組,實際狀況下指令不依照此格式書寫。

2、無指定變量必要的地址內(nèi),可以省略指令。這時無指令

的地址的相對應的局部變量為。

7

3、假使有個變量號被重復指定的時候,以后指定的變量有效。

4、I、J、K被重復指定的狀況下,由于I、J、K作為一組的順序是固定的,對應這個順序的變量號碼是固定的。(5)自變量指定Ⅰ、Ⅱ的混合

即使G65段內(nèi)同時有Ⅰ、Ⅱ型的自變量指定調(diào)用,也不會有

任何報警。假使自變量Ⅰ和自變量Ⅱ混合指定的話,后指定的自變量類型有效。

對于上例中#7變量,當有自變量I4.0和D5.0同時指定時,取后指定的D5.0。

自變量一般都指定符號以及小數(shù)點。假使不指定小數(shù)點,小數(shù)點的位置見下表。

8

注)1、上面的數(shù)值表示的是小數(shù)點的在第幾位。

2、當參數(shù)PM1000D0=1(YASNUC)時,?。ǎ﹥?nèi)的數(shù)值。

尋常,自變量像下例的方式指定的話也是很簡單理解的,而且程序的兼容性比較好。

9

3、變量

變量分為局部變量、公共變量、系統(tǒng)變量3個種類。

(1)局部變量(#1~#33)

局部變量是在宏程序中使用的變量。就宛如“局部〞這個詞語,從主程序跳轉至子程序,A~D的內(nèi)容只在子程序內(nèi)有效。

當斷電時,局部變量被初始化為空。

假設在程序內(nèi)輸入#100=1,然后執(zhí)行程序,宏程序畫面會顯示#100?????1。刀補的畫面也是,假使輸入0.1也會顯示0.1,即使斷電數(shù)據(jù)也不會丟失。但是宏變量#100假使斷電的話該變量就會被初始化為空(什么都不顯示)。即,的值并不指零。

像這種狀態(tài)稱為。

#500號跟刀補同樣,即使斷電數(shù)據(jù)也不會丟失。

假使想把#500號置的話,程序內(nèi)執(zhí)行#500=#0就可以實現(xiàn)。

(2)公共變量(#100~#199、#500~#999)

局部變量是在當前宏程序內(nèi)可以使用的,但是公共變量是主程序包括其子程序都可以通用的。#i的當前值在所有宏程序中都是一致的。因此在一個宏程序內(nèi)演算的結果(公共變量#i)在別的宏程序內(nèi)也可以使用。

10

(a)公共變量在斷電重啟時有兩種狀況。

#100~#199:斷電重啟時,狀態(tài)初始化為;也有參數(shù)可以更改初始化時不為空。

#500~#999:即使斷電,數(shù)據(jù)也不會丟失。(b)公共變量根據(jù)選配可以追加組數(shù)。(參考說明書)

(c)4軸車床,刀塔之間有共通的用戶宏變量。4軸的狀況下,有兩套數(shù)控裝置,也就是說能夠?qū)崿F(xiàn)相互變量數(shù)值更改讀取的通用變量。

例如,假設ZL-25下刀塔精加工外徑,上刀塔作為測量用。但是即使上刀塔測量得出尺寸也不能對對下刀塔進行補正。

在這種狀況下,可以活用共通用戶宏變量。

上刀塔測定的數(shù)值可以寫入共通用戶宏變量,這樣可以將數(shù)值傳

11

遞給下刀塔。反之也可以。

注)假使刀塔之間沒有共通宏變量,可以使用#1033~#1035、#1133~#1135來實現(xiàn)上下數(shù)據(jù)傳遞。

關于#1033~#1035、#1133~#1135,根據(jù)控制系統(tǒng)的不同可能會有所不同,具體請參考使用說明書。(3)系統(tǒng)參數(shù)

是有固定用途的變量。如下表:

其中,經(jīng)常使用的輸入輸出信號、刀具補正量、報警、段信息、位置坐標、騰躍信號位置等必需要熟記。

另外、這些變量是由控制系統(tǒng)的生產(chǎn)商決定的,不可以被更改。但是#1000~1035、#1100~1135是輸入輸出用的,所以是由森精機決定。因此,地址的更改是可以通過輸入輸出的配線更改來實現(xiàn)的。

12

4、運算指令(有※標記的,務必記牢)

運算指令有以下規(guī)則。

可以實現(xiàn)變量之間的運算??梢砸勒找话愕倪\算式來進行編程。#i=

在中,變量、常數(shù)通過運算符號或者函數(shù)組合來進行運算,結果可以代入指定的變量。中無小數(shù)點的狀況下看作在末尾。

(1)變量的定義、置換※#i=#j(2)加法形運算※#i=#j+#k※#i=#j-#k#i=#jOR#k#i=#jXOR#k

(3)乘法形運算

※#i=#j*#k※#i=#j/#k#i=#jAND#k#i=#jMOD#k(4)函數(shù)

#i=SIN〔#j〕正弦

#i=COS〔#j〕余弦#i=TAN〔#j〕正切

13

#i=ATAN〔#j〕/〔#k〕余切#i=SQRT〔#j〕平方根※#i=ABS〔#j〕絕對值#i=BIN〔#j〕二進制#i=BCD〔#j〕十進制

※#i=ROUND〔#j〕四舍五入華整※#i=FIX〔#j〕下取整#i=FUP〔#j〕上取整#i=ASIN〔#j〕反正弦#i=ACOS〔#j〕反余弦#i=LN〔#j〕對數(shù)

#i=EXP〔#j〕e為底的指數(shù)#i=ADP〔#j〕小數(shù)點追加

上面是依照FANUC-15T來說明的。其他控制裝置稍微有點區(qū)別,具體使用時請參考操作說明書。

(5)運算組合

運算、函數(shù)都可以運用在宏程序中。運算的優(yōu)先順序:函數(shù)、乘除、加減。

14

(6)括號改變運算的優(yōu)先順序需要優(yōu)先運算的部分可加括號來實現(xiàn)。括號、加上函數(shù)最高可以有5重。

(7)關于精度的注意點

使用宏功能編集程序時,精度有沒有達到要求,這點必需注意。例如,#1與#2的實際值如下

#1=9876543210123.456#2=9876543277777.777

執(zhí)行#2-#1,但是實際得不到67654.321這個結果。為什么呢?就是由于宏變量的精度為十進制8位,即上述#1與#2在系統(tǒng)中的實際值為

#1=9876543200000.000#2=9876543300000.000

只能達到這種精度。(系統(tǒng)內(nèi)部是2進制,所以確切來講與上面的值還是稍微有點區(qū)別。)因此,會產(chǎn)生#1-#2=100000.000的誤差。

15

關于運算誤差的詳細說明請參考使用說明書。另外,規(guī)律關系(后面的控制指令章節(jié)里介紹)的ED,NE,GT,LT,GE,LE基本上與加減運算同樣存在此運算誤差,必需要注意。

16

5、控制指令

控制指令有下面的規(guī)則。

根據(jù)以下指令可以控制程序的執(zhí)行。(1)條件轉移

(a)IF[]GOTOn

成立的話,程序會跳轉至“n〞執(zhí)行。假使使用其他變量或者式子可以更改跳轉地址。

條件不成立則直接執(zhí)行IF下面的語句。

假使此命令句省略IF[],程序則無條件執(zhí)行跳轉(執(zhí)行“n〞)。

[]內(nèi)有以下各種指令。條件式意義#jEQ#k#j=#k=#jNE#k#j≠#k≠#jGT#k#j>#k>#jLT#k#j<#k<#jGE#k#j≧#k≧#jLE#k#j≦#k≦上面的變量也可用式子來代替。

跳轉的程序號“n〞也可用變量或者式子來替代。

(注)假使執(zhí)行GOTOn,在“n〞指定的程序段中,程序號“n〞必需處于該程序段最前面。

17

反方向跳轉比順方向所需時間要長。(例)例文講解

IF[#1EQ1]GOTO1#1等于1則執(zhí)行N1,否則接下去執(zhí)

行。

IF[#1EQ2]GOTO2#1等于2則執(zhí)行N2,否則接下去執(zhí)

行。

GOTO10跳轉至N10N1..

GOTO10跳轉至N10N2..

GOTO10跳轉至N10N10

M99………回主程序(b)IF〔<條件式>〕THEN宏指令:

〔<條件式>〕條件成立則執(zhí)行宏指令。但是此處的宏指令僅限于一段指令。

(例)例文IF[#1EQ#2]THEN#3=0;

18

講解假使#1等于#2則將#3置為零。

注)上述指令在FANUC-15T環(huán)境下使用。(2)循環(huán)

WHILE〔<條件式>〕DOm(m=1,2,3)∥ENDm

成立的時間范圍內(nèi),重復執(zhí)行Dom到ENDm之間的程序段。即、判斷成立與否,成立則執(zhí)行Dom后面的程序段,否則執(zhí)行ENDm后面的程序段。

WHILE〔<條件式>〕與IF一樣可以省略,省略掉的狀況下程序會出現(xiàn)從Dom到ENDM之間的死循環(huán)。

WHILE〔<條件式>〕DOm和ENDm是配對使用的,根據(jù)“m〞可以相互區(qū)別開。

例如#120=1;

N1WHILE[#120LE10]DO1;N2WHILE[#30EQ1]DO2;N3END2;#120=#120+1;N4END1;

注)Dom與ENDm的關系具體參考廠商使用說明書。

19

6、機床內(nèi)用傳感器一點測定外徑的宏模塊以及準備的說明

用常用的傳感器,來測定外徑為φ100.0±0.02的工件,只測一點。

(1)將傳感器安裝在刀塔上一號刀位。

(2)傳感器也是刀具的一種,也需初期設定。即要輸入傳感

器的幾何植。(a)Z方向的測定

(b)X方向的測定方法

最終切記在MDI模式下輸入G99。

這種方法跟一般刀具直接測量唯一的區(qū)別就在于使用了G31騰躍指令。

我們就用宏程序依照(a)、(b)的方法來編集X方向的測量輸入過程,以此作為練習。

20

將機床運行至上圖狀態(tài),然后實行O1000號程序。主程序

O1000暫定φA為100;

G65P9010A100.0X軸原點在其負方向則A為-100.0M30X軸原點在其正方向則A為100.0

宏程序#517X原點方向的標志正方向為原點時設為為“1〞O9010負方向為原點時設為為“-1〞G98G31U-[20*#517]F#518#2701=[#5021-#1]*#517G99G00U[4*#517]

M99#518傳感器靠近工件端面的進給率

考慮到JIS配置或其他配置系統(tǒng)的兼容性故使用#517變量。#2701=#5021-#1,其中#5021指的是X軸從機械原點到刀塔位置的坐標,所以減去工件的尺寸就能得出傳感器的幾何值,式子左邊的“#2701=〞是將值寫入一號刀補的命令。

不管用哪種方法都是可行的,不過在使用跳轉(G31)是必需考

21

慮到一些問題。由于上述條件的機器中止位置與機器實際機器中止位置多少會有些誤差。除了這種誤差以外,另外還有傳感器的中心高度、實際測量的方法以及刀補的寸法都會產(chǎn)生誤差,多少有修正的必要。另外又由于是機內(nèi)測定,所以熱變位也必需考慮到。

傳感器也是刀具的一種,所以基于絕對坐標測定的補正也是輸入刀具幾何補正表內(nèi)。

(3)測定順序流程圖

傳感器補正測量完以后,接下去考慮的是外徑公差φ100.0±0.02的測定順序。

主程序運行完畢后,假使全數(shù)測定的話十分花時間,所以決定每幾個測定一次外徑。

具體順序請看下頁。

22

(4)主程序的編集方法測定宏組塊的自變量內(nèi)容O0001加工M05

G65P9011A#1D#7E#8T#20X#24Z#26W#23

23

M30

A:測定工件的直徑(公差的中心值)符號和程序內(nèi)一致D:不需要補正的范圍(+值)參考下圖E:不會報警的范圍(+值)參考下圖

X:測定部位的X軸的坐標值符號和程序內(nèi)一致Z:測定部位的Z軸的坐標值參考下圖(○―)T:需要補正的刀號宏內(nèi)進行刀補值更改W:工件Z軸定位坐標省略則G00Z#23中假使#23為依照X軸坐標來定位???,則無動作執(zhí)行。

±NG的話出現(xiàn)報警。測定數(shù)值和使用的變量是公共變量#100。計數(shù)器等必需要設定的變量最好取#500號這一段。

#513設定每多少個測量一次。#514計數(shù)器

24

(5)宏程序

O9011(SENSERRINGOUTSIDE)

#514=#514+1公共變量#514自增1并替換本身值

IF[#514GE#513]GOTO10假使#514≧#513則跳轉至N10M99否則跳回至主程序段N10

#514=0計數(shù)器清零GOOT0100調(diào)用傳感器到位

#108=#5041#23值為空則無動作,機床產(chǎn)生報警信號并中止#109=#5042G31有跳轉信號時的坐標值G00Z#23X#24G98Z#26

G31X[#1-20*#517]F#518#100=#5061G00G99X#24Z#23

X#108保存起始點Z#109

#110=ABS[#1]–ABS[#100]│公差的中間值│-│測取值│→#110#111=ABS[#110]?。?10的絕對值付給#111

IF[#111GE#8]GOTO901#111比E值大就跳轉至N901

25

IF[#111LE#7]GOTO20#111比D值小的話跳轉至N20#[2000+#20]=#[2000+#20]+#110*#517補正更改,補正量#110N20M99N901

#3000=911(MESURRINGERR.N.G)±NG的狀況下,會產(chǎn)生911

號報警,并在CRT上顯示括號內(nèi)的內(nèi)容,同時返回起始點。

以上面的流程圖為基礎,宏程序O9011自然就編集成了。構思流程圖時,機械動作及判定順序要確定好,跳轉段落的程序號要寫明,另外需要定義的變量最好做成一覽表(為了不重復)整理好,會事半功倍。

這樣,以一點測量外徑為例說明白宏程序的運用,同樣兩點測量外、內(nèi)徑依照同樣的思路來考慮的話,關于機內(nèi)計測的宏程序也可以編集出來的。

26

7、變量的活用

前面外徑測量已經(jīng)說明白,由于是無人操作測量外徑φ100,另外通電開始加工第一個工件時,我們一般必需留有足夠余量,加工測量補正后再依照尋常的加工繼續(xù)。因此就存在了第一個工件不得不測量的問題。

這樣,將程序O9011怎樣修改才能實現(xiàn)每次通電后就測量一次,關于這一點來考慮一下。

我們就利用#100以后的變量斷電后自動初始化為空的特點來實現(xiàn)。

在前面的流程圖的加工終了與カウントアップ(計數(shù)值UP)之間只要追加下面的判斷語句就可以了。

宏程序如下:

O9011(SENSERRINGOUTSIDE)

27

IF[#140EQ#0]GOTOO30通電時跳轉至N30GOTO40N30

#140=1置1,則值不為空#514=#513-1減去當前的測定個數(shù)N40#514=#514+1后一致

宛如這樣,根據(jù)通電時的判斷結果可以跳轉至其他程序,進行不同的機械動作(例如空運轉等)。

28

8、磨耗量的范圍作為工具壽命的判斷依據(jù)

連續(xù)加工并測定工件,同時替換刀具的補正量。利用補正量的變化可以用來判斷工具壽命。這樣將刀具的初始補正量輸入#500號段的參數(shù),然后與根據(jù)傳感器測定出來的新補正值的比較值作為判斷基準就可以了。這個值假使超過允許范圍就會產(chǎn)生報警同時機器中止。

例如、初期補正量假定為0.123#530輸入0.123(初期補正量)

#531設為0.2,假使與初期補正量的差超過0.2mm,機器中止

這樣,機器中止后交換刀片后再重啟就可以了?!?/p>

2但是,假使刀塔上有預備刀具的話不用中止也可以繼續(xù)進行加工。另外我們可以拿下面兩個例子來練習一下,假使是送料仕樣的話,(有相關要求的仕樣),壽命(加工數(shù))到了的話就使用下一把刀,或者是沒有到達壽命加工數(shù)而是超過磨損范圍時需要換刀,等等。

29

9、機外測量以及輸入輸出端口

前面就機內(nèi)測量的宏程序做了說明。接下來關于送料式樣的機床來舉一例說明機外測定器與機床之間的信號反饋方式。

機外測定可以分為兩大類。第一種是分為五種信號(+NG、+OK、OK、-OK、-NG),以區(qū)分輸出。另外一種就是輸出數(shù)值。這里就常使用的第一種來說明。

上圖為NC與測定器的輸入輸出連接方式。首先,由測定器來判斷被測定信號種類。

從NC側發(fā)出要求測量的信號(閉合#1100接點)。測定器側根據(jù)采集信號通過CPU計算來確定信號屬于5種中哪一種,然后輸出。NC側接受信號。宏程序的功能就是判斷信號種類。

30

宏程序如下:O9020#1100=1G04U0.5G04U0

#1100=0輸出0位接點閉合N10

IF[#1000EQ1]GOTO1輸入0位ON則跳轉至N1IF[#1001EQ1]GOTO2輸入1位ON則跳轉至N2

31

IF[#1002EQ1]GOTO3輸入2位ON則跳轉至N3IF[#1003EQ1]GOTO4輸入3位ON則跳轉至N4IF[#1004EQ1]GOTO5輸入4位ON則跳轉至N5GOTO10N1

#3000=909(+NG)N2

#[2000+#520]=#[2000+#520]-#521GOTO6N3GOTO6N4

#[2000+#520]=#[2000+#520]+#521N6M99N5

#3000=908(-NG)

#520設為補正號碼#521設為補正值(+值)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論