ケズリバ(kezuriba.net)/nc/decimal-point/ より印刷
小数点入力:X1000 は 1000 mm か 1 mm か
NC プログラムでは、X100. のように小数点を付けた数は、どの機械でも 100 mm と読まれます。ところが小数点を付けない X1000 は、機械の設定によって 1000 mm にも、1 mm にも、0.1 mm にもなります。他の機械や CAM から持ってきたプログラムで、工具が 1000 倍ずれた所へ動く事故の原因です。このページでは、2 通りの読み方と、アドレスごとの例外をまとめます。
図解:小数点のない X1000 の読み方(同じ物差しで比べる)
.2 通りの読み方:電卓型と標準型
- 電卓型(pocket calculator type):小数点のない数も、そのまま mm・inch・度として読む。
X1000は 1000 mm[1]。 - 標準型:小数点のない数に、最小設定単位(その機械で指令できる一番小さい量)を掛けて読む。最小設定単位には IS-B と IS-C の 2 種類があり、
X1000は IS-B なら 1000 × 0.001 = 1 mm、IS-C なら 1000 × 0.0001 = 0.1 mm[1]。 - FANUC 互換の NC は標準型が基本で、設定で電卓型に切り替えられる機種があります。小数点を付けた数(
X1000.)は、どちらの読み方でも 1000 mm です[1][3]。
どこで決まるか・どう確かめるか
計算:このワードは何 mm・何秒として読まれるか
| ワード | アドレスの種類 | 読まれる値 |
|---|
換算の係数は Siemens の ISO 方言の説明書の表(mm・inch、IS-B・IS-C)によります。どの読み方になっているかは、機械のパラメータ(Siemens の ISO 方言は MD 10884、三菱電機は #1078)で決まります。動かして確かめず、まず画面のパラメータを見るか、機械メーカーに聞いてください。G コードの体系や機種によって、ここに無い例外があります。
アドレスごとの単位(標準型、mm のとき)
小数点のない数 1 が何を表すか。Siemens の ISO 方言の説明書の表をもとにまとめました[1]。この表で読み方が変わるのは X Y Z U V W A B C I J K Q R F のアドレスです。
| アドレス | 標準型 IS-B | 標準型 IS-C | 電卓型 |
|---|---|---|---|
| 直線軸 X Y Z U V W | 0.001 mm | 0.0001 mm | 1 mm |
| 回転軸 A B C | 0.001° | 0.0001° | 1° |
| 円弧の I J K、半径 R、Q | 0.001 mm | 0.0001 mm | 1 mm |
| F(毎分送り) | 1 mm/min | 1 mm/min | 1 mm/min |
| F(毎回転送り) | 0.01 mm/rev | 0.01 mm/rev | 1 mm/rev |
| F(ねじのリード) | 0.01 mm | 0.01 mm | 1 mm |
| ドウェル G04 の X・U | 0.001 秒 | 0.001 秒 | 1 秒 |
inch のときは、直線軸が IS-B で 0.0001 inch、IS-C で 0.00001 inch です[1]。ドウェルの例:G04 X1000 は標準型なら 1 秒、電卓型なら 1000 秒(17 分近く止まる)です[2]。
×小数点が効かないアドレス
三菱電機の説明書は、D H L M N O P S T を「小数点が無効なアドレス」としていて、小数点を付けても小数部を捨てて整数として読みます[3]。番号(N・O・T・H・D)、回数(L)、回転数(S)、M コードなどです。S1000.5 と書いても 1000 になります。
同じ NC の中の例外(ここで間違えやすい)
- ねじ切りの開始角 Q:Haas の G32 の Q は 0.001° 単位の整数で、小数点を付けてはいけません(180° は
Q180000)。一方 Siemens の ISO 方言は小数点を付けてQ180.と書きます[4][2]。同じ「多条ねじの 2 本目」でも、書き方が正反対です。 - G76 の 2 行目の P・Q(ねじ山の高さ・1 回目の切込み):小数点を付けない最小設定単位の整数で書きます(
P1534 Q450は 1.534 mm・0.45 mm)。くわしくは旋盤の複合固定サイクルの G76へ。 - ドウェルの P:
G04 P500の P は小数点を付けない整数(ミリ秒)です。X・U で書くときは小数点を付けてG04 X0.5。 - 三菱電機のねじ切りの F:小数点のない F も、最小単位ではなく mm の整数部として読みます(
F1は 1 mm)[3]。毎回転送りの F と読み方が違います。
図解:多条ねじの開始角 Q(端面から見たところ)
式・変数・マクロの引数
- 式や変数を使った値は、小数点付きとして扱われます。三菱電機は
X123+0を 123 mm と読み、変数の値はすべて小数点付きです[3]。 - 反対に、マクロを呼ぶときの引数は小数点を付けないと最小単位で読まれることがあります。Haas の説明書では、mm の設定で
A1と書くと #1 は 0.001 になります[5]。引数はA1.のように必ず小数点を付けます。くわしくはカスタムマクロ入門の G65へ。
NC ごとの違い
| NC | 小数点のない数 | 気をつけること |
|---|---|---|
| FANUC 互換 | 標準型が基本。設定で電卓型に切り替えられる機種がある | サイクルの P・Q は最小単位の整数 |
| 三菱電機 | #1078 で I 型(最小単位)か II 型(mm)を選ぶ[3] | D H L M N O P S T は小数部を捨てる。ねじ切りの F は mm の整数部として読む |
| Siemens(ISO 方言) | MD 10884 で電卓型か標準型を選ぶ。標準型の係数は IS-B・IS-C[1][2] | 多条ねじの Q は小数点を付ける(Q180.) |
| Haas | 小数点のない引数は最小単位で読む例がある[5] | G32 の Q は小数点を付けない整数(Q180000)[4] |
| LinuxCNC | 小数点のない数も、そのままの値として読む(実質的に電卓型)[6][7] | FANUC 系の小数点なしのプログラムを持ち込むと 1000 倍ずれる |
現場でのチェックリスト
- X・Y・Z・U・W・I・J・K・R には必ず小数点を付けた(
X30ではなくX30.) - F にも小数点を付けた(
F0.2・F150.) - サイクルの P・Q(G76 の 2 行目、G04 P)は、説明書どおり小数点を付けない整数にした
- 多条ねじの Q は、その機械の書き方(小数点あり・なし)に合わせた
- マクロの引数に小数点を付けた(
A1.) - 他の機械・CAM のプログラムを流用するときは、小数点のない数が残っていないか検索した
- 機械の小数点入力の設定(電卓型か標準型か、IS-B か IS-C か)を、パラメータの画面か機械メーカーで確かめた
関連:NC 旋盤プログラム入門(シミュレータで小数点忘れを試せる)・固定サイクル一覧(Q の符号と小数点)・G32 ねじ切り・番号がぶつかるコード
出典
各社の公開資料の要点をケズリバの言葉でまとめたもので、説明書の文章・表は写していません。
- Siemens AG「SINUMERIK 802D sl/840D/840D sl/840Di/840Di sl/810D Programming Manual ISO Milling, 04.2007 Edition(6FC5398-7BP10-0BA0)」 cache.industry.siemens.com
- Siemens AG「SINUMERIK 802D sl/840D/840D sl/840Di/840Di sl/810D Programming Manual ISO Turning, 04.2007 Edition」 cache.industry.siemens.com
- 三菱電機(Mitsubishi Electric)「MITSUBISHI CNC 700/70 Series Programming Manual (Lathe System)(IB-1500057)」 mitsubishielectric.com
- Haas Automation, Inc.「G32 Thread Cutting (Group 01)(旋盤、コード別解説ページ)」 haascnc.com
- Haas Automation, Inc.「Mill Operator's Manual – 13 Macros(オンライン版)」 haascnc.com
- LinuxCNC project「G-code Overview(LinuxCNC Documentation)」 linuxcnc.org
- 米国国立標準技術研究所(NIST)「The NIST RS274NGC Interpreter – Version 3(NISTIR 6556, 2000)」 nvlpubs.nist.gov