• 締切済み
※ ChatGPTを利用し、要約された質問です(原文:ブロックデリートを使用せずに加工をスキップする方法)

ブロックデリートを使用せずに加工をスキップする方法

このQ&Aのポイント
  • プログラム中でN3の工程をスキップする方法について教えてください。
  • ブロックデリートを使用せずにN2工程からN4工程に自動的にジャンプする方法はありますか?
  • マクロやGOTO文などを使わずにN2工程からN4工程へジャンプさせる方法を教えてください。

みんなの回答

noname#230359
noname#230359
回答No.2

そのプログラムがメインプログラムであれば、 つまり、他のプログラムのサブプログラムや マクロプログラムとして呼び出されたものでなければ、 M99P__ で、Pで指定したシーケンス番号まで飛ばせます. ただ、M99は基本的にサブプログラムからの復帰用の指令なので、 万が一にもサブプログラムやマクロであった場合には、 メインプログラムに戻り、指定シーケンス番号に実行が移されてしまいます. ですから、サブプログラムとして呼び出される可能性がある場合、 例えば、MDIからM98で呼び出す可能性がある様な場合には、 この、メインプログラムとサブプログラムとでの挙動の違いに 注意しないといけません. また、M99はプログラムを順繰りにサーチしますので、 検索のオーバーヘッドが発生します. NCの機種によっては、GOTOよりはかなり遅いですね. サブプログラム内で特定のシーケンス番号まで飛ばすには 一旦M98で別のプログラムを呼び出して、M99P__ですかね.

noname#230358
質問者

お礼

ありがとうございます。

noname#230359
noname#230359
回答No.1

ファナックの場合。 例えばN1終了後、N4に飛ばしたいとき。 N1工程のM01の後に、M99 P4と入れるとN4までスキップします。 プログラムの途中まで飛ばしたい時は、飛ばしたい部分にシーケンスNoを付けておき、やりたい加工が終了した次のブロックにM99 P()を挿入します。 またもとのプログラムを復帰するときはM99のブロックを消去するだけなので楽です。

noname#230358
質問者

お礼

ありがとうございます。 今まではブロックデリートで消したり バックアップを取った後プログラム自体を消していたので かなり楽になります。

関連するQ&A