ncプログラムをサンプル付きでやさしく解説!初心者でもわかる!

オンライン

ncプログラムの「nc」とはNumerical Control(数値制御)の略です。

nc工作機械をどのような条件でどのように動作させるか、記号と数値で記したものを「ncプログラム」と呼びます。

プログラミングなんて難しそうだな。

説明書を読んでも英数字がたくさん並んでいるので、見ただけで頭痛がしそうですよね。

そんなあなたに、ncプログラムの基礎をサンプル付きで解説します!

あなたの使用する機械が、どこの「nc」を搭載しているかによってプログラムの内容が変わります。

ここではファナック社製nc旋盤のプログラムとサンプルをご紹介します。

一般的にファナックの機械を導入している企業が多いため、覚えておくと応用が利くので役立ちます。

サンプル付きで分かりやすく解説しますので、初心者でも簡単なプログラムを作れるようになりますよ!

 

 

ncプログラムをサンプル付きで分かりやすく解説!

nc工作機械をどのような条件でどのように動作させるか、記号と数値を組み合わせて記したものを「ncプログラム」と呼びます。

nc装置のメーカーには代表的なものとしてファナック、ヤマザキマザック、メルダス、シーメンスなどがあります。

ここではファナック社製nc旋盤のプログラムをサンプル付きで、分かりやすく解説します。

 

ワードとはアルファベットと数値を組み合わせたもの

ncプログラムはアルファベットと数値を組み合わせて1つの命令になります。

例えば「G91」のプログラムに対して、アルファベット部分を「アドレス」、数値部分を「データ」と呼びます。

アドレスとデータを組み合わせると、「ワード」ができます。

G91 ワード
G アドレス
91 データ

アドレスに使われるアルファベットは、用途によって決まっています。

アドレス 機能・名称 用途
O プログラム番号 プログラムの識別
N シーケンス番号 行のブロック番号
G 準備機能(Gコード) 位置決めや主軸移動などの動作指令
M 補助機能(Mコード) 主軸回転開始や切削ONなど機械の制御指令
S 主軸機能 主軸の回転数設定
F 送り機能 切削時の送り速度設定(mm/分)
T 工具機能 工具番号の指定
X、Y、Z 座標語 軸移動の指令
P、Q、R パラーメータ 固定サイクルのパラーメータ

この中でもよく使われるアルファベットをピックアップして解説します。

GコードとMコードは特に重要ですので、後ほど詳しく解説しますよ。

<S(主軸機能)>

主軸の回転は「S」で表されます。「S」の後に回転数を入力します。

1000回転で主軸を回したい時は、次のサンプルのように入力しましょう。

S1000 M03

主軸回転命令は、この2つのワードで1セットと覚えておきましょう

まず、「S1000」は1分間に1000回転するという意味です。

次に、「M03」は主軸を右回り(時計回り)での回転を命令するコードです。

ちなみに、「M04」は左回り(半時計回り)という意味ですが、ほとんど使用しません。

<F(送り機能)>

「F」はフィードと呼ばれ、主に切削やアプローチ、エスケープをする時に送り速度として使用します。

「F」の後に送り速度の数字を入力します。入力した数字は「1分間あたりの送り量」を表しています。

1分間に1000mm動かしたい時は次のサンプルのように入力しましょう。

F1000

<T(工具機能)>

「T」はマシニングのみに使用します。これはツール番号の意味で「T」のあとに工具の番号を入れます。

12番の工具を呼び出したい場合は、次のサンプルのように入力しましょう。

T12 ;
M06 ;

「M06」は工具交換を命令するワードです。この2つのワードによって「T12」にツールチェンジできます。

いくつかアルファベットをご紹介しましたが、使う機会は多いのですぐに覚えられますよ!

 

ブロックとは行の始まりから終わりまでのこと

次のサンプルは7行のプログラムですが、それぞれの行をncプログラムでは「ブロック」と呼びます。

O1000(SAMPLE) ;
G90 G00 X0.Y0. ;
G01 X20. Y0. F100. ;
X20.Y20. ;
X0.Y20. ;
X0.Y0. ;
%

1つのブロックは1つ以上のワードで作られています。

行の終わりのセミコロン「 ; 」を「End Of Block」と呼びます。「EOB」によって改行されます。

私がプログラムを見たときに、英数字が並んでいて難しそうだと感じましたが、落ち着いて一つずつワードを見ていくと、分かりやすくなりました。

それでは、上記のサンプルがどのような指令なのか理解するために、GコードとMコードをこの後詳しく解説します。

 

 

