OSP(オークマ) - サブプログラム呼び出し

プログラミングをするとき、同じパターンを繰り返し作ったり、他のプログラムをコピーして作成したりすることがあります。このようなときはサブプログラムとしてパターンを作成しておき、必要なときに呼び出せば、プログラムも見やすく、正確に作成することができます。

サブプログラムの呼び出し方は単純呼び出し機能(CALL)、軸移動呼び出し機能(MODIN,MODOUT)、G、Mコードマクロ機能の3種類があり、サブプログラムからメインプログラムに戻るには、RTSを使用します。


単純呼び出し機能 CALL

"CALL O_ Q_ (受け渡し変数)" の形式で、Oは呼び出すプログラム名、Qは繰り返し回数を設定します。Qは省略すると1回となります。受け渡し変数はサブプログラムで使用する変数の値を設定でき、[サブプログラムの変数=受け渡す値]の形式となります。

%
O10
VC1=10.
VC2=20.
VC3=30.
LC=100.
CALL O20 LA=VC1 LB=VC2 LC=LC LD=VC3
M02
%

%
O20
(代入されている数値)
(LA=10.)
(LB=20.)
(LC=100.)
(LD=30.)
RTS
%
				

軸移動呼び出し機能 MODIN

"MODIN O_ Q_ (受け渡し変数)" の形式で、O、Q、受け渡し変数の使い方は、単純呼び出し機能と同じですが、MODOUTでキャンセルされるまでサブプログラム呼び出しを行います。

%
O10
MODIN O20
X10. Y10. (O20呼び出し)
X20. Y20. (O20呼び出し)
X30. Y30. (O20呼び出し)
MODOUT
M02
%

%
O20
(処理)
RTS
%
				

軸移動呼び出し指令後、再度、軸移動呼び出し指令を行うことを多重軸移動呼び出しと言います。多重軸移動呼び出しは8重まで行うことができます。

%
O10
MODIN O100
MODIN O200
X0 Y0 (O200呼び出し)
MODOUT
MODOUT
M02
%

%
O100
X10. Y10.
RTS
%

%
O200
X20. Y20. (O100呼び出し)
RTS
%
				

G、Mコード機能

CALL、MODIN、MODOUTを使用する代わりに、Gコードを使用してもサブプログラム呼び出しを行うことができます。ただし、ユーザーサブプログラムを使用する場合は、Gコード、Mコードに対応するプログラム名をパラメータで設定する必要があります。

Gコードを使用する場合、"G_ (受け渡し変数)"の形式で、受け渡し変数で使用出来るアドレスは、G、M、N、Oを除いたアドレスキャラクタと拡張アドレスキャラクタです。

Mコードを使用する場合、"M_" の形式で、受け渡し変数の設定は行いません。

当サイトのPDF版を作成しました

教育資料やリファレンスとして使用して頂ければと思います。NCプログラムの教科書

上級編も作成しました。NCプログラム上級編


メニュー
NC旋盤
サブメニュー
OSP(オークマ)
雑学
NCプログラマの為の数学