工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Manufacturing Technology >> 産業技術

CNCプログラミングマスター:言語、構造、G/Mコード

学習目標

このユニットを修了すると、以下のことができるようになります:

CNCプログラムは、記述順序で実行される命令をリストします。本を読むように左から右、上から下へ読み進みます。CNCプログラムの1文は独立した行に書かれ、これをブロックと呼びます。ブロックは安全性、予測可能性、可読性を促進する特定の順序で配置されるため、標準的なプログラム構造を守ることが重要です。

ブロックの標準配置順序

上記は単一工具・単一加工の最もシンプルなCNCプログラムです。複数工具を使うプログラムでは、ステップ2〜9を工具ごとに繰り返します。

GコードとMコードの代表的なものは、GコードとMコードセクションの表3と表4に示します。可能であれば暗記することを推奨します。

あらゆる言語と同様、Gコード言語にもルールがあります。例えば、あるコードはモーダルで、ブロック間で変更がなければ繰り返す必要がありません。また、使用方法や場所によって意味が変わるコードもあります。

これらのルールは本章でカバーしていますが、言語のあらゆるニュアンスを学ぶ必要はありません。プログラムを適切にフォーマットし書き出すのは、CAD/CAMソフトウェアのポストプロセッサーの仕事です。

プログラムフォーマット

表1のプログラムは、正方形輪郭の加工と穴あけを行います。

ブロック内容目的
%
O1234
(T1 0.25 END MILL)
G17 G20 G40 G49 G80 G90
プログラム開始
プログラム番号(プログラム名)
オペレーター向け工具説明
安全ブロック:機械を安全モードに設定
プログラム開始
T1 M6
S9200 M3
ツール#1装填
スピンドル9200 RPM、正転(CW)
工具交換
G54
M8
G00 X-0.025 Y-0.275
G43 Z1. H1
Z0.1
G01 Z-0.1 F18.
治具オフセット#1使用
クーラントON
ワーク上方へラピッド移動
安全プレーンへラピッド、工具長オフセット#1使用
送りプレーンへラピッド
切削深度まで直線補間、18 IPM
位置決め
G41 Y0.1 D1 F36.
Y2.025
X2.025
Y-0.025
X-0.025
G40 X-0.4
G00 Z1.
カッター径補正(CDC)左、リードイン、径オフセット#1、36 IPM
直線移動
直線移動
直線移動
直線移動
CDC解除、リードアウト移動
安全プレーンへラピッド
輪郭加工
M5
M9
(T2 0.25 DRILL)
T2 M6
S3820 M3
スピンドルOFF
クーラントOFF
オペレーター向け工具説明
ツール#2装填
スピンドル3820 RPM、正転
工具交換
M8
X1. Y1.
G43 Z1. H2
Z0.25
クーラントON
穴上方へラピッド
安全プレーンへラピッド、工具長オフセット#2
送りプレーンへラピッド
位置決め
G98 G81 Z-0.325 R0.1 F12.
G80
Z1.
ドリル缶サイクル、深度Z-0.325、F12
ドリルサイクル解除
安全プレーンへラピッド
穴あけ
M5
M9
G91 G28 Z0
G91 G28 X0 Y0
G90
M30
%
スピンドルOFF
クーラントOFF
Z軸機械原点復帰
XY機械原点復帰
絶対座標モードにリセット(安全のため)
プログラム先頭にリセット
プログラム終了
プログラム終了

文字アドレスコマンドコード

コマンドブロックは文字アドレスコマンドを用いて機械を制御します。一部は複数回使用され、同一ブロック内のGコードにより意味が変わります。

コードはモーダル(キャンセルまたは変更まで有効)と非モーダル(当該ブロックのみ有効)に分類されます。多くの文字アドレスは論理的に選ばれています(T=工具、S=スピンドル、F=送り速度等)。

代表的な文字アドレスコマンドコードを以下の表にまとめます。

表2:文字アドレスコマンドコード

