4 章
4.3 サブプログラム呼出し機能 (M98, M99)
この機能はサブプログラムがプログラムメモリに保存されるときに使用します。
プログラム番号を指定してメモリに保存されたサブプログラムは,必要なだけ何 回でも呼び出して実行できます。
作成したサブプログラムは,まずパートプログラムメモリに保存してから呼び出 すようにしてください。
指令
表 4-5 に示す M コードが使用されます:
サブプログラム呼出し (M98)
S M98 P nnnmmmm
m: プログラム番号(最大 4 桁)
n: 反復回数(最大 3 桁)
S たとえば,M98 P21 がプログラムされると,プログラム名 21.mpf がパートプロ グラム中でサーチされ,そのサブプログラムが 1 回実行されます。そのサブプ ログラムを 3 回実行するためには,M98 P30021 をプログラムする必要がありま す。指定されたプログラム番号が見つからなければエラーになります。
S サブプログラムは最大で 4 レベルまでネスティング可能です。ネスティングレ ベルが 4 レベルを超えるとエラーになります。
サブプログラムエンドコード (M99)
M99 Pxxxx がプログラムされると,メインプログラムにリターンジャンプしてか らブロック番号 xxxx で実行が再開します。システムはこのブロック番号を見つけ るために最初に前方サーチを行います(サブプログラム呼出しからプログラムエ ンドに向けて)。この前方サーチでそのブロック番号が見つからなければ,パート プログラムを後方サーチします(プログラムの先頭に向けて)。
M99 がメインプログラム中に指定されていれば,実行がメインプログラムの先頭 に戻ってメインプログラムが繰返し実行されます。
表 4.5 サブプログラム呼出し M コード
M コード 機能
M98 サブプログラム呼出し
M99 サブプログラムエンド
4.4 8 桁プログラム番号
8桁プログラム番号は$MC_EXTERN_FUNCTION_MASK,bit6=1で選択されます。
この機能はM98,G65/66とM96に関連します。
y:プログラムの運転回数 x:プログラム番号
M98 によるサブルーチン呼び出し
$MC_EXTERN_FUNCTION_MASK,bit6=0 M98 PyyyyxxxxまたはM98 PxxxxLyyyy
プログラム番号の最大桁数:4桁
いつも4桁のプログラム番号が0で拡張されます。
例
M98 P20012 0012.mpfが2回呼ばれる M98 P123L2 0123.mpfが2回呼ばれる
$MC_EXTERN_FUNCTION_MASK,bit6=1 M98 Pxxxxxxxx Lyyyy
プログラム番号が4桁より少なくても0は加えられません。
繰り返し回数とプログラム番号はPで一緒でプログラムすることができません。
((Pyyyyxxxx)指令は不可)
プログラム繰り返し回数はいつもLで指令してください。
例
M98 P123 0123.mpfが1回呼ばれる M98 P20012 20012.mpfが1回呼ばれる
重要
これまでのようにISO Gコードとの互換性はありません。
M98 P12345 L2 12345.mpfが2回呼ばれます。
G65/G66 マクロ呼び出し
$MC_EXTERN_FUNCTION_MASK,bit6=0 G65 PxxxxLyyyy
4桁より少ないプログラム番号のときは0で拡張されます。4桁より多い桁数の ときはアラームとなります。
$MC_EXTERN_FUNCTION_MASK,bit6=1 G65 PxxxxLyyyy
4桁より少ないプログラム番号でも0は追加されません。8桁より多い指令はア
4.2.2 ワーク座標系シフトデータの設定
M96 プログラム割り込み
$MC_EXTERN_FUNCTION_MASK,bit6=0 M96 Pxxxx
4桁より少ないプログラム番号のときは0で拡張されます。
$MC_EXTERN_FUNCTION_MASK,bit6=1 M96 Pxxxx
4桁より少ないプログラム番号でも0は追加されません。8桁より多い指令はア ラームとなります。