NC言語(Numerical Control 言語)は、コンピュータ数値制御(CNC)機械に使用されるプログラミング言語です。主に金属加工、木工、プラスチック加工などの分野で使われ、工作機械の動きを制御します。以下にNC言語の基本的な構造といくつかの具体的な例を紹介します。
NC言語の基本構造
NC言語は通常、GコードとMコードの組み合わせで構成されています。
-
Gコード(Geometric Code):
- 機械の動きを指示するコード。
- 例えば、直線運動、円弧運動、工具の位置決めなど。
-
Mコード(Miscellaneous Code):
- 機械の補助機能を制御するコード。
- 例えば、スピンドルの開始・停止、クーラントのオン・オフなど。
主なGコード
- G00: 迅速位置決め(Rapid positioning)
- G01: 直線補間(Linear interpolation)
- G02: 時計回りの円弧補間(Circular interpolation, clockwise)
- G03: 反時計回りの円弧補間(Circular interpolation, counterclockwise)
- G04: ドウェル(Dwell)
- G17: XY平面の選択(Selection of XY plane)
- G20: インチ単位の設定(Setting to inches)
- G21: ミリメートル単位の設定(Setting to millimeters)
- G28: リファレンスポイントの帰還(Return to reference point)
- G90: 絶対座標指定(Absolute positioning)
- G91: 増分座標指定(Incremental positioning)
主なMコード
- M00: プログラムの停止(Program stop)
- M01: オプションの停止(Optional stop)
- M02: プログラムの終了(Program end)
- M03: スピンドルの時計回り(Spindle on, clockwise)
- M04: スピンドルの反時計回り(Spindle on, counterclockwise)
- M05: スピンドルの停止(Spindle stop)
- M06: ツールチェンジ(Tool change)
- M08: クーラントオン(Coolant on)
- M09: クーラントオフ(Coolant off)
基本的なNCプログラムの例
以下は、簡単な穴あけ加工を行うNCプログラムの例です。
%
O0001
G21 ; ミリメートル単位の設定
G17 ; XY平面の選択
G90 ; 絶対座標指定
; スピンドルの起動
M06 T01 ; ツール1の選択
M03 S1500 ; スピンドルの時計回り回転、回転数1500
; 穴あけ加工
G00 X0 Y0 ; 迅速位置決め
G01 Z-5 F200; 穴を開ける、送り速度200
G00 Z5 ; ツールを上げる
G00 X20 Y0 ; 次の位置に迅速移動
G01 Z-5 F200; 穴を開ける、送り速度200
G00 Z5 ; ツールを上げる
G00 X40 Y0 ; 次の位置に迅速移動
G01 Z-5 F200; 穴を開ける、送り速度200
G00 Z5 ; ツールを上げる
; スピンドルの停止
M05 ; スピンドル停止
M30 ; プログラムの終了とリセット
%
このプログラムの説明
- G21: ミリメートル単位を使用。
- G17: XY平面を選択。
- G90: 絶対座標指定を使用。
- M06 T01: ツール1を選択。
- M03 S1500: スピンドルを時計回りに回転、回転数は1500。
- G00 X0 Y0: 迅速位置決めで原点に移動。
- G01 Z-5 F200: 送り速度200でZ軸を-5まで直線運動(穴あけ)。
- G00 Z5: Z軸を5まで迅速位置決めで上げる。
- 同様に、次の位置(X20 Y0、X40 Y0)で穴あけを繰り返す。
- M05: スピンドル停止。
- M30: プログラム終了とリセット。
NC言語は、CNC機械を正確に制御するために非常に重要な役割を果たします。この基本的な理解を元に、より複雑な加工やプログラムの作成に進んでいくことができます。他にも質問があれば、いつでも聞いてくださいね。
具体的なプログラム
直径200mmで長さが100mmある鉄の丸棒をCNC旋盤で加工します
直径が150mmになるように切削加工、長さは60mm
次に先端が直径130mmで長さが10mmにしてそこから20mmまでを斜めに削る
というプログラムを組む場合はこうなる
%
O0001
G21 ; ミリメートル単位の設定
G18 ; XZ平面の選択
G90 ; 絶対座標指定
; 初期設定
G00 X0 Z0 ; 原点に移動
; 1. 直径を200mmから150mmに削る(長さ60mm)
M03 S1000 ; スピンドルの時計回り回転、回転数1000
G00 X200 Z0 ; 迅速位置決めで開始位置へ
G01 X150 Z-60 F200; 直線運動でX150 Z-60まで削る
; 2. 直径130mmの部分を作る(長さ10mm)
G00 X150 Z-60 ; 開始位置へ迅速移動
G01 X130 Z-70 F200; 直線運動でX130 Z-70まで削る
; 3. 直径130mmから150mmまでの斜め部分を削る(長さ20mm)
G00 X130 Z-70 ; 開始位置へ迅速移動
G01 X150 Z-90 F200; 直線運動でX150 Z-90まで削る
; 4. 長さ50mmのところで切り落とす
G00 X150 Z-50 ; 切り落とし位置へ迅速移動
M05 ; スピンドル停止
M00 ; オペレータによる確認待ち(オプション)
; 切断
M03 S1000 ; スピンドル再開
G01 X0 Z-50 F200 ; X0まで切断
; プログラム終了
M05 ; スピンドル停止
G00 X0 Z0 ; 原点に迅速移動
M30 ; プログラム終了とリセット
%
プログラムの説明
- G21: ミリメートル単位を使用。
- G18: XZ平面を選択。
- G90: 絶対座標指定を使用。
- G00 X0 Z0: 原点に迅速移動。
- M03 S1000: スピンドルを時計回りに回転、回転数は1000。
- G00 X200 Z0: 開始位置に迅速移動。
- G01 X150 Z-60 F200: 送り速度200でX150 Z-60まで直線運動(直径を150mmまで削る)。
- G00 X150 Z-60: 開始位置へ迅速移動。
- G01 X130 Z-70 F200: 送り速度200でX130 Z-70まで直線運動(直径を130mmまで削る)。
- G00 X130 Z-70: 開始位置へ迅速移動。
- G01 X150 Z-90 F200: 送り速度200でX150 Z-90まで直線運動(斜めに削る)。
- G00 X150 Z-50: 切り落とし位置へ迅速移動。
- M05: スピンドル停止。
- M00: オペレータによる確認待ち(オプション)。
- M03 S1000: スピンドル再開。
- G01 X0 Z-50 F200: X0まで直線運動で切断。
- M05: スピンドル停止。
- G00 X0 Z0: 原点に迅速移動。
- M30: プログラム終了とリセット。
このプログラムを使用して、CNC旋盤で指定された形状に加工できます。安全に作業を進めるために、プログラム実行前に確認とシミュレーションを行ってください。他にも質問があれば、いつでも聞いてくださいね。