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