変数説明定義・用例
AA軸(X軸周り回転軸)の絶対/増分位置A,B,C:第4/5軸回転運動。X,Y,Z軸周りの回転。角度は度、小数点以下3桁精度。
G01 A45.325 B90.
BB軸(Y軸周り回転軸)の絶対/増分位置Aと同じ
CC軸(Z軸周り回転軸)の絶対/増分位置Bと同じ
Dカッター径補正用の直径/半径オフセット定義工具径摩耗・たわみ補正。工具番号と同じ整数(T5→D5)。小数点なし。G41/G42とXY移動(円弧不可)と併用。制御装置はレジスタ値を読み、G41で左、G42で右に工具パスをオフセット。
G01 G41 X2. D1
E旋盤ねじ切り用精密送り速度—
F送り速度定義直線・円弧・ドリルサイクル加工時の送り速度。インチ/分(G94モード)または逆時間(G93モード)。小数点以下3桁精度(タップサイクル用)、小数点必須。
G01 X2. Y0. F30.
G準備関数アドレス望む運動タイプ(高速位置決め、直線送り、円弧送り、固定サイクル等)や使用オフセット値を制御装置に指示。
G02 X2. Y2. I.5 J0.
H工具長オフセット定義;C軸対応増分軸(複合旋盤等)制御装置の工具長オフセット(TLO)レジスタを呼出し。制御装置はTLOと治具オフセットZを合成し、工具が部品基準点に対してどこにあるか把握。整数付き(H1, H2等)、G43、Z座標と併用。
G43 H1 Z2.
IG02/G03円弧コマンド用のX軸方向円弧中心ベクトル;一部固定サイクルでパラメータとしても使用円弧移動(G2/G3)で、円弧始点から円弧中心までのX方向増分距離。一部ドリルサイクルでもオプションパラメータとして使用。
G02 X.5 Y2.500 I0. J0.250
JG02/G03円弧コマンド用のY軸方向円弧中心ベクトル;一部固定サイクルでパラメータとしても使用円弧移動で、始点から中心までのY方向増分距離。一部ドリルサイクルでオプション使用。
G02 X.5 Y2.500 I0. J0.250
KG02/G03円弧コマンド用のZ軸方向円弧中心ベクトル;一部固定サイクルでパラメータとしても使用、Lアドレスと同等円弧移動で、始点から中心までのZ方向増分距離。G17平面ではヘリカル移動のZ増分。一部ドリルサイクルでJとしても使用。
G18 G03 X.3 Z2.500 I0. K0.250
L固定サイクル繰り返し回数;G10使用時の編集対象レジスタ指定固定サイクル繰り返し回数:各位置での固定サイクル繰り返し数を定義。未指定なら1とみなす。Kアドレスが代用されることも。増分位置決め(G91)では等間隔穴をループでプログラム可能。G10用:編集対象レジスタ指定(ワークオフセット、工具径オフセット、工具長オフセット等)。
M雑多機能意味を決める整数と常にセット。1ブロックにMコードは1つのみ。詳細定義は後出。
M08
Nプログラム内行(ブロック)番号;G10使用時のシステムパラメータ番号ブロック番号でプログラム可読性向上。サブプログラムなしのCAD/CAM生成プログラムでは滅多に不要。制御装置メモリを消費するため、3Dプログラムでは通常使用せず。整数5桁まで、小数点なし。テープ開始/終了文字(%)前やコメントのみブロック前には置けない。
N100 T02 M06
Oプログラム名プログラムはプログラム番号で制御装置に格納。Oで始まる整数、小数点なし。
O1234 (Exercise 1)
P各種G/Mコードのパラメータアドレスドウェル(待機)秒数。G4と併用(一部ドリルサイクル内除く)。
G4 P.1
Q缶サイクルでのペック増分ペックドリルサイクルでの1パスあたり増分送り距離。
G83 X2.000 Y2.000 Z-.625 F20. R.2 Q.2 P9.
R円弧半径定義、または缶サイクルでのリトラクト高さ定義円弧は半径RまたはI,J,Kベクトルで定義可能。IJKの方が信頼性高く推奨。ドリルサイクルではリターンプレーンZ値としても使用。
G83 Z-.625 F20. R.2 Q.2 P9.
S回転速度定義(スピンドル速度または面速度、モード依存)スピンドル回転数(RPM)。整数、小数点なし。M03(正転)またはM04(逆転)と常に併用。
S2500 M03
T工具選択工具選択。整数、常にM06(工具交換コード)と併用。
T01 M06
UX軸対応増分軸(主に旋盤グループA制御);一部機種でドウェル時間定義これら制御ではXとUがG90/G91に代わる。これら旋盤ではG90は荒取り固定サイクルアドレスになる。
VY軸対応増分軸2000年代までVアドレスは稀。U,W使用旋盤の多くはY軸なし。ライブツーリング・複合加工の普及でV使用は以前より一般的になりつつある。
WZ軸対応増分軸(主に旋盤グループA制御)これら制御ではZとWがG90/G91に代わる。これら旋盤ではG90は荒取り固定サイクルアドレス。
XX軸の絶対/増分位置X軸座標データ。小数点以下4桁まで許容、末尾ゼロ省略。座標はモーダルなので、変わらない後続ブロックで繰返し不要。
G01 X2.250 F20.
YY軸の絶対/増分位置Y軸座標データ。
G01 Y2.250 F20.
ZZ軸の絶対/増分位置Z軸座標データ。

