GB/T 40328-2021 工业机械电气设备及系统 数控加工程序编程语言
- 名 称:GB/T 40328-2021 工业机械电气设备及系统 数控加工程序编程语言 - 下载地址1
- 下载地址:[下载地址1]
- 提 取 码:
- 浏览次数:3
发表评论
加入收藏夹
错误报告
目录| 新闻评论(共有 0 条评论) |
资料介绍
ICS 25 . 040 . 20 CCS J 07
中 华 人 民 共 和 国 国 家 标 准
GB/T 40328—2021
工业机械电气设备及系统数控加工程序编程语言
Electricalequipmentandsystem ofindustrialmachines— programinglanguageofprocessingproceduresforNCsystem
2021-08-20 发布 2022-03-01 实施
国家市场监督管理总局国家标准化管理委员会
发
布
GB/T 40328—202 1
GB/T 40328—202 1
前 言
本文件按照 GB/T 1 . 1—2020《标准化工作导则 第 1 部分:标准化文件的结构和起草规则》的规定起草。
请注意本文件的某些内容可能涉及专利。 本文件的发布机构不承担识别专利的责任。
本文件由中国机械工业联合会提出。
本文件由全国 自动化系统与集成标准化技术委员会(SAC/TC 159)归口 。
本文件起草单位:国家机床质量监督检验中心、科德数控股份有限公司、滁州尚诺自动化设备有限公司、沈阳中科数控技术股份有限公司、北京计算机技术及应用研究所、深圳众为兴技术股份有限公司、佛山市南海昇和电器有限公司、广东原点智能技术有限公司、青岛海德马克智能装备有限公司、青岛创科源智能装备有限公司、江门市智能装备制造研究院有限公司、佛山市高明基业冷轧钢板有限公司、季华实验室。
本文件主要起草人:黄祖广、陈虎、薛瑞娟、于东、杜瑞芳、尹震宇、高兴业、钱作忠、郑康、曾超峰、王安基、王文浩、张树房、胡可柱、高知国、温志庆、刘国炎。
GB/T 40328—202 1
引 言
本文件是对 GB/T 8870. 1—2012 的扩展,数控系统中支持本文件定义的编程格式与 GB/T 8870. 1 — 2012 定义的编程格式混合编程。
规范工业机械数控中的宏程序和 G代码指令格式,有助于协调系统设计、计算和人机交互需求,从而促进程序编制技术的统一,并且在型号、加工工艺、功能、尺寸和精度等相同分类的数控机床间,使其输入程序具有互换性。
确定一个简单和统一的格式进行数控机床的编程操作。 对于更复杂的机械,则仅对系统有步骤地进一步延伸。
GB/T 40328—202 1
工业机械电气设备及系统
数控加工程序编程语言
1 范围
本文件规定了工业机械电气设备及系统的数控加工程序编程语言中有关宏程序与 G 代码及运动功能块的要求。
本文件适用于工业机械电气设备及系统的数控系统。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。 其中,注 日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 8870 . 1—2012 自动化系统与集成 机床数值控制 程序格式和地址字定义 第 1 部分:
点位、直线运动和轮廓控制系统的数据格式
3 术语和定义
GB/T 8870 . 1—2012 界定的以及下列术语和定义适用于本文件。
3.1
宏程序 macro-program
一种可进行表达式计算和条件跳转的数控系统(NC)程序语言。 由用户编写的专用程序,可用规定的指令作为代号。
3.2
宏变量 macro-variable
宏程序中提供给用户的临时保存数据的变量,可以直接参与运算和 G代码编程。
3.3
表达式 expression
由数字、运算符、数字分组符号(括号)、自 由变量和约束变量等组成,以能求得数值的、有意义的排列方法的组合。
3.4
IF条件跳转 “IF”conditionaljump
一种在当前情况下判断 IF后的表达式是否为真,如为真执行 THEN后接表达式,如不为真不执行THEN后接表达式的宏程序。
3.5
WHILE循环 “WHILE”loop
一种在当前情况下判断 WHILE后接表达式是否为真,如为真执行 DO后接表达式,依次循环直到WHILE后接表达式不为真跳出循环的宏程序。
GB/T 40328—202 1
3.6
内建函数 built-infunction
由语法规定存在的函数,扩充数控系统加工程序的计算能力和人机交互能力。
3.7
系统参数 system parameter
数控系统所设定的具有某些功能的变量。
3.8
弹出式对话框 pop-updialogbox
以弹出对话框的形式显示当前系统提示信息。
3.9
通道 channel
数控设备上一组受控的轴,其在数控系统的控制下协同实现一个工艺过程。
4 宏程序
4 . 1 概述
宏程序是一种可进行表达式计算和条件跳转的 NC 程序语言,包括宏变量、指令及内建函数,通常可以与 G代码混合编程,用来实现有计算和人机交互需求的加工循环和程序测量相关的功能操作。
宏变量是宏程序中提供给用户的保存数据的变量,可直接参与运算及 G代码编程。
4 . 2 宏变量形式
宏变量可以接收赋值,可以参与 G代码编程,还可以参与表达式运算,内建函数参数以及接收内建函数返回值。 宏变量可以采用“=”赋值,数控系统宏变量使用范围如表 1 所示(宏变量使用示例见 A. 1中的示例 1) 。
表 1 数控系统宏变量使用范围
GB/T 40328—202 1
5 宏程序格式
5 . 1 宏程序格式
数控系统宏程序中的表达式,采用“+- */”表示加减乘除,采用“[]”提升运算的优先级;数控系统中内建函数可直接参与表达式计算(见 A. 1 中的示例 2) 。
5 . 2 条件判断与循环跳转
5 . 2 . 1 IF条件跳转
格式:
IF[表达式]THEN
……其他宏程序及 G代码
ENDIF
IF条件跳转中条件可以用表达式描述,此处的表达式是逻辑运算表达式,即其优先级最低的运算为逻辑运算符(见 A. 1 中的示例 3) ,包括:
—GE 大于或等于;
—GT 大于;
—LE 小于或等于;
—LT 小于;
—EQ 等于;
—NE 不等于。
5 . 2 . 2 条件循环 WHILE
格式:
WHILE[表达式]DO
……其他宏程序及 G代码
ENDWHILE
上述语法用来表达当表达式描述的条件成立,循环执行 WHILE 与 ENDWHILE 之间的程序。 此处的表达式是逻辑运算表达式。 注意:WHILE循环指令都是在执行循环体前判断表达式条件(见 A. 1中的示例 4) 。
5 . 2 . 3 跳出循环 BREAK
用于中断 WHILE循环体运行,跳转到 ENDWHILE后面的下一行程序。
格式:
WHILE[表达式]DO
……其他宏程序及 G代码
IF[表达式]THEN
BREAK
END IF
ENDWHILE
GB/T 40328—202 1
5.2.4 跳转指令 GOTO
格式:
GOTO INT_NUM
GOTO其后一定跟随整数,表示跳转到整数标示的程序行号(见 A. 1 中的示例 5) 。
6 宏程序内建函数
6 . 1 概述
数控系统支持宏程序内建函数,以扩充数控系统加工程序的计算能力和人机交互能力。宏程序内建函数的一般形式如下:
函数名[参数 1,参数 2,……,参数 N]
对于有返回值的宏程序内建函数可以参与表达式运算。
用户宏指令表的示例见附录 B。
6 . 2 运算函数
数控系统常用运算函数见表 2 。
表 2 运算函数
运算函数的使用见 A. 1 中示例 6 。
6 . 3 刀具信息访问函数
数控系统提供刀具信息访问函数,主要用于一些安全性确认,寻找可替换刀具以及刀具在线测量计算后将刀具信息写入刀具表,刀具信息访问函数见表 3 。
表 3 刀具信息访问函数
GB/T 40328—202 1
数控系统刀具信息表达见表 4 。
表 4 数控系统刀具信息表
通过程序实例演示访问并改写当前主轴刀具参数(见 A. 1 中的示例 7) 。
6 . 4 系统参数访问函数
数控系统常用系统参数见表 5,数控系统支持通过此类函数访问系统参数。
表 5 系统参数
GB/T 40328—202 1
通过程序实例演示系统参数访问函数(见 A. 1 中的示例 8) 。
6 . 5 坐标系及坐标操作函数
数控系统提供坐标系及坐标操作函数(见表 6),主要用于测头测量程序中动态修改坐标系。
表 6 坐标系及坐标操作函数
GB/T 40328—202 1
表 6 坐标系及坐标操作函数(续)
6 . 6 人机交互函数
6 . 6 . 1 概述
数控系统支持用户在宏程序中,以弹出式对话框的形式和在指定区域显示图片、字符串和参数输入等操作。
6 . 6 . 2 弹出式对话框提示
数控系统主要弹出式对话框提示函数见表 7 。
表 7 弹出式对话框提示
通过程序实例演示弹出式对话框操作程序(见 A. 1 中的示例 9) 。
6 . 6 . 3 屏幕指定区域人机交互操作函数
数控系统屏幕指定区域人机交互操作函数见表 8 。
GB/T 40328—202 1
表 8 屏幕指定区域人机交互操作函数
通过程序实例完成屏幕指定区域人机交互操作(见 A. 1 中的示例 10) 。
6 . 6 . 4 错误信息提示
程序格式:
ERROR["错误信息"]
通过程序实例完成错误信息显示操作(见 A. 1 中的示例 11) 。
6 . 7 文件操作函数(WRFE)
WRFE可以向文件“C:/GNC60/NcPrgData.data”中写入指定的信息,其有 2 种使用方式,分别为:
—WRFE[字 符 串],即 向 文 件 中 写 入 一 个 简 单 字 符 串。 如:WRFE [“Hello”]会 将 字 符 串“Hello”写入到文件中。
—WRFE[字符串,宏变量索引号],其与类型 1 的不同是用户可以将一个宏变量的值写入到文件中。 如果字符串中含有关键字“%f”,那么,在写入时,“%f”会被替换为宏变量索引号所指定的宏变量的值。 如:WRFE[“A%fA”,100], 同时,# 100 的值为 30,则 %f将会被 30 替代,最终将字符串“A30A”写入到文件中。
6 . 8 通道操作函数
CHRUN:向通道发送程序自动运行请求。
格式:
CHRUN[通道号]
如:
N10 CHRUN[2] 向通道 2 发送程序自动运行请求
N20 M30
CHPLD:向通道发送程序选择请求。
格式:
CHPLD[通道号,程序路径]
如:
GB/T 40328—202 1
N10 CHPLD[2, D:/NCProg/Test.NC] 向通道 2 发送程序 D:/NCProg/Test.NC选择请求
N20 M30
CHWT:等待某个通道的自动加工程序执行结束。
格式:
CHWT[通道号]
如:
N10 CHWT[2] 等待 2 通道的自动加工程序执行结束
N20 M30
7 运动控制 G代码指令
7 . 1 运动方式控制
7 . 1 . 1 绝对值编程(G90)、增量值编程(G91)
组别:03,模态代码指令
格式:
G90 绝对值编程
G91 增量值编程
注:G90 和 G91 的定义:
—G90:每个编程坐标轴上的编程值是相对于所选定工件坐标系中的原点;
—G91:每个编程坐标轴上的编程值是相对于前一个位置来说的,该值等于沿编程轴移动的距离。
7 . 1 . 2 每分钟进给(G94)、每转进给(G95)
组别:05,模态代码指令
格式:
G94 F_
G95 S ( n) F_
每分钟进给(默认方式),F_ 定义出每分钟机床轴定位移动的距离
每转进给,S(n)定义每转进给速度计算依据的主轴号,F_ 定义出主轴每旋转一转,机床轴定位移动的距离
7 . 1 . 3 恒表面速度切削启动和取消(G93、G 96、G97)
7. 1 .4 英制编程(G20)、公制编程(G21)
G20、G21 确定当前编程尺寸的表示方式。
组别:06,模态代码指令
格式:
G20 英制编程输入
G21 公制编程输入
7. 1 .5 直径编程(G220)、半径编程(G221)
在 NC车床控制程序中工件横截面通常是圆,所以其尺寸可用两种方法指定:直径和半径,当用直
GB/T 40328—202 1
径指令时,叫做直径编程;当用半径指令时,叫做半径编程。
对于车削系统,直径编程只对 X方向有效,数控系统中通过修改直径、半径编程方式的参数来切换直径、半径编程。
组别:13,模态代码指令
格式:
G220 直径编程
G221 半径编程
通过 G220 和 G221 修改的编程方式,会被 NC记录下来,下次开机的时候,依然有效。
7. 1 .6 极坐标编程(G15、G16)
组别:17,模态代码指令
格式:
G15
G16
7 . 2 运动控制代码指令
关闭极坐标指令编程模式启动极坐标指令编程模式
7.2. 1 快速定位(G00)
组别:01,模态代码指令
格式:
G00 X_ Y_
X_ , Y_:各个逻辑轴终点坐标。
G00 指令使用系统默认速度使刀具快速定位到终点坐标,刀具在程序段开始时加速到预定的速度,而在程序段结束时减速到零,刀具运动轨迹为直线。
7 . 2 . 2 直线切削进给(G01)
组别:01,模态代码指令
格式:
G01 X_ Y_ F_
X_ , Y_:各个逻辑轴终点坐标。
F_:进给速度。
G01 指令使刀具以速度 F按直线轨迹进给到终点坐标。
7.2.3 圆弧切削进给(G02、G03)
组别:01,模态代码指令
格式:
G02/G03 X_ Y_ I_ J_ F_ X-Y平面内圆弧,G17 激活
G02/G03 Z_ X_ K_ I_ F_ Z-X平面内圆弧,G18 激活
G02/G03 Y_ Z_ J_ K_ F_ Y-Z平面内圆弧,G19 激活
I_,J_,K_:在 X, Y, Z方向上,圆弧圆心相对圆弧起点的增量坐标。
X_ , Y_ , Z_:圆弧终点坐标。
F_:进给速度。
G02 是指定绕圆心的顺时针圆弧插补代码指令;G03 是指定绕圆心的逆时针圆弧插补代码指令。圆弧轨迹应位于 G17~G19 定义的平面内。
GB/T 40328—202 1
8 运动控制功能块
8 . 1 概述
运动控制功能块以 GB/T 15969 . 3—2017 规定的功能块概念为基础,随着功能性和接 口 的标准化及在多个平台上执行,建立了编程标准,并在工业领域被广泛支持。 由于封装隐藏了数据,此标准可用于不同结构,适用的控制从集中型到分散型或从集成型到网络型。 它不是为某个应用程序特别设计的,而是可以作为在不同领域中进行定义的基础层。 正因为如此,运动控制功能块对现有和将来的技术都是开放的。
8 . 2 MC_MOVEABSOLUTE(FB)
此功能块命令受控运动到一个指定的绝对位置,功能块参数说明见表 9 。
表 9 功能块 MC_MOVEABSOLUTE参数说明
8 . 3 MC_MOVERELATIVE(FB)
此功能块命令一个受控运动,在执行时该运动指定了相对于轴的实际位置的距离,功能块参数说明见表 10 。
表 10 功能块 MC_MOVERELATIVE参数说明
GB/T 40328—202 1
表 10 功能块 MC_MOVERELATIVE参数说明(续)
8 . 4 MC_MOVEADDITIVE(FB)
此功能块命令一个受控运动,在执行时该运动指定了相对于轴的实际位置的距离,功能块参数说明见表 11 。
表 1 1 功能块 MC_MOVEADDITIVE参数说明
8 . 5 MC_MOVEVELOCITY(FB)
此功能块用来以特定速度命令一个永不终止的受控运动,功能块参数说明见表 12 。
GB/T 40328—202 1
表 12 功能块 MC_MOVEVELOCITY参数说明
8 . 6 MC_HOME(FB)
此功能块的执行引发轴执行“search home”序列,功能块参数说明见表 13 。该序列的详情依赖于加工工艺并可以由轴的参数设置。 “Position”输入用来在探测到参考信号时设置绝对位置。
表 13 功能块 MC_HOME参数说明
8 . 7 MC_READAXISERROR(FB)
此功能块用来描述与功能块无关的普通轴错误,功能块参数说明见表 14 。
GB/T 40328—202 1
表 14 功能块 MC_READAXISERROR参数说明
8 . 8 MC_READPARAMETER(FB)
此功能块返回厂商指定的参数,功能块参数说明见表 15 。
表 15 功能块 MC_READPARAMETER参数说明
8 . 9 MC_WRITEPARAMETER(FB)
此功能块用来修改厂家设定的参数,功能块参数说明见表 16 。
表 16 功能块 MC_WRITEPARAMETER参数说明
GB/T 40328—202 1
附 录 A
(资料性)宏程序示例
A.1 宏程序示例
下面给出了数控系统宏程序的示例。
示例 1 :
数控系统可以接收如下形式的加工程序:
N10 # 1024 = 100
N20 G01 X[ #1024] F1000
上述程序等同于:
N20 G01 X100 F1000
示例 2 :
N10 # 1024 = 100
N15 # 1024 = # 1024+ 100
N20 G01 X[ #1024+100] F1000
上述程序等同于:
N20 G01 X300 F1000
示例 3 :
IF[ # 1100 GE #1101] THEN
G01 X100 F1000
END IF
该段程序表示如果 1100 号宏变量中的数值大于或等于 1101 号宏变量中的数值,才执行 X 方向100 mm 的直线插补运动。
示例 4 :
N10 G91
N15 S500 M03
N20 # 1024 = 0
N30 WHILE[ # 1024 LT 5] DO
N40 G01 Z-10 F100
N50 G01 Z10
N60 # 1024 = # 1024+ 1
N70 G00 X20
N80 ENDWHILE
N90 ……
上述程序表示从当前位置起连续在 X方向 20 mm 等距钻 5 个深度为 10 的孔,如图 A. 1 所示。
GB/T 40328—202 1
图 A.1 用循环程序加工孔阵列(一)
示例 5 :
N10 G91
N15 S500 M03 N20 # 1024 = 0
N30 IF[ # 1024 LT 5] THEN
N40 G01 Z-10 F100
N50 G00 Z10
N60 # 1024 = # 1024+ 1 N70 G00 X20
N80 GOTO 30 无条件跳转到标号为 30 的程序行
N90 ENDIF
程序执行情况如图 A. 2 所示。
图 A.2 用循环程序加工孔阵列(二)
示例 6 :
GB/T 40328—202 1
N112 G90 为快速移动到下一个孔切换为绝对坐标
N114 # 1029 = # 1029+ 1
N120G00 X[ # 1024+ # 1026 *SIN[[ # 1029 *360/#1028] * #1027/180]]
Y[ # 1025+ # 1026 *COS[[ # 1029 *360/#1028] * #1027/180]] 快速移动到圆周上的下一个位置
N130 ENDWHILE M30
程序执行情况如图 A. 3 所示。
图 A.3 用数学函数加工孔阵列
示例 7 :
......
N100 # 430 = 120.66 设置 430 号参数为 120.66
N110 SETTINF[10 , #430] 设置刀具长度为 120.66
......
N200 # 430 = GETTINF[10] 读取刀具长度
......
示例 8 :
SETSYSP["PrbToolSetLY" , #565] 将 # 565 宏变量的值设定到系统参数"PrbToolSetLY"
示例 9 :
N10 OUTDLG["弹出对话框"]
N20 M30
程序的执行情况如图 A. 4 所示。
图 A.4 对话框提示
GB/T 40328—202 1
示例 10 :
……
N110 IMGLD["ms0003 ","C:/gnc60/pic/ms0018.jpg"] N120 DOBEG["请将测量刀具对齐到 目标点表面"]
N130 DOADD["操作完成后按“继续”"]
N140 DOEND
程序执行情况如图 A. 5 所示。
图 A.5 操作提示
……
N180 DIBEG["请输入刀具偏置值 L(注意+/-方向),按“确认”继续"]
N130 DIADD[ "L" ]
N140 DIEND[400]
注:编辑框输入数据后按“确定”按钮才继续运行。程序执行情况如图 A. 6 所示。
图 A.6 操作提示(二)
示例 1 1 :
N10 ERROR["错误信息"]
N20 M30
执行结果如图 A. 7 所示。
GB/T 40328—202 1
图 A.7 消息栏提示
A.2 螺旋线插补(G02 . 8 G03 . 8 、G02 . 8 1 、G03 . 81 )
A.2 . 1 螺旋线插补定义
G02 . 8/G03 . 8 指令进行螺旋线插补。 所有在被激活平面外的轴都可以看作螺旋轴。
G02 . 81 G03 . 81 是在 G02 . 8/G03 . 8 加工完成的基础上,再铣削一圈并返回当前坐标平面的起点坐标位置上。
螺旋线的起始平面由 G17、G18、G19 模态代码定义指出。
组别:01,模态指令
格式:
G02 . 8 X_Y_Z_I_J_K_
G03 . 8 X_Y_Z_I_J_K_
G02 . 81 X_Y_Z_I_J_K_
G03 . 81 X_Y_Z_I_J_K_
X、Y、Z定义:从当前点开始,至终点的螺旋线增量向量定义。
I、J、K定义 :
—X、Y平面:起点至圆心坐标增量由 I, J 指出,螺纹导程由 K 指出;
—Z、X平面:起点至圆心坐标增量由 K, I 指出,螺纹导程由 J 指出;
—Y、Z平面:起点至圆心坐标增量由 J, K 指出,螺纹导程由 I 指出。
A.2 . 2 螺旋线插补示例
X-Y平面(G17), Z轴为螺旋轴,编程如下:
N60 G0X0Y0Z10
N70 G17
N80 G01X10F1000
N90 G02 . 8 Z-50 I-10 K1 F550 Z轴进给到-50 的螺旋线插补
N140 M30
程序执行情况如图 A. 8 所示。
GB/T 40328—202 1
图 A.8 螺旋线插补示例
A.3 极坐标插补(G12 . 1 G13 . 1 )
A.3 . 1 极坐标插补定义
G12 . 1/G13 . 1 指令进行极坐标插补。 极坐标插补是将直角坐标指令下的直线轴的移动(刀具的移动)切换为回转轴的移动(工件回转)的轮廓控制机能。
组别:01,模态指令
格式:
G12 . 1 启动极坐标插补方式(使极坐标插补有效)
G13 . 1 极坐标插补方式取消
A.3 . 2 极坐标插补示例
N100 G12 .1
N110 G91
N120 G03 X-4 . 7068686 C5 . 788078 I-8 . 7579772 J-2 . 3141393 F200
N130 G03 X-48 . 093997 C-3 . 6200269 I-21 . 019039 J-42 . 038078
N140 G03 X7 . 368373 C-11 . 1517277 I4 . 8610707 J-4 . 7982515
N150 G02 X32 . 6234067 C-1 . 43268 I14 . 706585 J-37 . 2663234
N160 G03 X12 . 809086 C10 . 4163566 I4 . 0511086 J8 . 1022173
N170 G13 .1
N180 M30
程序执行情况如图 A. 9 所示。
图 A.9 极坐标插补示例
GB/T 40328—202 1
A.4 离散点双圆弧拟合(G6 . 1 1 、G6 . 12)
A.4 . 1 离散点双圆弧拟合定义
程序按照双圆弧拟合的算法,使得两两离散型值点之间以双圆弧连接。
组别:01,模态指令
格式
G6 . 11 双圆弧拟合开始
G6 . 12 双圆弧拟合结束
代码之间的所有型值点之间通过双圆弧连接。
A.4 . 2 离散点双圆弧拟合示例
N10 G6 . 11 开始双圆弧拟合样条插补
N20 X17 .364820 Y98 .480775
N30 X34 .202016 Y93 .969261
N40 X50 .000002 Y86 .602539
N50 X64 .278762 Y76 .604443
N60 X76 .604445 Y64 .278760
N70 X86 .602541 Y49 .999999
N80 X93 .969262 Y34 .202014
N90 X98 .480775 Y17 .364817
N100 X100 .000000 Y0 .000000
N110 G6 . 12 结束双圆弧拟合样条插补
N120 M30
A.5 样条插补
A.5 . 1 NURBS样条插补(G6 . 2 )
A.5 . 1 . 1 NURBS样条插补定义
NURBS样条是通过一系列控制点来描述的样条曲线,除了首末控制点外所有的控制点都不在样条曲线上。
数控系统支持直接以 NURBS样条来描述路径轨迹,仅支持 XYZ 三轴以内的多次 NURBS 样条,用户应指定样条的进给速度。
数控系统将按照给定进给率在满足精度的前提下按照样条曲线的路径运动,精度通过在机床参数中设置弓高误差来确定。
格式:
G6 . 2 P_ K_ X_Y_Z_ R_ F_
K_X_Y_Z_R_
K_X_Y_Z_R_
K_X_Y_Z_R_
K_X_Y_Z_R_
K1 .
K1 .
GB/T 40328—202 1
K1 .
K1 .
P_:样条曲线次数。
K_:节点值。
X_ , Y_ , Z_:控制点坐标。
R_:控制点对应的权重。
F_:样条的进给速率。
P 的值等于样条的次数加一,例如三次样条,P值需要设置为 4 。在样条程序结尾处,K1 . 按照 P 的值重复,例如 P04,则 K1 . 需要重复 4 次 。
R值如果不写,则默认为 1 。
程序中各参数值的设置需要严格依照 NURBS样条方程,否则系统将无法给出正确的解。
A.5 . 1 . 2 NURBS样条插补示例
N10 G6 .2 P04 K0 .0 X0 Y50 Z0 R1 .F1000
N20 K0 .0 X50 Y50 R1 .
N30 K0 .0 X50 Y0 R1 .
N40 K0 .0 X50 Y-50 R1 .
N50 K.5 X0 Y-50 R1 .
N60 K.5 X-50 Y-50 R1 .
N70 K.5 X-50 Y0 R1 .
N80 K.5 X-50 Y50 R1 .
N90 K.5 X0 Y50 R1 .
N100 K1 .
N110 K1 .
N120 K1 .
N130 K1 .
N140 M02
A.5 . 2 C样条插补(G6 . 3 G6 . 4 )
A.5 . 2 . 1 C样条插补定义
C样条是通过一系列型值点来描述的样条曲线,所有的型值点都在样条曲线上。
数控系统支持通过给定多个坐标点来描述一条 C 样条曲线,这条曲线经过每一个给出的坐标点。系统支持三轴 C样条,用户需要给出进给速度。
用户可以指定首末点的切矢,也可以不给出切矢,在用户没有给出首末点切矢的状态下,系统自定根据给定坐标点来计算出可用的切矢。
格式:
G6 . 3 表示开始 C样条插补
G6 . 4 表示结束 C样条插补
I_J_K_ 用来给出开始和结束点的矢量方向
G6 . 3 和 G6 . 4 之间的坐标点是 C样条所经过的坐标点。
A.5 . 2 . 2 C样条插补示例
N10 G6 . 3 X0Y5Z1 I1J0K0
GB/T 40328—202 1
N20 X1 .913Y4 .619
N30 X3 .535Y3 .535
N40 X4 .619Y1 .913
N50 X5Y0
N60 X4 .619Y-1 .913
N70 X3 .535Y-3 .535
N80 X1 .913Y-4 .619
N90 X0Y-5
N100 X-1 .913Y-4 .619
N110 X-3 .535Y-3 .535
N120 X-4 .619Y-1 .913
N130 X-5Y0
N140 X-4 .619Y1 .913
N150 X-3 .535Y3 .535
N160 X-1 .913Y4 .619
N170 G6 . 4 X0 Y5 I1 J0 K0
N180 M02
A.5 . 3 双 C样条约束(G6 . 3 1 、G6 . 4 1 、G6 . 32 、G6 . 42)
A.5 . 3 . 1 双 C样条约束定义
双 C样条约束是数控系统通过样条技术,来直接确定刀具轨迹和姿态的高级功能,它大大简化用户的编程负担。
第一条样条是刀尖点的样条,第二条样条是刀具上任一点的坐标,不过在程序中的此任一点需要保持不变。
每个样条格式与 C样条格式相同。
此功能使用时需要启动“限速限加速度模块”,在系统参数中设置“限速限加速度模块”为 1 。
格式:
A.5 . 3 . 2 双 C样条约束示例
GB/T 40328—202 1
N100 X1 .913Y4 .619
N110 X3 .535Y3 .535
N120 ……
N130 G6 . 42 X0 Y5 I1 J0 K0
N140 M02
A.5 . 4 五坐标 C样条(G6 . 33 、G6 . 43)
A.5 . 4 . 1 五坐标 C样条定义
数控系统该功能实现对五坐标 C样条的支持。 五坐标包括三个线性轴和两个旋转轴。
组别:27,模态指令
格式:
G6 . 33 五坐标 C样条开始
G6 . 43 五坐标 C样条结束
G6 . 33 和 G6 . 43 之间是机床通过的 C 样条上的型值点。
N10 G6 . 33 X_ Y_ Z_ A_ B_ C_ I_ J_ K_ U_ V_ W_
N20 X_ Y_ Z_ A_ B_ C_
N30 G6 . 43 X_ Y_ Z_ A_ B_ C_ I_ J_ K_ U_ V_ W_
其中,I_ J_ K_是样条首末位置的 XYZ 的切向量,U_ V_ W_是样条首末位置的 A、B、C 的切向量, I_ J_ K_U_ V_ W_无输入时,系统自动计算。
A.5 . 4 . 2 五坐标 C样条示例
N10 G6 .33 X293 .190 Z45 .259 Y-60 .970 A231 .155 C-103 .617
N100 X273 .314 Z28 .626 Y-84 .746 A275 .946 B0 C-118 .950
N110 X270 .466 Z27 .175 Y-92 .434 A276 .960 B0 C-121 .157
GB/T 40328—202 1
N220 X205 . 409 Z16 . 889 Y-183 . 976 A275 . 113 B0 C-149 . 299
N230 X189 . 742 Z15 . 836 Y-196 . 471 A273 . 429 B0 C-154 . 124
N240 X181 . 490 Z15 . 344 Y-202 . 249 A272 . 487 B0 C-156 . 542
N250 X172 . 978 Z14 . 871 Y-207 . 693 A271 . 482 B0 C-158 . 965
N260 X164 . 223 Z14 . 416 Y-212 . 790 A270 . 413 B0 C-161 . 390
N270 X155 . 240 Z13 . 976 Y-217 . 527 A269 . 280 B0 C-163 . 819
N280 X146 . 048 Z13 . 549 Y-221 . 891 A268 . 084 B0 C-166 . 250
N290 X136 . 663 Z13 . 133 Y-225 . 872 A266 . 824 B0 C-168 . 684
N300 X127 . 103 Z12 . 728 Y-229 . 461 A265 . 497 B0 C-171 . 120
N310 X117 . 385 Z12 . 332 Y-232 . 649 A264 . 103 B0 C-173 . 557 N320 X107 . 528 Z11 . 943 Y-235 . 427 A262 . 639 B0 C-175 . 997 N330 X97 . 550 Z11 . 560 Y-237 . 789 A261 . 101 B0 C-178 . 438 N340 X84 . 430 Z11 . 069 Y-240 . 229 A258 . 988 B0 C-181 . 613 N350 G6 . 43 X61 . 304 Z11 . 146 Y-240 . 912 A-40 . 567 C-181 . 613 N360 M02
GB/T 40328—202 1
附 录 B
(资料性)
用户宏指令表
常用的用户宏指令表见表 B. 1 。
表 B.1 用户宏指令表
GB/T 40328—202 1
表 B.1 用户宏指令表(续)