ncプログラムのサンプルGコード編!これだけは覚えよう

Gコードは準備機能と呼ばれており、アドレスGと数値を組み合わせて表されます。

主に工作物の位置決めや方向指定、主軸移動など加工に関する命令に使用されます。

それでは、どのようにGコードが使われるのか見てみましょう。

 

ワンショットとモーダルとは?

Gコードには「ワンショット」と「モーダル」の2種類があります。

  • ワンショット…指令すると1回のみ有効
  • モーダル…同じグループに属する他のコードが指令されるまで有効

例えば、「G02」と「G03」は同じグループに属するモーダルGコードです。

「G02時計回り円弧補間」と「G03反時計回り円弧補間」この2つを同時に指令しても、同時に実行することができません。

このように他の動作指令を打ち消すような、相反する指令は同じグループに分類されます。

一度「G02」を指令すると「G03」が指令されるまで「G02」は有効です。

 

よく使われるGコードの一覧

一般的なGコードはG00~G99まで約70個あります。

しかし、その全てを使用するわけではありません。

Gコードの中でもよく使用されるものだけをピックアップして覚えておけば、ncプログラムを作成することができます。

よく使われるGコードをご紹介します。あくまでも機械メーカーによって内容が異なりますので、一例としてご覧ください。

G00 位置決め、早送り
G01 直線補間、切削送り
G02 円弧補間、時計回り
G03 円弧補間、反時計回り
G04 ドゥエル
G17〜G19 主基準面の選択
G28 原点復帰
G40 工具径補正のキャンセル
G43 工具長補正+
G44 工具長補正−
G50 主軸最高回転数設定
G54〜G59 ワーク座標系選択
G74 原点復帰
G80 固定サイクルキャンセル
G81 ドリルサイクル
G90 アブソリュート指令
G91 インクレメンタル指令
G92 座標系設定
G94 毎分当たりの送り
G95 主軸一回転当たりの送り
G97 毎分当たりの回転数

Gコードは同じグループ以外であれば、1行に複数のコードを入力することができます。

 

正方形に切削する動きのサンプルプログラムをご紹介!

Gコードを使ってどのようなncプログラムが作成できるのか、サンプルをご紹介します。

これは先ほども登場したサンプルで、正方形に移動するGコードのプログラムです。

O1000(SAMPLE) ;
G90 G00 X0.Y0. ;
G01 X20. Y0. F100. ;
X20.Y20. ;
X0.Y20. ;
X0.Y0. ;
%

それぞれのブロックがどのような意味なのか解説します。

O1000(SAMPLE) ;
プログラム番号1000、プログラム名SAMPLE
G90 G00 X0.Y0. ;
絶対値で、早送りで、座標X0.Y0.に移動
G01 X20. Y0. F100. ;
絶対値で、座標X20.Y0.まで、1分間に100mmの速さで、切削
X20.Y20. ;
絶対値で、座標X20.Y20.まで、1分間に100mmの速さで、切削
X0.Y20. ;
絶対値で、座標X0.Y20.まで、1分間に100mmの速さで、切削
X0.Y0. ;
絶対値で、座標X0.Y0.まで、1分間に100mmの速さで、切削
%
データエンド

このサンプルの中で使われている「G90」と「G01」はモーダルGコードです。

どちらのGコードも一度指令されると、同じグループのGコードが新たに指令されるまで保持されます。

モーダルの機能によって、同じコードを何度も入力する手間を省くことができます。

プログラム番号の後ろについている(SAMPLE)は、プログラム名です。

プログラムやデータの意味を分かりやすくするためにコメントをつけることができます。

カッコの中に入力した文字や数値は、ncプログラムには読み込まれません。

そのため、メモ代わりにも使用することができます。

例えば、プログラムを変更したとき、次のように元の数値を入力しておくと便利です。

G01 X20. Y0. F200. ;(F100.)

プログラムを元の状態に戻す必要が生じた場合でも、どこを修正したのか分かりやすいので、すぐに復元することができます。

 

 

ncプログラムのサンプルMコード編!実践してみよう

Mコードは、補助機能と呼ばれており、アドレスMと数値を組み合わせて表されます。

主にプログラムの停止や切削油のオンオフなど、加工を行うための制御指令に使用されます。

それでは、どのようにMコードが使われるのか見てみましょう。

 

よく使われるMコード一覧

標準的なMコードはM00~M99まで約80個あります。しかし、Gコードと同じようにその全てを使用するわけではありません。