特殊文字コード定義

よく使用される特殊文字、意味、用法、制限を以下に示します。

GコードとMコード

GコードとMコードがCNCプログラムの大部分を占めます。各クラスの定義と重要コードの具体的意味を以下に示します。

Gコード

Gで始まるコードは、機械を特定の運動タイプに備えるため準備関数と呼ばれます。

表3:主要Gコード

コード説明
G00高速移動(ラピッド)。非切削移動で機械を位置決めする際に使用。
G01指定送り速度での直線補間。
G02時計回り円弧補間。
G03反時計回り円弧補間。
G04ドウェル(停留)。
G28機械原点(ホーム)復帰。
G40カッター径補正(CDC)キャンセル。
G41カッター径補正(CDC)左。
G42カッター径補正(CDC)右。
G43工具長オフセット(TLO)適用。
G54治具オフセット#1。
G55治具オフセット#2。
G56治具オフセット#3。
G57治具オフセット#4。
G58治具オフセット#5。
G59治具オフセット#6。
G80ドリルサイクルキャンセル。
G81シンプルドリルサイクル。
G82ドウェル付きシンプルドリルサイクル。
G83ペックドリルサイクル。
G84タッピングサイクル。
G90絶対座標プログラミングモード。
G91増分座標プログラミングモード。
G98ドリルサイクル復帰:初期点(R点)へ。
G99ドリルサイクル復帰:基準プレーン(前回Z高さ)へ。

Mコード

Mで始まるコードは雑多機能と呼ばれ、クーラントやスピンドル回転方向など機械補助機能を制御します。1ブロックにMコードは1つのみ記述可能。

表4:主要Mコード

コード説明
M00プログラム停止。サイクルスタートボタンで継続。
M01オプショナルストップ。
M02プログラム終了。
M03スピンドル正転(時計回り)。
M04スピンドル逆転(反時計回り)。
M05スピンドル停止。
M06工具交換。
M08クーラントON。
M09クーラントOFF。
M30プログラム終了し、サイクルスタートで再実行可能。

主要Gコード詳細解説

G00 —— 高速移動(ラピッドムーブ)

機械を可能な限り最高速で指定点へ移動させます。座標位置と常に併用し、モーダルです。G01と異なり、軸を直線的に協調動作させません。各軸がそれぞれ最大速度で動き、到達次第停止します。その結果、図1のような運動になります。

G00 X0. Y0.

CNCプログラミングマスター:言語、構造、G/Mコード

図1. G00運動

注意:一部機械のラピッド速度は非常に高速です。オフセットや座標の誤りは、オペレーターが非常停止を押すより速くクラッシュを引き起こします。初回プログラム実行時は機械のラピッドフィードオーバーライドを使用してください。

直線運動はストレートライン運動

Gコードは運動についてのものであり、部品プログラムで最も一般的な運動は直線(リニア)運動です。運動もGコードのモーダル要素の一つです。どの種類の運動を望むかGコードでコントローラーに伝えると、別のGコードで変更を指示するまでその運動タイプを記憶し続けます。

Fワード = 「Feedrate(送り速度)」の「F」
Sワード = 「Spindle Speed(スピンドル速度)」の「S」、単位はRPM。

X, Y, Zによる直線運動指定

G00やG01を指定するだけでは運動は発生しません——単にコントローラーに期待する運動タイプを伝えるだけです。実際の運動には、X, Y, Zワードで目的地を指定する必要があります。例えばワークゼロへ移動するなら:

G00 X0 Y0 Z0
または低速で行くなら
G01 X0 Y0 Z0 F40.

同一ブロックで複数座標を指定すると補間運動(複数軸が同時に動く)になります。コントローラーは各軸を正確な速度比で動かし、カッターが直線的に目的地へ向かい、設定送り速度で移動します。

同一目的地でも座標を複数ブロックに分けると、各ブロックが独立した移動になります:

G00 X0 Y0 (Z一定でX0 Y0へ一括移動)
Z0 (X,Y一定でZ0へ一括移動)

G00とG01はモーダルなので、モード変更時のみ指定すればよいです。

Z軸の考慮

補間移動の概念はZ軸で興味深い問題を提起します。切込み軸(Z)を他軸(X, Y)と協調動作させず、独立して動かす方が良い場合が多々あります。カッターがワークや治具に近づく際の衝突リスクを判断しやすくなるからです。まずX, Yで位置決めし、その後Zで下げる方が、偶然の衝突(クランプ等の突起物に当たる)を避けやすく、安全です。

G02とG03 —— 円弧運動モードの開始

