NCフライス盤のプログラミング


 このページはNCフライス盤プログラミングの基礎について解説したものです。

 この内容は、金工室の機械工作マニュアルに掲載されているものをWeb用に手直ししたものです。印刷形式で出力する場合はPDFファイル(A4で7頁)をご利用下さい。

  • NCプログラミング----------40KB


    もくじ

    1. はじめに
      1. NCプログラミングとは
      2. NCフライス盤(工作機械)を使った加工作業の流れ
    2. NCフライスによる加工
      1. 起動時の原点設定
      2. NCプログラムの概要と入力方法
      3. 加工原点とアプローチカット
    3. 実際のNCプログラム
      1. サンプルプログラム
      2. NC言語の解説
    4. プログラム運転
      1. プログラムのデバッグ
      2. NCプログラム運転
      3. 簡易プログラム運転

    このPAGEについてのご意見は kawai*tech7.sci.nagoya-u.ac.jpまでお願いします。(スパム防止のために@を*で表現しいますので、この部分を書き換えてください)



    はじめに



    NCプログラミングとは

     NCとは数値制御、ニューメリカル・コントロールのことです。
     工作機械をコンピュータを使って動かすことにより、自動化しようというのが大きな目的です。
     今日の超精密加工を行う工作機械は、人間が立ち入れないような厳しい温度管理を必要としているので、完全に自動化することはものづくりの最先端技術の一つでもあります。


     ちなみに、ここでの解説は、他のNCプログラミングにも役に立てればと思い、機種による違いをできる限り避けて最も一般的な命令体系を使ったNCプログラムを考えましたが、NC旋盤では座標の取り方が異なるなど、NC工作機械の種類や、制御装置によって異なってるところもたくさんあるので、ここでは、NCプログラムによって加工する時の考え方や、プログラムの作り方のコツを知っていただければと思います。


     それでは、コンピュータを使ってフライス盤を動かす方法、すなわち「NCプログラミング」について、解説します。

     「NCプログラミング」とは、人間が機械の動きをコンピュータが認識できる命令に置き換え、順序良く並べておき、それをコンピュータが実行します。コンピュータは、NCプログラムに記載された命令を、サーボモーターを動かすなどの一連の動作に置き換えて順次実行し、その結果としてフライス盤のテーブルや主軸が動き、加工が実施される・・・とうわけです。

     このときの命令を順序良く並べる作業のことをNCプログラミングといいます。

     NC工作機械の命令体系・・・これをプログラミング言語といいますが、NC工作機械は「Gコード」と呼ばれる体系をもっています。「Gコード」は機械の座標系をそのままX,Y,Zに続く数値で表し、テーブルを動かすG−−、主軸のON−OFFやプログラムの終端などを表すM−−、テーブルの移動速度を表すF−−、工具の補正データを表すD−−など、アルファベット大文字の1字と数字を組み合わせた単純な構成です。

     コンピュータ・プログラムでは命令の流れを制御する命令体系が付き物ですが、Gコードではスタートとエンドの他にサブルーチンの呼び出しがある程度の、大変シンプルなものです。
     このような単純な命令体系を、自分の加工したい手順どおりに並べていくのは簡単なようで、実は以外に難しいところがあります。加工の手順をどのようにGコードに置き換えるかをよく考えないと、プログラムを作る時間がかかってしまいます。



    NCフライス盤(工作機械)を使った加工作業の流れ

     NC工作機械はプログラムを作ってそれを実行するわけですが、実際にはプログラム運転に至るまで色々な作業があります。
     以下に、NCフライス盤を使って加工するときの手順を示します。

    1、NCフライス盤(NC工作機械)の立ち上げ
      NC工作機械は電源を投入した後、原点設定(機械原点を取る)などの一連の作業が必要です。

    2、プログラムの概要や座標系を決める=加工手順を決める
      例:工具径補正&アップカットを使った荒取り加工の次にダウンカットを使った仕上げ加工を行う
        一個だけなら絶対座標、同じ形状を繰り返す場合は相対座標

    3、プログラムを入力する
      機種によって方法が異なります

    4、バグ(間違い)取り(デバッグ)
      デバッグの方法も機種によって異なることがあります。私たちは主軸にサインペンを銜えて、ダミーの板に加工の経路を描かせることにしています。

    5、工作物を固定
      工作物を取り付けます。機械の稼動領域から加工範囲がはみ出でないよう取り付け位置を考えます。

    6、加工原点を決める
      X,Y、Zの座標を工作物の座標に合わせます。

    7、加工開始
      これでようやくNC加工開始です。最初の加工では、加工速度(Fの値)が適正であるかどうかを確認し、必要に応じて速度のオーバーライド(0〜200%までテーブルの送り速度を手動で変化させることができる)を調整します。

    8、連続運転
      加工速度などの修正を加えた後、長い加工では自動運転を用います。
      帰宅前にプログラム運転を開始させ、翌日登校(出勤)したときに出来上がっている・・・というようなことができます。

    9、寸法確認
      加工が完了したら工作物をテーブルに固定した状態で必ず測定し、間違いがないかを確認します。


    このページの先頭にもどる

    1.NCフライスによる加工



     ここでは一般的なNC加工について説明します。  金工室には日立と新潟のフライス盤がありますが、個々のNC工作機械の使い方についてはそれぞれ異なりますので、機械に付属している説明書をよく読んでください。



    1)起動時の原点設定

     原点設定とは,NC制御装置に機械座標の原点を教えることで、NC工作機械を運転する場合,最初に行う作業です。

     NCフライス盤のテーブルには何らかの形でテーブルが移動した長さを計測する装置が組み込まれています。
     金工室にある日立フライスと新潟フライスはどちらもリニアエンコーダが取り付けてあり、1ミクロンの単位で移動距離を計測しています。これらのリニアエンコダには絶対原点が電気的に読み取れるような工夫がされており、原点設定はこのスケールの絶対原点を読み込む作業となります。

     原点設定によってNC制御装置は機械に特有な各軸の可動範囲限界などを正しく認識します。普通のNCフライス盤はテーブルのX,Y,Zの3軸について原点読み出しを行うようになっています。

     この原点設定についても、メーカーや機種ごとに考え方や操作方法が異なるので注意してください。



    2)NCプログラムの概要と入力方法

     最初に説明したように、NCプログラムは刃物工具と工作物をどのように動かすかを機械に命令するものです。NCプログラムの命令体系は、XYZ座標や移動方法を指示するものと、主軸制御やプログラムの流れを制御するものからなっています。

     NCの命令セットはJIS(日本工業規格)に従っていますが、NC工作機械にはその機械特有の命令があり、メーカーの説明書ではそれらの命令を使うよう指示されています。これらは方言と同じで、他の機械には通用しません。
     機種によっては便利な機能をたくさん持っているものもあり、一般の工場で生産性を上げるのにおおいに貢献していますが、私たちのような教育・研究の場ではできるかぎり標準の機能だけで難しい加工もこなせるようにするよう指導しています。
     この方法は機種が違うとプログラムも変ってしまうという問題を回避できます。もしみなさんが初心者なら、できる限りJISの命令(後で示すNCプログラムは全て標準命令を用いています)でプログラミングすることをおすすめします。

     標準的なGコードが使いこなせるようになったら、機械特有の便利な命令を使ってみましょう。何事も基礎が肝心ということです。

     さて、いよいよ実際のNCプログラムを作ることにしましょう。

    NCプログラムを作るときは後で述べる加工原点とアプローチカットを考慮に入れて加工手順を整理することが大切です。

     少なくとも、通常のフライス加工では荒加工と仕上げ加工の2つに分けられます。このとき、荒削り工程ではアップカットを、仕上げ工程ではダウンカットを採用したいので、加工の順序(ルート)が丁度反対になります。

     サブプログラムのネスティング(入れ子構造)は4重まで許されているのが普通です。サブプログラムを上手く使って工具径補正や工具長補正の値を変えながら同じ軌跡を描くことにより、つまりメインプログラムとサブプログラムの2つのプログラムだけで複雑な荒加工の工程を実行することができます。
     次項で紹介するプログラムは、サブプログラムと工具径補正機能を組み合わせてプログラムの間違い探しも効率よく行えるようにしたものです。荒加工の代表的なテクニックの一つなので、実際のプログラミングの参考にしてください。

    プログラムの入力方法は機械によって異なります。基本的にはそれぞれの機械にプログラム編集機能とモニタ機能が備わっていますので、それぞれの機械に付属している取扱説明書を参照してください。金工室にはNCプログラム作成を支援するソフトウェアもありますが、NC装置に転送する機能がないので、機械の前で,直接手で入力することになります。
    以下、図4−5に示す加工物についてのNCプログラムを例に説明していきます。



    3)加工原点とアプローチカット
          
     NC加工の基準となる座標原点を加工原点とします。  NC加工に入る前の刃物の位置から加工原点までの経路は早送りで移動するので、その間に障害物がないようにします。通常加工原点はプログラムを作りやすい位置に設定します。
      
     加工開始位置(0,0)から加工を始める部分をアプローチカットといいます。
     これは切削の開始場所が製品の仕上がりに影響しないようにするため、特別に他の経路と区別しています。下図はそれらの関係を示したものです。


    このページの先頭にもどる

    2.実際のNCプログラム



    1)サンプルプログラム


     以下からはNCプログラムの実例(図の小判形の穴を加工する)に基づいて説明します。
     このNCプログラムはO1000(メインプログラム)とO1100(サブプログラム)によって構成しており、穴の中央と工作物の上面を加工原点(X,Y,Zとも0.0)としています。


    O1000  (プログラム名:1000、メインプログラム)
    行 番 号 プログラム  動作内容
    N0010 G90 G00 Z50. ;絶対座標系を指示,安全な高さに高速移動
    N0020 X0. Y0. ;加工開始座標へ高速移動
    N0030 Z2. M03 ;加工開始位置の高さまで高速移動後,主軸回転
    N0040 G01 Z−1. F100;1mm切り込み,切削移動速度100mm/min
    N0050 D40 ;工具径補正番号40,実際より大きい径を指定
    N0060 / M98 P1100 ;サブプログラムの呼び出し,キャンセルブロック
    N0070 D30 ;工具径補正番号30、実際より僅かに大きい径
    N0080 / M98 P1100 ;サブプログラムの呼び出し、キャンセルブロック
    N0090 D20 ;工具径補正番号20を指定、実際の工具径を指定
    N0100 M98 P1100 ;サブプログラムの呼び出し
    N0110 G00 Z50. ;安全な高さを確保
    N0120 X0. Y0. ;加工原点に戻る
    N0130 M05 ;主軸回転を停止
    N0140 M02 ;プログラムの終了


    O1100  (プログラム名:1100、サブプログラム)
    行 番 号 プログラム 動作内容
    N0010G41 F100 ;工具径補正(左補正)開始
    N0020G01 X0. Y45. ;スタートアップブロック,アプローチカットも兼ねる
    N0030X−20. Y45. ;直線切削
    N0040G03 X−20. Y−45. R45. ;円弧切削(CCW)
    N0050G01 X20. Y−45.直線切削
    N0060G03 X20. Y45. R45. ;円弧切削(CCW)
    N0070G01 X0. Y45. ;直線切削
    N0080G40 X0. Y0. ;エンドオブブロック,補正終了
    N0090M99 ;サブプログラムの終了

     O1000のN0050からN0080でDの値を変えながら繰り返す部分は、工具径補正値を実際よりも大きく取って正規寸法より小さく加工し、徐々に適正値に近づけていきます。
     そして最後にD20で仕上げ加工とする手順です。
     O1100のN0050からN0080行についてですが、上の行と座標値が一致している軸は省略してもかまいません。
     その時は以下のようになります。

    行 番 号 プログラム 動作内容
    N0040G03 Y−45. R45. ;円弧切削(CCW)
    N0050G01 X20. Y−45. ; 直線切削
    N0060G03 Y45. R45. ;円弧切削(CCW)
    N0070G01 X0. ; 直線切削
    N0080G40 Y0. ;エンドオブブロック,補正終了

     このプログラムでは、荒加工も仕上げ加工もダウンカットを用いました。
     汎用フライス盤の場合、ダウンカットによる荒削りは危険を伴う場合があります。NCフライス盤の送り機構にガタがある場合は、工具経路を逆周りにしてアップカットを使った荒加工のサブプログラムを用意する必要があります。

    (この部分のプログラムと解説の一部に間違いがありました。ご指摘いただいた方に感謝すると共に、間違った記述があったことをお詫びいたします。なお、間違っていた箇所は文字の色を変えておきました。2010年12月7日 河合)


    2)NC言語の解説

     行の最初はプログラム番号です。機種によっては自動的に付けられます。

    N0010
    N0020
    ・・・

    以下に相互に関連のある命令の特徴をあげます。

     それぞれのグループではその命令が一度実施されると次に同じグループの命令が実施されるまでその状態を保持(モーダル指令)します。

    移動グループ
    G00G01G02G03G04
    早送りF値の直線送りCW円弧送りCCW円弧送りドウエル
    * G00以外はFで設定された速度で動きます.Fは一分間の送り速度(mm/min)を表します。
    * 円弧送りはR指定(半径指定)とI,J指定(円弧中心座標指定)があります。
    * X,Y,Zの値は必ず小数点を付けます。一般的には指令された数値をミクロンで認識するので
      小数点を忘れると思わぬ動きとなってしまいます。
    * ドウエルはPで指定した時間(秒)だけテーブルの動きを停止する機能です。

    工具径補正グループ
    G40G41G42
    補正修了左側補正開始右側補正開始
    * プログラムで指令された値が加工寸法となるよう自動的に工具半径分シフトした経路で移動します。
      工具径はDで指定されたデータを参照します.工具径データは別に入力します。
    * 工具径補正は必ずスタートアップブロックとエンドオブブロックを挿入します。
    * スタートアップブロックとエンドオブブロックは直線送り部分に挿入します。
    * 補正量を実際の刃物径より大きくとって荒削り行程とする方法が便利です。

    座標系グループ
    G90G91
    移動座標値を絶対値で指令する移動座標値を相対値で指令する
    * 慣れないうちは絶対座標系を使った方が工具経路を認識しやすく,デバッグが楽になります。
    * 絶対座標系と相対座標系は混在してもかまいません。サブプログラムで相対座標系を使うと同一形状の
      ものの開始位置を変えて加工(コピー)できるので便利です。

    プログラム制御グループ
    M02M98M99
    プログラムの終了Pで指定したサブプログラムを呼び出しサブプログラム終了
    * サブプログラムのネスティングは通常4重まで許されています。
    * 行の先頭に/を入れると、その行を無視することができます。これをキャンセルブロックといいます。
      キャンセルブロック機能は操作盤からON-OFFできます。

    主軸グループ
    M03M05
    主軸回転主軸停止
    * Mに続く数字のゼロを省略してもかまいません。そのときは、M3、あるいはM5となります。

    フライス盤のNCは2.5軸制御といって、XYZの3軸を同時に指令することはできません。XYZのうちの何れか2軸は同時に指令できますが、残りの軸は別の行で指令します。


    このページの先頭にもどる

    3.プログラム運転



     NCプログラムを入力し終わったあと、いきなりプログラム運転はできません。
     はじめにの「NCフライス盤(工作機械)を使った加工作業の流れ」に説明したとおり、プログラムに潜む間違いを取り沿いたり、加工原点を設定するなどの作業を経なければなりません。
     ここではその中の、デバッグをNCプログラム運転で注意しなければならないことを述べます。



    1)プログラムのデバッグ

     作成したプログラムは必ずデバッグ(間違いを直すこと)を行います.この時,主軸にペンを装着して工具経路を描かせることで間違いを発見するといった方法が便利です.
     日立フライス盤のデバッグ手順を示します.(新潟フライス盤は手順が違いますので注意!)

    1.マシンロック(各軸が動かない設定)状態でプログラムを実行し文法エラーをさがす.
    2.Z軸無視(固定)によるドライラン機能(Fで指定した値を用いず,制御盤で指定されて
    いる値を使う)を用いてXYのみの動きを確認する.
    3.ドライラン(Fの値ではなく操作盤で指定した速度)でZ軸も含めた動きを確認する.
    4.主軸にペンを装着して工具経路を描かせ,工具径補正値も含めた総合的な動きを確認する.

    キャンセルブロックをうまく使うとデバッグを効率よく実施できます.サブプログラムを呼ぶ行をキャンセルブロックとする方法が便利です.



    2)NCプログラム運転

    デバッグが終了したら,いよいよ実際の加工に移ります.この時,工作物を固定した後で改めて加工原点と工具径補正などのデータが正しいことを確認します.
     NCプログラム運転を実行するとき、もう一つ注意することとして、加工物の固定工具と刃物経路の干渉の有無があります.特にプログラム運転で早送り(G00)を2軸同時に実施した時,G01の動きと違うので,刃物経路と固定工具の干渉を見落とすことがあります.

    この時のG00の動きを左図に示します.G01の動きは始点と終点を結んだ直線であるのに対し,G00はそれぞれの軸が最大速度で同時に動きます.従ってG00では,初めは45°で移動し,短い方が設定値に達した後に,さらに残った軸が必要な距離だけ移動します.この経路上に固定工具があると,刃物と衝突し,刃物を破損する結果になるので注意してください.

    プログラム運転中に切屑を取り除いたり,刃物に切削油を付けようとする場合は,必ず機械を一時的に停止させます.プログラム中に一時停止を入れたいときはG04(ドウエル)を必要な位置に書きこみます.




    3)簡易プログラム(新潟フライス盤のみ)

     新潟フライス盤のみの機能ですが,わざわざNCのプログラムを作らなくても,定型的な加工ならば機械からの質問に答える形でNC加工が実現できます.フランジの外周に当分配置されたボルト穴,等間隔の穴,円や四角の中ぐりなどの加工は簡易プログラムで間に合います.


    安全のために

     NC運転中はプログラムの間違いや外来雑音によって思わぬ動き(誤動作)をすることがあります.運転中に危険を察知した場合は直ちに緊急停止ボタンを押します.
     緊急停止ボタンが押されると制御装置は全ての軸を急停止させた後,全ての機能を停止します.
     NC運転中の事故に備え,操作に当たっている人は緊急停止ボタンをいつでも押せるような体勢を確保してください.また,NC工作機械が自分の考えていた動きと異なる動きをした場合は直ちに運転を中止し、技術職員に相談してください.


    このページの先頭にもどる