よく使用するMコードをご紹介します。Mコードも機械メーカーによって内容が異なりますので、一例としてご覧ください。

M00 プログラム停止
M01 オプショナルストップ
M03 主軸正回転起動
M04 主軸逆回転起動
M05 主軸回転停止
M06 工具交換
M08 切削油吐出
M09 切削油吐出停止
M10 クランプ1
M11 アンクランプ1
M30 エンドオブデータ

Mコードは、プログラム1行に対して1つのみ入力することが出来ます。

 

穴加工のサンプルプログラムをご紹介!

GコードとMコードを使ってどのようなncプログラムが作成できるのかサンプルをご紹介します。次のサンプルは穴加工のプログラムです。

O1000 ;
T1 ;
M6 ;
N10 (SAMPLE) ;
G0 G90 X0 Y0 ;
G43 Z100. ;
S1000 M3 H10 ;
G81 Z-2. R3. F100 ;
G80 ;
G91 G28 Z0 M5 ;
T2 ;
M6 ;

難しそうに見えますが、全体の工程が分かると内容が理解しやすくなります。

  1. 工具交換
  2. 加工開始位置に移動
  3. 加工開始
  4. 終了、または工具交換

これらの手順を加工工程が終わるまで繰り返します。

それでは、先程のサンプルがどのような意味なのか見てみましょう。

O1000;
プログラム番号1000
T1 ;  
1番の工具呼び出し
M6 ; 
工具交換
N10 (SAMPLE) ;
シーケンス番号10とコメントSAMPLE
G0 G90 X0 Y0 ;
早送りで、絶対値で、座標X0.Y0.に移動
G43 Z100.  ;
工具長補正で、Z100.でセット
S1000 M3 H10;
主軸を1分間に1000回転で、右回りで、工具長番号はH10で
G81 Z-2. R3. F100 ;
穴をR3からZ-2.まで、1分間に100mmの速さで加工して、
G80 ;
固定サイクルをキャンセル
G91 G28 Z0 M5 ;
相対値で、Z原点復帰して、主軸の回転を停止
T2 ;
2番の工具を呼び出し
M6 ;
工具交換

ncプログラムを細分化して、一つ一つの意味を見ていくと、分かりやすいですね。

ncプログラムを一から作成するのは難しいと感じても、基礎が理解できれば、プログラムの間違いを修正することもできます。

 

ncプログラムはメーカー主催の研修でも学べる

何度もnc旋盤を操作していれば、あなたもncプログラムの技術を習得できるはずです。

自宅で学習したいのであれば、テキストやフリーソフトを使って、技術を向上させることができます。

さらにレベルアップしたいんだけど、どうやって勉強したらいい?

ncプログラムの技術を習得したいのであれば、各メーカーが主催しているセミナーに参加してみましょう。

例えば、ファナックでも有料ですが研修を開催しています。

ただし、研修場所は山梨と愛知に限定されています。

遠くて参加できないという場合は、Webでも受講することができます。

ファナックの研修には次の3つのスタイルがあります。

  • 対面式の「アカデミ」講習会
  • Webで講義をライブ配信する「ライブセミナ」
  • パソコンから動画を視聴する「オンデマンドセミナ」

一般的にファナックの機械を導入している企業が多いので、ファナックのncプログラムを覚えておくと応用が利くので役立ちます。

 

 

まとめ

  • ncプログラムとはnc工作機械をどのように動作させるか、記号と数値を組み合わせて記したもの
  • ワードとはアドレス(アルファベット)とデータ(数値)を組み合わせたもの
  • ブロックとは行の始まりから終わりまでのこと
  • Gコードは準備機能と呼ばれており、工作物の位置決めや主軸移動など、加工に関する命令に使用される
  • Mコードは補助機能と呼ばれており、プログラムの停止や切削油のオンオフなど、加工を行うための制御指令に使用される
  • ncプログラムはテキストやフリーソフトを使って自宅でも勉強できる
  • ncプログラムはメーカーが主催している研修でも学べる

ncプログラムは難しいと感じていたあなたも、サンプル付きで学べば基礎が理解できたのではないでしょうか。

この記事では、ファナック社製nc旋盤のサンプルをご紹介しましたが、ここまで理解できれば、他の機械でも応用できるでしょう。

サンプルを参考にしながらncプログラムへの理解を深めて、さらに勉強すれば、一からプログラムを組むこともできます。

実践プログラムにも是非挑戦してみてくださいね!

コメント

タイトルとURLをコピーしました