一、NC程序的常用G代码
1.直线插补(G0/G1)
快速运行G0用于:
● 刀具快速定位
● 工件绕行
● 逼近换刀点
● 退刀
句法:
G0 X… Y… Z…
G0 AP=…
G0 RP=…
RTLIOF
RTLION
含义:
G0:激活快速运行的指令
有效性:模态
X... Y... Z...:以直角坐标给定的终点
AP=…: 以极坐标给定的终点,这里指极角
RP=…: 以极坐标给定的终点,这里指极半径
RTLIOF: 非线性插补(每个轨迹轴作为单轴插补)
RTLION: 线性插补(轨迹轴共同插补)
实例:
N10 G90 S400 M3 ;绝对尺寸,主轴顺时针
N20 G0 X25 Z5 ; 回到起始位置
N30 G1 G94 Z0 F1000G1 ; 进刀
N40 G95 Z-7.5 F0.2
N50 X60 Z-35 ; 直线运行
N60 Z-50
N70 G0 X62
N80 G0 X80 Z20 M30 ; 退刀,程序结束
指定速率的直线插补G1:
使用G1 可以让刀具在与轴平行、倾斜的或者在空间里任意摆放的直线方向上运动,可以用线性插补功能加工3D 平面,槽等。
句法:
G1 X… Y… Z … F…
G1 AP=… RP=… F…
含义:
G1:线性插补(带进给率的线性插补),模态有效
X... Y... Z...: 以直角坐标给定的终点
AP=…: 以极坐标给定的终点,这里指极角
RP=…: 以极坐标给定的终点,这里指极半径
F...: 单位为毫米/分钟的进给速度,刀具以进给率F 从当前起点向编程的目标点直线运行,可以在直角坐标或者极坐标中给出目标点,工件在这个轨迹上进行加工
示例:
G1 G90 G94 X100 Y20 Z30 A40 F100
以进给100 毫米/分钟的进给率逼近XYZ 上的目标点;回转轴A 作为同步轴来处理,以便能同时完成四个运动。
2.圆弧插补(G2/G3)
控制系统提供了一系列不同的方法来编程圆弧运动,由此实际上可以直接变换各种图纸标注尺寸,圆弧运动通过以下几点来描述:
● 以绝对或相对尺寸表示的圆心和终点(标准模式)
● 以直角坐标表示的半径和终点
● 直角坐标中的张角和终点或者给出地址的圆心
● 极坐标,带有极角AP=和极半径RP=
● 中间点和终点
● 终点和起点上的正切方向
句法:
G2/G3 X… Y… Z… I=AC(…) J=AC(…) K=AC(…); 圆心和终点绝对值以工 件零点为基准
G2/G3 X… Y… Z… I… J… K… ; 相对尺寸中的圆心以圆弧起点为基准
G2/G3 X… Y… Z… CR=… ; 以 CR=给定圆弧半径,以直角坐标系X...Y... Z... 给定圆弧终点
G2/G3 X… Y… Z… AR=… ; 以 AR=给定张角,以直角坐标 X...Y... Z...给定终点
G2/G3 I… J… K… AR=… ; 以 AR=给定张角,通过地址 I...J...K... 给定中点
G2/G3 AP=… RP=… ; 极坐标中通过 AP= 给定极角,通过 RP=给定极半径
CIP X… Y… Z… I1=AC(…) J1=AC(…) K1=(AC…) ;地址 I1=, J1=, K1= 下的中间点
CT X… Y… Z… ; 通过起点和终点的圆弧以及起点上的切线方向
含义:
G2:顺时针圆弧插补
G3:逆时针方向的圆弧插补
CIP:通过中间点进行圆弧插补
CT:用切线过渡来定义圆
X Y Z:以直角坐标给定的终点
I J K:以直角坐标 X,Y,Z 给定圆心
CR=:圆弧半径
AR=:张角
AP=:以极坐标给定的终点,这里指极角
RP=:以极坐标给定的终点,这里极半径相当于圆弧半径
I1= J1= K1=:以直角坐标给定的中间点,X,Y,Z 方向
实例:
N10 G0 G90 X133 Y44.48 S800 M3 ; 运行到起点
N20 G17 G1 Z-5 F1000 ; 进刀
N30 G2 X115 Y113.3 I-43 J25.52 ; 用增量尺寸表示的圆弧终点,圆心
N30 G2 X115 Y113.3 I=AC(90) J=AC(70) ; 用绝对尺寸表示的圆弧终点,圆心
N30 G2 X115 Y113.3 CR=-50 ; 圆弧终点,圆弧半径
N30 G2 AR=269.31 I-43 J25.52 ; 用增量尺寸表示的张角,圆心
N30 G2 AR=269.31 X115 Y113.3 ; 张角,圆弧终点
N30 CIP X80 Y120 Z-10 ; 圆弧终点和中间点
I1=IC(-85.35) J1=IC(-35.35) K1=-6 ; 所有三个几何轴的坐标
N40 M30 ; 程序结束
3.主轴的运动
主轴转速(S),主轴旋转方向(M3,M4,M5)
设定主轴转速和旋转方向可使主轴发生旋转偏移,它是切削加工的前提条件。
除了主主轴,机床上还可以配备其它主轴(比如车床可以配置一个副主轴或驱动刀具),通常情况下,机床数据中的主要主轴被视为主主轴,可通过 NC 指令更改该指定。
句法:
S... / S<n>=...
M3 / M<n>=3
M4 / M<n>=4
M5 / M<n>=5
SETMS(<n>)
...
SETMS
S…: 主主轴的转速(单位:转/分钟)
S<n>=...: 主轴<n>转速(单位:转/分钟)
提示:
通过S0=…设定的转速适用于主主轴;
M3: 主主轴顺时针方向旋转
M<n>=3: 主轴<n>顺时针方向旋转
M4: 主主轴逆时针方向旋转
M<n>=4: 主轴<n>逆时针方向旋转
M5: 主主轴停止
M<n>=5: 主轴<n>停止
SETMS(<n>): 主轴<n>应作为主主轴
SETMS: SETMS 不含主轴指定,切换回系统定义的主主轴上
示例:
S1 是主主轴,S2 是第二工作主轴,将从两面对零件进行加工,此时需要划分加工步骤,切断之后,同步装置(S2)拾取工件进行分面加工,为此将适用G95 的主轴S2被定义为主主轴。
N10 S300 M3 ; 转速及旋转方向,用于驱动主轴 = 默认的主主轴
...
N100 SETMS(2) ; S2 现在是主主轴
N110 S400 G95 F… ; 新的主主轴转速
...
N160 SETMS ; 返回到主主轴S1
4.进给控制(G93,G94,G95,F,FGROUP,FL,FGREF)
使用这些指令可以在 NC 程序中为所有参与加工工序的轴设置进给率。
句法:
G93/G94/G95
F...
FGROUP(<轴 1>,<轴 2>,…)
FGREF[<回转轴>]=<参考半径>
FL[<轴>]=<值>
G93:反比时间进给率,单位:rpm
G94:线性进给率,单位:毫米/分钟,英寸/分钟或度/分钟
G95:旋转进给率,单位:毫米/转或英尺/转
G95以主主轴转数为基准(通常为切削主轴或车床上的主主轴)
F...: 参与运行的几何轴的进给速度,G93/G94/G95 设置的单位有效
FGROUP:使用F 编程的进给速度适用于所有在FGROUP 下设定的轴(几何轴/回转轴)
FGREF: 使用FGREF 为每个在FGROUP 下设定的回转轴设置有效半径(<参考半径>)
FL:同步轴/轨迹轴速度限值,通过G94 设置的单位有效
每根轴(通道轴,几何轴或定向轴)可以编程一个FL值
<轴>: 必须使用基准坐标系的轴标识符(通道轴,几何轴)
程序代码 注释
N10 G17 G94 G1 Z0 F500 ; 进刀
N20 X10 Y20 ; 回到起始位置
N25 FGROUP(X, Y) ; X/Y 轴是轨迹轴,Z 是同步轴
N30 G2 X10 Y20 Z-15 I15 J0 F1000 FL[Z]=200 ; 在圆弧轨迹上,进给率为 1000 毫米/分钟,在 Z 轴方向同步运行
...
N100 FL[Z]=$MA_AX_VELO_LIMIT[0,Z] ; 从 MD (MACHINE DATA)中读取速度以便取消极限速度
N110 M30 ; 程序结束
5.位置控制的主轴运动及进给率
主轴的控制:
在某些情况下,需要使得主轴在位置控制模式中运行(言下之意就是主轴一般并不是位置控制模式,而是速度控制模式),例如砂轮、刀盘装卸时候的运行到定位销的位置而进行固定。
句法:
SPCON / SPCON(<n>) / SPCON(<n>,<m>,...)
...
SPCOF / SPCOF(<n>) / SPCOF(<n>,<m>,...)
SPCON: 激活位置控制运行,设定的主轴从转速控制切换到位置控制
SPCON 为模态有效,直至SPCOF 激活
SPCOF: 取消位置控制运行
设定的主轴从位置控制切换到转速控制
<n>: 需要转换运行方式的主轴的编号
未设定主轴编号时,SPCON/SPCOF 生效于主主轴
<n>、<m>...: 在一个程序段中可通过SPCON 或SPCOF 对多个主轴的运行方式进行转换
主轴的定位(SPOS,SPOSA,M19,M70,WAITS)
使用SPOS,SPOSA 或M19 可以将主轴定位在特定的角度,例如在换刀时,例如砂轮、刀盘装卸时候的运行到定位销的位置而进行固定。
句法:
定位主轴:
SPOS=<值> / SPOS[<n>]=<值>
SPOSA=<值> / SPOSA[<n>]=<值>
M19 / M<n>=19
主轴切换到轴运行方式:
M70 / M<n>=70
主轴运行同步:
WAITS / WAITS(<n>,<m>) ; 必须在单独 NC 程序段中编程
用于定位轴/主轴的进给率(FA)
定位轴,如工件运输系统、刀具转塔和中心架,独立于轨迹轴和同步轴运行,因此应给每个定位轴定义单独的进给速度;
句法:
FA[<轴>]=… ;定位轴的进给率
含义:
FA[...]=...:指定定位轴的进给率或指定主轴的定位速度(轴向进给),单位:毫米/分钟或者英寸/分钟或者度/分钟
<轴>: 轴名称(定位轴或几何轴)
示例:
…….
M1=5
SPCON(1)
SPOS[1]=IC(360) FA[S1]=8000
SPOS[1]=95.7600 FA[S1]=2000
SPCOF(1)
…….
M1=3 S1=30
…..
M17
二、NC程序的插补和同步动作
1.NC程序的插补
除了我们前面介绍的直线插补(G0、G1),圆弧插补(G2、G3)之外,我们还有样条插补( ASPLINE, BSPLINE, CSPLINE )、样条组合插补(样条组合(SPLINEPATH) )、和多项式插补( (POLY, POLYPATH )
样条插补( ASPLINE, BSPLINE,CSPLINE )
无法精确分析描述工件上任意曲线轮廓,因此这种类型的轮廓通过一个限定的支点数近似描述,例如表面数字化,为了建立工件上的数字化表面,支点必须连接到一个轮廓描述,这可以是样条插补。
样条定义一个由 2 阶或 3 阶多项式合并的曲线,可定义样条支点上的特性,取决于使用的样条类型
句法:
ASPLINE X... Y... Z... A... B... C...
BSPLINE X... Y... Z... A... B... C...
CSPLINE X... Y... Z... A... B... C...
样条组合(SPLINEPATH)
使用指令SPLINEPATH 选出样条组合中需要进行插补的轴,样条插补中最多可以有8 个轨迹轴;
句法:
这需要在一个独立的程序段中确定样条组合:
SPLINEPATH(n,X,Y,Z,…)
含义
SPLINEPATH 用于确定样条组合的指令
n =1 (固定值)
XYZ… 样条组合中要插补的轨迹轴名称
示例:
N10 G1 X10 Y20 Z30 A40 B50 F350
N11 SPLINEPATH(1,X,Y,Z) ; 样条组合
N13 CSPLINE X20 Y30 Z40 A50 B60 ; C 样条
N14 X30 Y40 Z50 A60 B70 ; 支点
…
N100 G1 X… Y… ; 取消样条插补
多项式插补 (POLY, POLYPATH)
就本义来说,多项式插补(POLY)并不是一种样条插补,首先它是用作编程外部生成的样条曲线的接口,在此,样条区段可以直接编程。
2.同步动作
什么是同步?是指在机床代码执行过程中实时对某一个状态是否变化的监控行为;
什么是动作?是对某一个实时事件作出的反应;
因此同步动作提供可以同步执行处理程序段的可能性。动作的执行时间可以通过各个条件定义,这些条件在插补节拍中得以监控。
一个同步动作在程序段中是单独的,并且从机床功能的下一个可执行程序段起生效(例如带有G0, G1, G2, G3 的运动)。
同步动作最多多达5 个具有不同任务的指令单元组成:
句法:
DO <动作1> <动作2> …
<关键字> <条件> DO <动作1> <动作2> …
ID=<n> <关键字> <条件> DO <动作1> <动作2> …
IDS=<n> <关键字> <条件> DO <动作1> <动作2> …
DO 触发编程动作的指令,仅在满足 <条件> 时有效(如果已编程)。
<关键字> 通过关键字(WHEN, WHENEVER, FROM 或者 EVERY),定义一个同步动作 <条件> 的循环检查。
<条件> 主运行变量的链接逻辑
ID=<n>
或
IDS=<n>
CANCEL(<n>) 删除同步动作,如果存在对应的同步好
ID与IDS的区别:
ID=<n> ... 同步动作在下列 模态 程序段中有效且可通过 CANCEL(<n>) 关闭,或者通过编程一个带有相同 ID 的新同步动作来覆盖,M30 程序段中有效的同步动作延迟程序结束,ID-同步动作仅在自动运行方式中有效。ID=2 EVERY $A_IN[1]==1 DO POS[X]=0
值范围 <n>: 1 ... 255
IDS=<n> 静态同步动作在所有工作方式中模态有效,它们也可通过程序结束保持有效并能够直接在上电后用一个 ASUP 激活, 因此可以激活动作,它们与NC 中所选择的运行方式无关,直接运行;
值范围 <n>: 1 ... 255
IDS=1 EVERY $A_IN[1]==1 DO POS[X]=100
没有模态-ID 同步动作仅在自动运行方式中有效
WHEN $A_IN[3]==TRUE DO $A_OUTA[4]=10
关键字:条件循环检查(WHEN, WHENEVER, FROM, EVERY)
没有关键字动作执行不受条件制约,在每个插补节拍循环执行动作
WHEN 在每个插补节拍中对条件进行查询,直到该条件被满足时为止,然后将相应的动作准确执行一次;
WHENEVER 在每个插补节拍中对条件进行循环检查,只要条件被满足,就在每个插补节拍中执行相应的动作;
FROM 在每个插补节拍中对条件进行检查,直到条件满足时为止,然后就执行动作,同步动作激活时间有多久,该动作就会执行多久,也就是说,即使条件不再满足时,也会执行继续执行该动作。
EVERY 在每个插补节拍中对条件进行查询,只有当条件满足后,才执行一次动作,脉冲沿控制:当条件从状态 FALSE 变成 TRUE 时,就会再次执行动作。
示例 1: 没有关键字
DO $A_OUTA[1]=$AA_IN[X] ; 发送实际值到模拟输出端。
示例 2: WHENEVER
ID=1 WHENEVER ($AA_IM[Y]>30) AND ($AA_IM[Y]<40)
DO $AA_OVR[S1]=80
示例 3: EVERY
ID=1 EVERY $AA_IM[B]>75 DO POS[U]=IC(10) FA[U]=900
当 MKS 中轴 B 的实际值总是超过值 75 时,U 轴应以最大轴向进给量 10 继续定位;
示例 4: WHEN
WHEN R98==0 DO $R16=0 $R17=0
三、轴耦合
什么是轴的耦合?
当一个已定义的引导轴运动时,指定给该轴的耦合轴(=跟随轴)会在参照某个耦合系数的情况下,开始运行引导轴所引导的位移。
引导轴和跟随轴共同组成的关系就叫做耦合关系。
1.曲线表(CTAB)
借助曲线图表可以编程两个轴(引导轴和跟随轴)之间的位置关系和速度关系,曲线图表的定义在零件程序中进行。
曲线表替代了机械凸轮,通过实现引导值和跟随值之间的函数关联曲线表构成了轴向引导值耦合的基础,在相应的编程中,控制系统从相互所属的引导轴和跟随轴的位置中计算出一个与凸轮相应的多项式。
定义曲线图表(CTABDEF, CATBEND)
一个曲线表所描述的是一个零件程序或者一个零件程序段,其特点是前面插入CTABDEF 且使用指令 CTABEND 结束。
在该程序段范围内,通过运动指令将引导轴的各个位置一一指定给跟随轴的位置,这些跟随值位置用来作为计算曲线的节点,曲线的形式至多为 5 阶多项式。
句法:
CTABDEF(<跟随轴>,<引导轴>,<n>,<周期性>[,<存储地点>])
...
CTABEND
CTABDEF ( ) 曲线图表定义的开始
CTABEND 曲线图表定义的结束
<跟随轴> 需要通过曲线图表计算其运行的轴
<引导轴> 提供引导值以计算跟随轴运行的轴
<n> 曲线图表的编号(ID)曲线图表的编号是唯一的,和存储地点无关。 在静态和动态 NC存储器中不能出现带有相同编号的图表。
<周期性> 图表周期性
0 图表不具有周期性,即使是回转轴也只执行一次
1 引导轴上图表具有周期性
2 引导轴和跟随轴上,图表具有周期性
<存储地点> "SRAM" 曲线图表保存在静态NC 存储器中
“DRAM” 曲线图表保存在动态NC 存储器中,也可以不指定这个参数,系统自动指定
程序代码:
N100 CTABDEF(Y,X,3,0) ; 开始定义一个带有编号3的非周期性曲线图表
N110 X0 Y0 ;第 1 个运动指令,确定起始值和第1个节点:引导值:0,跟随值:0
N120 X20 Y0 ; 第 2 个节点:引导值: 0…20,跟随值: 起始值…0
N130 X100 Y6 ; 第 3 个节点:引导值: 20…100,跟随值: 0…6
N140 X150 Y6 ; 第 4 个节点:引导值: 100…150,跟随值: 6…6
N150 X180 Y0 ; 第 5 个节点:引导值: 150…180,跟随值: 6…0
N200 CTABEND ; 结束定义
2.电子齿轮(EG)
电子齿轮箱可以控制跟随轴运动,使之按照线性运动偏移与最多与五个引导轴相关联运动。引导轴和跟随轴之间的关联按照每个引导轴通过耦合系数进行定义。
算出的跟随轴运动分量是由单个引导轴运动分量乘各自的耦合系数通过加法构成的。激活一个EG 轴组时,可以使跟随轴在某定义的位置上同步。
一个电子齿轮组可以由零件程序:
● 定义,
● 接通,
● 关闭,
● 删除
电子齿轮的定义(EGDEF)
一副 EG 轴组可以通过跟随轴数据和最少1个最多5个引导轴带各自耦合类型来确定。
句法:
EGDEF(跟随轴,引导轴 1,耦合类型 1,引导轴 2,耦合类型 2,...)
含义:
EGDEF 电子齿轮定义
跟随轴 由引导轴影响的轴
引导轴 n 影响跟随轴的第n轴
耦合类型 n 耦合类型,耦合类型不必对所有引导轴都相同
0 跟随轴受相应引导轴的实际值影响
1 跟随轴受相应引导轴的指定值影响
电子齿轮的开通(EGON)
有3种型式用于接通 EG 轴组;
句法:
EGON(FA,“程序段转换模式”,LA1,Z1,N1,LA2,Z2,N2,...,LA5,Z5,N5)
含义:
FA 跟随轴
程序段转换模式
"NOC" 立即进行程序段转换
"FINE" 在“精确同步运行”时进行程序段转换
"COARSE" 在“近似同步运行”时进行程序段转换
"IPOSTOP" 当额定值同步运行时进行程序段转换
LA1, ... LA5 引导轴
Z1, ... Z5 耦合系数 i 的分子
N1, ... N5 耦合系数 i 的分母
耦合系数 i = 分子 i /分母 i
关闭电子齿轮(EGOFS, EGOFC)
有 3 种型式用于关闭 EG 轴组。
句法:
EGOFS(跟随轴) 关闭电子齿轮,跟随轴制动到停止,此调用删除进给停止;
EGOFS(跟随轴,引导轴 1,…,引导轴 5)指令的这种参数设定允许有选择性地 排除各个引导轴对跟随轴的运动的影响
EGOFC(跟随主轴 1) 关闭电子齿轮。 跟随主轴以关闭时刻有效的转速/速度继续运行, 此调用删除进给停止;
删除电子齿轮箱的定义(EGDEL)
在可以删除电子齿轮箱轴组合的定义之前,必须先将其关闭。
句法
EGDEL(跟随轴) 轴关联的耦合定义被删除。 在到达同时激活的轴关联最大个数之前,又可以EGDEF 重新定义其它的轴关联,此调用删除进刀停止;
实例:
EGDEF(A,C,1)
EGON(A,“FINE”,C,1,0.7)
…..
N40 M1=3 S1=R70
N50 G4 F5
.....
EGOFS(A)
EGDEL(A)
,