要使一個NC程序不僅僅適用于特定數(shù)值下的一次加工,或者必須要計算出數(shù)值,兩種情況均可以使用計算參數(shù),你可以在程序運行時由控制器計算或設(shè)所需要的數(shù)值;可以通過操作面板設(shè)定參數(shù)數(shù)值。如果參數(shù)已經(jīng)賦值,則它們可以在程序中對由變量確定 地址進行賦值。
R0=...
到
R249=...
一共250個計算參數(shù)可供使用。
R0...R99 - 可以自由使用
R100...R249 -加工循環(huán)傳遞參數(shù)
如果你沒有用到加工循環(huán),則這部分計算參數(shù)也同樣可以自由使用。
R0=3.5678 R1=-37.3 R2=2 R3=-7 R4=-45678.1234
用指數(shù)表示法可以賦值更大的數(shù)值范圍:
(10-300...10+300).
指數(shù)值寫在EX符號之后;最大符號數(shù):10(包括符號和小數(shù)點).
EX值范圍:-300到+300
R0=-0.1EX-5 ;意義:R0=-0.000 0001
R1=1.874EX8 ;意義:R1=187 400 000
注釋:一個程序段中可以有多個賦值語句;也可以用計算表達式賦值。
通過給其它的NC地址分配計算參數(shù)或參數(shù)表達式,可以增加NC程序的通用性??梢杂脭?shù)值、算術(shù)表達式或R參數(shù)對任意NC地址賦值。但對地址N、G和L例外。
賦值時在地址符之后寫入符號"="
賦值語句也可以賦值-負號。
給坐標軸地址(運行指令)賦值時,要求有一獨立的程序段。
舉例:
N10 G0 X=R2 ;給X軸賦值
在計算參數(shù)時也遵循通常的數(shù)學(xué)運算規(guī)則。原括號內(nèi)的運算優(yōu)先進行。另外,乘法和除法運算優(yōu)先于加法和減法運算。
1)標記符用于標記程序中所跳轉(zhuǎn)的目標程序段,用跳轉(zhuǎn)功能可以實現(xiàn)程序運行分支。
2)標記符可以自由選取,但必須由2一個字母或數(shù)字組成,其中開始兩個符號必須是字母或下劃線。
3)跳轉(zhuǎn)目標程序段中標記符后面必須為冒號。標記符位于程序段段首。如果程序段有段號,則標記符緊跟著段號。
4)在一個程序段中,標記符不能含有其它意義。
N10 MARKE1:G1 X20 ;MARKE1為標記符,跳轉(zhuǎn)目標程序段 ...
TR789:G0 X10 Z20 ;TR789為標記符,跳轉(zhuǎn)目標程序段沒有段號
NC程序在運行時以寫入時的順序執(zhí)行程序段。
程序在運行時可以通過插入程序跳轉(zhuǎn)指令改變執(zhí)行順序。
跳轉(zhuǎn)目標只能是有標記符的程序段。此程序段必須位于該程序之內(nèi)。
絕對跳轉(zhuǎn)指令必須占用一個獨立的程序段。
GOTOF Lable ;先前跳轉(zhuǎn)
GOTOB Lable ;向后跳轉(zhuǎn)
AWL 說明
GOTOF 向前跳轉(zhuǎn)(向程序結(jié)束的方向跳轉(zhuǎn))
GOTOB 向后跳轉(zhuǎn)(向程序開始的方向跳轉(zhuǎn))
Lable 所選的標記符
用IF-條件語句表示有條件跳轉(zhuǎn).如果滿足跳轉(zhuǎn)條件(也就是值不等于零),則進行跳轉(zhuǎn).跳轉(zhuǎn)目標只能是有標記符的程序段.該程序段必須在此程序之內(nèi).
有條件跳轉(zhuǎn)指令要求一個獨立的程序段.在一個程序段中可以有許多個條件跳轉(zhuǎn)指令.
使用了條件跳轉(zhuǎn)后有時會使程序得到明顯的簡化.
IF條件GOTOF Lable ;先前跳轉(zhuǎn)
IF條件GOTOB Lable ;向后跳轉(zhuǎn)
AWL | 說明 |
GOTOF | 向前跳轉(zhuǎn)(向程序結(jié)束的方向跳轉(zhuǎn)) |
GOTOB | 向后跳轉(zhuǎn)(向程序開始的方向跳轉(zhuǎn)) |
Lable | 所選的標記符 |
IF | 跳轉(zhuǎn)條件導(dǎo)入符 |
條件 | 作為條件的計算參數(shù),計算表達式 |
運算符 | 意義 |
= = | 等于 |
<> | 不等 |
> | 大于 |
< | 小于 |
> = | 大于或等于 |
< = | 小于或等于 |
用上述比較運算表示跳轉(zhuǎn)條件,計算表達式也可用于比較運算.
比較運算的結(jié)果有兩種,一種為"滿足",另一種為"不滿足"。 "不滿足"時,該運算結(jié)果值為零。
R1>1 ;R1大于1
1<R1 ;1小于R1
R1<R2+R3 ;R1小于R2加R3
R6>=SIN(R7*R7) ;R6大于或等于SIN(R7)2
L1(半球):
L2(半球):
效果圖:
G54X0Y0Z10F100M03S100
R10=-15 R11=-9.06
L1
R10=15 R11=-9.06
L1
R10=0
L2
G0 X=R10+12.5-4 Y=R11
G1 Z-6 F100
G3 I=4-12.5
G1 X=R10+8 Y=R11
G41 D1 X=R10+4 Y=R11
G2 I-4
G0 Z5
R1=4
R2=90
AAA:
R3=R1*COS(R2)+4+R10
R4=R1*SIN(R2)-R1
G0 X=R3 Y=R11
G1 Z=R4 F300
G2 I=R10-R3
G0 Z1
R2=R2-1
IF R2>=0 GOTOB AAA
G0 Z10
M17
R1=35
R2=15
R3=0
G0 X=R1+R10 Y=R11
G1 Z-5 F100
AAA:
R4=R1*COS(R3)+R10
R5=R2*SIN(R3)+R11
G1 X=R4 Y=R5 F100
R3=R3+1
IF R3<=360 GOTOB AAA
G0 Z5
M17
原則上講主程序和子程序之間并沒有區(qū)別。
用子程序編寫經(jīng)常重復(fù)進行的加工,比如某一確定的輪廓形狀。子程序位于主程序的一種型式就是加工循環(huán),加工循環(huán)包含一般通用的加工工序,諸如螺紋切削,柸料切削加工等等。通過給規(guī)定的計算參數(shù)賦值就可以實現(xiàn)各種具體的加工。
子程序的結(jié)構(gòu)與主程序的結(jié)構(gòu)一樣,在子程序中也式最后一個程序段中用M2結(jié)束子程序運行運行。子程序結(jié)束后返回主程序。
除了用M2指令外,還可以用RET指令結(jié)束子程序。
RET要求占用一個獨立的程序段。
用RET指令結(jié)束子程序、返回主程序時不會中斷G64連續(xù)路徑運行方式,用M2指令則會中斷G64運行方式,并進入停止狀態(tài)。
為了方便地選擇某一子程序,必須給子程序取一個程序名。程序名可以自由選取,但必須符合以下規(guī)定:
- 開始兩個符號必須時字母
- 其它符號為字母,數(shù)字或下劃線
- 最多8個字符
- 沒有分隔符
其方法與主程序中程序名的選取方法一樣。
在一個程序中(主程序或子程序)可以直接用程序名調(diào)用子程序。子程序調(diào)用要求占用一個獨立的程序段。
舉例:
N10 L785 P3 ;調(diào)用子程序L785
N20 WELLE7 ;調(diào)用子程序WELLE7
如果要求多次連續(xù)地執(zhí)行某一子程序,則在編程時必須在所調(diào)用子程序的程序名后地址P下寫入調(diào)用次數(shù),最大次數(shù)可以為9999(P1...P9999)
舉例:
N10 L785 P3 ;調(diào)用子程序L785 ,運行3次
子程序不僅可以從主程序中調(diào)用,也可以從其它程序中調(diào)用,這個過程稱為子程序的嵌套。子程序的嵌套深度可以為三層,也就是四級程序界面(包括主程序界面) 。
注釋:在使用加工循環(huán)進行加工時,要注意加工循環(huán)程序也同樣屬于四級程序界面中的一級。
在子程序中可以改變模態(tài)有效的G功能,比如G90到G91的變換.在返回調(diào)用程序時請注意檢查一下所有模態(tài)有效的功能指令,并按照要求進行調(diào)整。
對于R參數(shù)也需同樣注意,不要無意識地用上級程序界面中所使用的計算參數(shù)來修改下級程序界面的計算參數(shù)。