続:機械加工の基礎知識
NC旋盤/マシニングセンター
 NC旋盤
★プログラミングの基礎知識
 今までの説明のように,基本操作のコードとXZ座標を数値で入力すれば,決められた形状を加工するためのNCプログラムを作成できます。さらに,繰り返しの操作をする場合やプログラムに汎用性を持たせる場合など,以下の演算機能や条件判断を利用できます。
●変数
 繰り返しの切削や寸法の決定に変数を使います。変数にはいくつかの種類がありますが,右の例は最も一般的なローカル変数の使い方を紹介しています。

■コモン変数とローカル変数
 コモン変数とは,電源をOFFにしても変わらない変数です。V1〜V32までの32個が使えます。設定方法はやや複雑になります。
 ローカル変数は,電源のOFFで消える変数です。任意の英字(O,N,Vを除く)と英数字で組み合わせることができます。(比較式や一部の意味のあるコードと同じ変数名は利用できません。)
【使用例】
 次の例では,変数XFとZFの値を設定し,座標(XF,ZF)まで刃物台を早送りさせます。

N010 XF=60
N011 ZF=100
N012 G00 X XF Z ZF
●演算
 数値や変数の四則演算(たし算(+),ひき算(−),かけ算(*),わり算(/))ができます。座標計算や繰り返し操作の計算に利用します。

■複雑な計算式
 Visual BasicなどのWindows用プログラムでは,括弧を含む計算式や三角関数,へき乗などの計算ができますが,NCプログラムはそれらに対応していません。上記の四則演算だけをうまく利用して様々な計算をしなければなりません。
【使用例@】
 次のような変数の演算ができます。

ZP=ZS+2
XP=XP-2
XP=XP+XA/2
ZP=ZA*2

【使用例A】
 次のように,コード内の設定値に演算を含めることができます。

G00 X XS+4 Z ZS+2
G01 Z ZS-12 F0.3
●ジャンプ(GOTO文)
 GOTO文は,無条件に指定した行番号(シーケンス番号)までジャンプします。右の例のような使用ができますが,下記の条件判断(IF文)と併用するのが一般的です。
【使用例】
 次の例では,刃物台の移動を繰り返します。ただし,このままでは無限ループ(終わりのないプログラム)になるので,実際にはループから抜け出すための何らかのコードが必要になります。

N010 G00 Z200
N011 G00 Z150
N012 GOTO N010
●条件判断(IF文)
 IF文は,数値や変数の大小関係を比較し,その条件を満たした場合に指定した行番号(シーケンス番号)までジャンプします。右の使用例のように,条件式を[ ]でくくります。

■比較式の記述法
 以下の比較式は重要です。使い方を間違えるとNC旋盤が予期しない動きをすることもあります。
  • LT:小さい(Less Than,<)
  • LE:小さいか等しい(Less Than or Equal,<=)
  • EQ:等しい(Equal,=)
  • NE:等しくない(Not Equel)
  • GT:大きい(Greater Than,>)
  • GE:大きいか等しい(Greater Than or Equel,=>)
【使用例】
 次の例では,変数CT(カウント数)が5になるまでN010〜N015までのコードを繰り返します。

N005 CT=1
N010 G00 Z200
N011 G00 Z150
N012 CT=CT+1
N013 IF [CT EQ 5] N020
N014 GOTO N010
N020 M02
●NCプログラムの作成例
 以上の機能を組み合わせると,様々なNCプログラムを作成することができます。以下,円柱の外面を設定した寸法まで削るためのNCプログラムを詳細に解説します。

【参考プログラム】外面切削プログラム

N001 XS=52.5
N002 ZS=12.5
N003 XF=50
N004 ZF=-5
@寸法設定
N010 G00 X190 Z250
N011 T0303
N012 M42S700
N013 G00 X XS+2 Z ZS+2
N014 M03
N015 M08
A工具設定,主軸回転
N020 XP=XS
N021 G01 X XP Z ZS F0.2
N022 G01 Z ZF
N023 G00 X XP+1
N024 G00 Z ZS
N025 XP=XP-1.0
N026 IF [XP LE XF+0.1] N030
N027 GOTO N021
B荒削り
N030 S800
N031 G01 X XF
N032 G01 Z ZF F0.05
N033 G00 X XF+1
N034 G00 Z ZS
C仕上げ削り
N040 S500
N041 M09
N042 M05
N043 G00 X190 Z 250
N044 M02
D終了処理

デモンストレーションビデオ(MPEG,2.7MB)
@寸法設定(N001〜N004)
 右図のように,切削開始位置の座標XS,ZSと切削終了位置(仕上げ位置)の座標XF,ZFを設定します。

A工具設定,主軸回転(N010〜N015)

 工具交換が可能な位置に刃物台を移動し(N010),工具を片刃バイトに交換します(N011)。主軸を高速レンジとし,回転数を設定します(N012)。刃物台を切削開始寸法からわずかに離れた位置まで移動させます(N013)。主軸を回転させ(N014),切削油を出します(N015)。

B荒削り(N020〜N027)
 X軸方向の切削位置XPを初期位置XSに設定します(N020)。刃物台を切削開始位置XP,ZSまで移動します(N021)。刃物台をZ軸方向に動かし,切削します(N022)。刃先を逃がして(N023),Z軸の初期位置まで早送りをします(N024)。X軸方向の切削位置XPから切り込み(直径)を引きます(N025)。その計算結果が0.1 mm小さいか,等しければ仕上げ削り(N030)へと進みます。
 計算結果が0.1mmより大きい場合は,N027のGOTO文によって,その計算結果を踏まえて同様の切削を繰り返します。

C仕上げ削り(N030〜N034)
 仕上げ加工用の回転数に設定し(N030),X軸を仕上げ寸法XFまで移動します(N031)。仕上げ加工用の送り速度でZ軸方向に切削します(N032)。刃先を逃がして(N033),Z軸の初期位置まで早送りをします(N034)。

D終了処理(N040〜N044)
 回転数を通常の状態に戻し(N040),切削油を止め(N041),主軸を停止します(N042)。刃物台を離して(N043),プログラムを終了します(N044)。
PREVIOUS NEXT
[NC/MC TOP] [Koichi Hirata HOME] [NMRI HOME]
Contact: khirata@nmri.go.jp