サブプログラム活用術:CNCプログラミングをシンプルかつ強力にする秘訣
読者の方から「サブプログラムの使い方について記事を書いてほしい」とリクエストがありました。シンプルなテーマですが、サブプログラムとサブルーチンの活用法を知らない方も多いと気づき、私の知見を共有します。ハーコの会話型NCマージ機能にも触れます…これは強力かつシンプルで非常に有用です!
ご存知ない方のために:サブプログラムとは、メインプログラムから呼び出せる独立した別プログラムのこと。繰り返し形状、同一プログラムを複数位置で実行、または「いつでも呼び出せる缶詰プログラム」を用意しておきたい場合等によく使われます。
ほとんどのNC/Gコードプログラムはプログラム番号(通常4桁の数字)で始まり、先頭に「O」またはコロンブロック(:)が付きます。このプログラム番号を使って、メインプログラムに M98 を挿入するだけでサブプログラムを呼び出せます。例えば下記のサンプルプログラムをサブプログラムとして呼び出すなら、メインプログラムに `M98 P2012` と記述します。また、NCプログラム終了に通常使う M2 または M30 を M99 に置き換えます。M99 はサブプログラム終了を制御装置に伝え、元のメインプログラムへ制御を戻します。この手順を必要な回数繰り返せばよく、同一サブプログラムを無制限に呼び出せます。

別ファイルとして呼び出すだけでなく、サブプログラムをメインプログラム末尾に「ネスト(入れ子)」して、全てを単一データファイルにまとめることも可能です。メイン・サブ両プログラムのフォーマットは別ファイル時と同じですが、ネストされたプログラムは、元のメインプログラムを終了する通常の M2 または M30 の**後**に配置しなければなりません。
冒頭で触れた通り、NCサブプログラムはハーコWinMax会話型プログラムでも「NCマージ」機能を使って活用できます。手順はNCとほぼ同じですが、Gコード呼び出し M98 を挿入する代わりに、会話型ブロックからサブプログラムを呼び出します。NCマージデータブロックは、会話型パターンや5軸トランスフォームプレーンブロックと組み合わせてフィーチャーを配置することもでき、複雑な問題への簡単な解決策をプログラマーに提供します。




CNCマシン
- 堅牢な予知保全プログラム構築の実践ガイド
- ツェナーダイオードで作る信頼性の高い過電圧保護回路
- CNCプログラミングマスター:言語、構造、G/Mコード
- PLCnext EngineerでC++のシンプル/複合データ型をマスターする
- シンプルCNC旋盤プログラミング:初心者向けインチ系プログラム例
- ハース M98 サブプログラム呼出し:実践ガイド & サンプルコード
- CNC サブプログラムをマスター:NC オペレータ必携ガイド
- サブプログラム解説:定義とCNC制御での活用法
- CNCフライス盤 円弧加工例:G02 I・Jパラメータの使い方
- サーミスタを使った信頼性の高い火災報知回路の構築 - はんだ付け不要ブレッドボードプロジェクト
- Javaでアームストロング数を判定・列挙するプログラム