4.11.5.2 M97:內部副程式呼叫
1. M97:內部副程式呼叫 L_ 次
格式:
M97 P_ L_
於編輯器程式執行模式下,M97 指令用於呼叫內部副程式 L_ 次。此內部副程式與主程式同在一 CNC 檔中。
此內部副程式是置於主程式後面,並以 "Oxxxx" 為副程式名稱,此 "xxxx" 是四位數字,即為 M97 指令中之 P_ 值;副程式必須以 M99 結尾(由副程式返回)。
範例一:
程式 SAMPLE97.CNC 說明
___________________________________________________________
;SAMPLE OF M97 CALL ;主程式
G50 X0 Y0 Z0 ;
M03 ;
M97 P1005 L3 ;呼叫執行副程式 O1005 三次
M97 P2001 ;呼叫執行副程式 O2001 一次
M05 ;
... ...
M02 ;主程式結束
O1005 ;副程式 O1005 開始
... ...
M99 ;副程式 O1005 結束
; ;
O2001 ;副程式 O2001 開始
... ...
M99 ;副程式 O2001 結束
範例二:
程式 SAMPLE97.CNC 說明
___________________________________________________________
;SAMPLE OF M97 CALL ;主程式
G50 X0 Y0 Z0 ;
... ...
M97 P1005 L3 ;呼叫執行副程式 O1005 三次
... ...
M30 ;主程式結束
; ;
O1005 ;副程式 O1005 開始
... ...
M97 P2001 ;呼叫執行副程式 O2001
... ...
M99 ;副程式 O1005 結束
; ;
O2001 ;副程式 O2001 開始
... ...
M99 ;副程式 O2001 結束
2. M97 函數功能
M97 函數功能,說明如下:
格式:
M97 Pp Qq xxxx #yyyy zzzz
.
.
.
Op
.
.
.
M99
其中,
p:呼叫定義函數的副程式檔名。
q:於 Op 副程式中,用以代入函數輸入值之巨集變數起始編號。
(其後跟隨數字或巨集變數,且只能有此二者,不可再有其它指令值,且至多可設定 10 組數字或巨集變數)
xxxx, zzzz(數字) :函數 p 之輸入值。
#yyyy(巨集變數之值):函數 p 之輸入值。
Op :p 副程式。
在 M97 函數功能中,藉由巨集變數將函數輸入值代入定義之函數中以執行運算,函數定義則寫為內部副程式,並以 M97 指令呼叫執行之。
執行此 M97 函數指令時,系統會依序將 xxxx 代入 #q,巨集變數 yyyy 之值代入 #(q+1),zzzz 代入 #(q+2),依此類推,以供 Op 函數進行運算。
程式範例:
原程式寫法:
#30=-146.999
#31=10.000
#71=#31*COSD(#30)
#72=#31*SIND(#30)
使用 M97 函數可將程式改寫為:
<寫法一>
M97 P301 Q30 -146.999 10.000
.
.
.
O301
#71=#31*COSD(#30)
#72=#31*SIND(#30)
M99
於上例中,M97 指令行將把 #30 設定為 -146.999,#31 設定為 10.000,而後再呼叫 O301 副程式。
<寫法二>
(以此寫法示範以巨集變數處理輸入值)
#50=-146.999
M97 P301 Q30 #50 10.000
.
.
.
O301
#71=#31*COSD(#30)
#72=#31*SIND(#30)
M99
於上例中,第一行指令將先把 -146.999 設定至 #50 中,而 M97 指令行將把 #30 設定為 #50 之值,即 -146.999,#31 設定為 10.000,而後再呼叫 O301 副程式。
註. 可用逗號(,)將輸入值隔開,亦即輸入值間使用空格或逗號(,)隔開皆可,如:
M97 Pp Qq xxxx,#yyyy,zzzz,…………