G02またはG03モードが確立されると、円弧は「2つの端点と、両端点から等距離にある中心」で定義されます。端点は容易です。ブロック開始時の現在位置(制御点)が1つ目の端点。もう1つはXYZ座標で指定。中心は、円弧始点から中心への相対オフセットをI, J, Kで指定するのが最も一般的です。

時計回り円弧の例

CNCプログラミングマスター:言語、構造、G/Mコード

図2. 円弧の中心とIJK

この円弧はX0 Y2.で始まり、X2. Y0.で終わります。中心はX0 Y0.。Gコードでは:

G02 (時計回り円弧モード設定)
X2 Y0 I0 J-2.0

半径Rによる中心指定

円の半径を指定するだけで中心を定義することもできます。半径2の円なら:

G02 X2 Y0 R2

G17/G18/G19 —— 平面指定

円弧はG17(XY平面)、G18(XZ平面)、G19(YZ平面)で指定された平面上に存在しなければなりません。G17が機械デフォルトです。

CNCプログラミングマスター:言語、構造、G/Mコード

図3. 平面指定

G40/G41/G42 —— カッター径補正(CDC)

CDCは精密CNC加工の鍵で、工具摩耗・たわみを補正するため、プログラムパスから左(G41)または右(G42)に機械をずらすよう命令します。G40で補正キャンセル。オフセット量はCNC制御装置のDレジスタに入力します。摩耗レジスタは、コントローラーが毎移動時に参照するテーブルのようなものと考えられます。

表5:径オフセットレジスタ

工具径オフセット値
D10.0125
D20.0000
D30.0000
D40.0000
D50.0000
D60.0000

Dレジスタの値は、機械オペレーターが仕上げ寸法を監視し、図面と比較し、差分をレジスタに入力して部品を仕様内に保ちます。ズレがなければゼロ設定。

G01 G41 D1 X1.0 Y.25 F40.

G43 —— 工具長補正

G43は工具長補正を有効化します。常にHコードとZ移動を伴います。Hは読み出す工具長オフセット(TLO)レジスタ、Zは部品基準点を参照した目標高さです。

TLOは制御装置上のテーブルのようなものと考えられます:

表6:ワークオフセット(工具長レジスタ)

工具長レジスタZ
H110.236
H24.7510
H36.9652
H47.6841
H512.4483
H68.2250

TLOは制御装置上のアクティブな治具オフセットと合成され、機械は工具先端が部品基準点に対してどこにあるかを把握します。

G43 H1 Z1.

G54 —— ワークオフセット(治具オフセット#1)

ワークオフセットは、CNC制御装置内のデータレジスタで、機械ホームX, Y, Z位置から部品基準点までの距離を保持します。これらも制御装置上のテーブルのように考えられます:

表7:ワークオフセット

ワークオフセットXYZ
G5414.25676.65970.0000
G550.00000.00000.0000
G560.00000.00000.0000
G570.00000.00000.0000
G580.00000.00000.0000
G590.00000.00000.0000

ヒント:G54は通常最初の加工セットアップに使用。追加オフセットで部品の他面を加工。

X, Y値は機械ホームから部品基準点XYまでの距離。Z値は工具基準点(例:1-2-3ブロック上面)から部品Z基準点までの距離。

G54 X0. Y0.

単元テスト

  1. CNCプログラムの命令リスト構造を説明せよ。
  2. すべてのCNCプログラムは何で始まり、何で終わるか。
  3. 文字アドレスコマンドコードを説明せよ。
  4. 特殊文字コードを3つ挙げよ。
  5. GコードとMコードを説明せよ。
  6. G00 G90 G54 X0 Y0 を説明せよ。
  7. G00 G90 G43 H1 Z1. を説明せよ。
  8. G00とG01の違いは何か。
  9. G02とG03の違いを説明せよ。
  10. FワードとSワードを説明せよ。

産業技術

  1. CNC工具・カッターグラインダーの理解:機能、用途、メリット
  2. マイクロプロセッサプログラミングの基礎
  3. CNC操作実践:ハースミルのセットアップと制御
  4. CNC加工の変数管理:安定した結果を得るための実践的アプローチ
  5. CNCフライス加工精度を極める:精密部品製造のための実証済みステップ
  6. ポートランド、オレゴン州のプレミアムCNC加工・工具製造サービス
  7. 5軸CNC工作機械のクラッシュを防止・管理するための完全ガイド
  8. CNC工作機械の精度・位置決め精度向上:包括的ガイド
  9. CNC工具プリセッター・測定システム:精度と効率を支える必須ガイド
  10. Cプログラム構造の理解:初心者向けガイド
  11. C#プログラム構造の理解:コアコンポーネントと例