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プログラマの為の数学
関連サイト