小数点输入:X1000 是 1000 mm 还是 1 mm

在数控程序中,X100. 这样带小数点的数,在任何机床上都读作 100 mm。可是不带小数点的 X1000 ,会随机床的设定,变成 1000 mm、1 mm 或 0.1 mm。这是把其他机床或 CAM 的程序拿来使用时,刀具移动到偏差 1000 倍的位置这类事故的原因。本页汇总两种读法以及各地址的例外。

图解:不带小数点的 X1000 的读法(用同一把尺子比较)

计算器型X1000 → 1000 mm05001000 mm标准型 IS-BX1000 → 1 mm05001000 mm01 mm把 0 附近放大 1000 倍标准型 IS-CX1000 → 0.1 mm05001000 mm01 mm把 0 附近放大 1000 倍
计算器型把不带小数点的数也直接按 mm 读取,X1000 就是 1000 mm。标准型要乘以最小设定单位:IS-B 时 1000 × 0.001 = 1 mm,IS-C 时 1000 × 0.0001 = 0.1 mm。即使是同一个程序,随机床设定的不同,刀具也会移动到相差 1000 倍、10000 倍的位置(此图依据 Siemens ISO 方言说明书中的示例,由 Kezuriba 绘制)。

.两种读法:计算器型与标准型

由什么决定,如何确认

计算:这个字会被读作多少 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 W0.001 mm0.0001 mm1 mm
旋转轴 A B C0.001°0.0001°1°
圆弧的 I J K、半径 R、Q0.001 mm0.0001 mm1 mm
F(每分钟进给)1 mm/min1 mm/min1 mm/min
F(每转进给)0.01 mm/rev0.01 mm/rev1 mm/rev
F(螺纹的导程)0.01 mm0.01 mm1 mm
暂停 G04 的 X、U0.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(从端面看)

2 线螺纹1 转信号的位置=0°0°180°起始角 0° 与 180°Siemens: Q0 Q180.Haas: Q0 Q1800003 线螺纹1 转信号的位置=0°0°120°240°起始角 0°、120°、240°Siemens: Q120. Q240.Haas: Q120000 Q240000
n 线螺纹的第 k 条,把起始角错开 Q = 360 ×(k − 1)÷ n,重复同样的 G32。F 不是螺距而是导程(螺距 × 线数)。Q 的写法因机型而完全相反:Siemens 的 ISO 方言带小数点,以度书写(Q180.),Haas 则以 0.001° 为单位的整数书写(Q180000)。

表达式、变量、宏程序的自变量

各 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 倍

现场检查清单

相关:NC 车床编程入门(可在模拟器中试验忘记小数点)、固定循环一览(Q 的符号与小数点)、G32 螺纹切削、编号冲突的代码

出处

各公司公开资料的要点,由 Kezuriba 用自己的话整理而成,并未抄录说明书中的文字和表格。

  1. 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
  2. Siemens AG“SINUMERIK 802D sl/840D/840D sl/840Di/840Di sl/810D Programming Manual ISO Turning, 04.2007 Edition” cache.industry.siemens.com
  3. 三菱电机(Mitsubishi Electric)「MITSUBISHI CNC 700/70 Series Programming Manual (Lathe System)(IB-1500057)」 mitsubishielectric.com
  4. Haas Automation, Inc.「G32 Thread Cutting (Group 01)(车床,各代码说明页)」 haascnc.com
  5. Haas Automation, Inc.「Mill Operator's Manual – 13 Macros(在线版)」 haascnc.com
  6. LinuxCNC project「G-code Overview(LinuxCNC Documentation)」 linuxcnc.org
  7. 美国国家标准与技术研究院(NIST)「The NIST RS274NGC Interpreter – Version 3(NISTIR 6556, 2000)」 nvlpubs.nist.gov