用户宏程序基础
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#2=#1﹡5 ↓ #2=0
#2=#1+# 1 ↓ #2=0
公共变量名称
• 由SETVN指定设定变量名称,即可读取或写入.指令格式如[#VAR500],必须 以[#公共变量名称]的格式指定.
例:X[#POS1] Y[#POS2] 通过变量名称指令指定位置 [#POS1]=#100+#101 通过变量名称指令 #500=[100+[#POS2]*10]; 通过变量名称指令读取变量
刀具补偿C类型系统变量如下表:
补偿号
刀具长度补偿(R/W)
几何补偿
磨耗补偿
刀具半径补偿(R/W) 几何补偿 磨耗补偿
1
#11001 (#2201) #10001 (#2001) #13001 #12001
….
….
….
….
….
….
….
200 #11200 (#2400) #10200 (#2200) #13200 #12200
不正确的程序报警方式 O8013 IF[#4LE0] GOTO 1001 IF[#11LT2]GOTO1002 IF[#11NE FUP[#11]] GOTO1003 G90 X#24 Y#25 ……… N1001 #3000=101 (孔间距太小) N1002 #3000=102 (两个孔要求的最小值) N1003 #3000=103 (不允许有小数点) M99
在程序中自动设定G54-G59工件零点偏移量
外部工件 原点清零
设定G54 工件原点 偏移量
CNC报警
变量号 #3000
设定范围 0~200
功能 CNC停止运行并报警
• 表达式后为不超过26个字符的报警信息 • 屏幕上显示报警号和报警信息,报警号为#3000的值加上3000 • 报警号和参数6008#1 有关系
单位自动地四舍五入,例如:
#1=12.3456
G01 X#1 F1000
G01 X12.346 F1000
④ 程序号、顺序号和任选程序段跳转号不能使用变量 O#1; N#3 Y200.0; /#2 G00 X10.;
未定义变量
当变量值未定义时,这样的变量成为<空>变量 变量#0、#3100 总是空变量,它不能写只能读,当引用一个未定义的 变量时,地址本身也被忽略。
#1= #2 + 100 ; (小数点可以省略) #1= #2 + #18 SIN[#5] ;
变量的引用
宏变量必须先定义,然后才能在程序中使用,变量定义以后,
在前面加上地址来引用,地址可以是某个大写字母,如F、S、G、M等。 G98
#19=1200
#9=150 (使用之前先定义变量)
…….
G00 G90 G54 X350.0 Y178.34 S#19 M03
不可
不可
日期系统变量的应用
零件加工完成或铸造完成以后,零件表面雕刻或铣削产品的出厂日 期 1)程序中日期的确定,通过系统变量读取 2)日期由数字组成,0-9,通过运算分离出每一位的数字 3)分别对0-9数字编写加工程序 4)对数字进行判断,调用对应的子程序 大体程序结构如下:
参考程序
O0135 N10#500=#3011 N20#1=FI [#500/10000000] IF[#1EQ0]GOTO1 IF[#1EQ1]GOTO2 IF[#1EQ2]GOTO3 IF[#1EQ3]GOTO4 IF[#1EQ4]GOTO5 …… N1M98P1 (0) GOTO13 N2P98P2 (1) GOTO13 N3M98P3 (2) GOTO13 N4M98P4 (3) GOTO13 N5M98P5 (4) GOTO13 N13M30
算数运算 数据存储 逻辑运算 跳转 循环 错误检查 报警产生 输入和输出
宏程序 是什么?
宏程序能做什么:
① 实现特定的插补功能: 如: 椭圆插补 渐开线插补 变速螺纹切削
② 实现特定的机床辅助动作: 如: 换刀 换附件头 多点定向 路径间轴分配 实时参数修订
③ 测量装置:
如:
测头
在不同的程序中意义相同,各宏程序公用。 断电后#100~#199初始化为空, #500~#999数据保存
NO.6031-NO.6032 #500-#999公共变量 写保护
系统变量 可用于读写CNC运行时的各种数据
系统常量 (R)
常量 #0、#3100★ #3101 ★ #3102 ★
常量名称 [#_EMPTY] [#_PI] [#_E]
内容 空值 圆周率π=3.14159265…….. 自然对数e=2.71828182…….
变量的界面
1.按下MDI面板上 的功能键
2.按几次 键, 直至出现【宏 变量】界面
变量的界面 (31i)
3.按 、 显示局部和公共 变量值
变量的赋值
# i = <表达式>
将计算结果赋值 给对应的变量号
常数、变量、函数和 运算符的组合
系统变量名称
• 系统变量(常量)通过变量号指定,也可事先准备系统变量(常量)名称来指定. 它由_(下划线)开始8个英文字母、数字构成.对轴和刀具补偿,作为名称的下 标,可用[n](n为整数),n可用<表达式>即运算格式指定.
第二单元 系统变量
• 接口信号 • 刀具补偿 • 工件零点偏移 • 宏报警 • 时间信息 • 模态信息 • 位置信息
正确的程序报警方式 O8013 IF[#4LE0] GOTO 1001 IF[#11LT2]GOTO1002 IF[#11NE FUP[#11]] GOTO1003 G90 X#24 Y#25 ……… GOTO 9999 N1001 #3000=101 (孔间距太小) N1002 #3000=102 (两个孔要求的最小值) N1003 #3000=103 (不允许有小数点) N9999 M99
接触性传感器
在零件加工的生产线或无人加工车间,程序中必须对零件的关键尺寸进行直接检查与调 整,当刀具磨损或其他原因,期望的尺寸不对,需要进行修正,这时使用检测装置,在线 检测能够解决以上问题。
第一单元 变量的概念
变量的表示
变量符号(#)+ 变量号
例: #10、#100、#1005
表达式也可以用于指定变量号,需封闭在括号中。
• 公共变量名称设定和指令时,可赋值#500~#549,共50个,公共变量8个字符 ,开头必须是字母,断电不消失.
• 例如:SETVN n[AVR500,AVR501,AVR502,…..];变量号n、n+1 、 n+2的 变量名称:各字符串之间以 “, ”隔开.字符除了控制出、控制入、[、EOB
公共变量名称设定格式及界面
当#1=<空>时
G90 X100 Y#1 ↓
G90 X100
当#1=0时
G90 X100 Y#1 ↓
G90 X100 Y0
除了用<空>赋值以外,以下情况<空>与0 相同
当#1=<空>时
#2=#1 ↓ #2=<空>
#2=#1﹡5 ↓ #2=0
#2=#1+#1 ↓ #2=0
当#1=0时
#2=#1 ↓ #2=0
例:
#[#2-1],
#[#500/2]
可在程序段结尾加注释说明变量内容,需用括号封闭。
例: #2=#3-1(TOOL NUMBER);
变量的种类
变量号 #0、#3100 #1~#33
#100~#199 #500~#999
#1000~
变量类型
用
途
空变量
总为空
局部变量 公共变量
只能用在当前宏程序中存储变量,断电后 数据初始化
用户宏程序
目录
第一单元 变量的概念 第二单元 系统变量 第三单元 运算命令 第四单元 控制语句 第五单元 宏程序调用 第六单元 案例
宏程序能做什么? 如何利用宏程序实现一些特定功能? 有些系统无法实现某些功能,可否利用宏程序来实现? 可否利用宏程序来替代某些功能? 其他……
用户宏程序
宏程序? 宏程序是一种零件编程的方法,该方法是在标准CNC手工编程的基础上 附加控制特征,使程序功能更强大、灵活。FANUC宏程序特点如下:
工件零点偏移
#5201-#5324用于工件原点偏移值的系变量,这些系统变量既 可以读取,可以写入。 系统变量如下表:
变量号 #5201~4 #5221~4 #5241~4 #5261~4 #5281~4 #5301~4 #5321~4
工件坐标系 第1轴到第4轴外部工件坐标原点偏移值
第1轴到第4轴G54原点偏移值 第1轴到第4轴G55原点偏移值 第1轴到第4轴G56原点偏移值 第1轴到第4轴G57原点偏移值 第1轴到第4轴G58原点偏移值 第1轴到第4轴G59原点偏移值
G40,G41,G42 G43,G44,G49 G73,G74,G76,G80~G89
G54~G59
变量号
#4107
#4109 #4111 #4113 #4119 #4120 #4130
模态信息
D代码
F代码 H代码 M代码 S代码 T代码 P代码
应用案例-1
O9999; N1 G01 G91 X#21 F300; N2 Y#22; N3 X-#21; N4 Y-#22; M99; O0001; N10 G00 G90 X100.0 Y50.0; N11 G65 P9999 U90.0 V120.0; N12 X200.0 Y100.0; M30;
时间信息
变量号 单位
功能
#3001 毫秒 计时器,电源接通时复位为0。
#3002
小时
计时器,循环启动灯亮时开始计 时。即使在断电时也保存该值
#3011 #3012
年月日 读取当前的日期。 1999年12月31日 19991231
时分秒 读取当前的时间。 下午3点34分56秒 153456
赋值 可以 可以
接口信号
在自动对刀、自动检测(工件)等机床功能的宏程序中,常用 到接口信号、位置信息、刀具补偿、宏报警相关的系统变量。 接口信号是指PMC和用户宏程序之间的交换信号:
.
.
刀具补偿
在零件加工程序中,尤其是在机床在线测量中,各种偏置变量 的当前值在变化,因此在程序中需要实时对刀具补偿值进行修 正,可以通过系统变量在宏程序中来实现。
(可变的主轴转速)
G43 Z25.0 H03 M08
G01 Z-15.0 F200.0 (固定的进给速度)
X425.0 F#9
(可变的进给速度)
Baidu Nhomakorabea
引用宏变量注意事项: ① 小数点的使用
宏程序中定义的变量值,例如位置、距离、速度。可以不采用小数点输入, 和NO.3401 #0 设置没有关系,例如:
NO.3401 #0=0 标准型小数点输入
参考程序 O0001 (NO.1) 数字1加工程序 N10 G54 G17 G80 G90 …… M99
模态信息
变量号
#4001
#4002 #4003 #4007 #4008 #4009 #4014
模态信息 G00,G01,G02,G03,G33,
G60,G75,G77~G79
G17,G18,G19 G90,G91
#500=1000 G01 X#1000 F200
G01 X1000.0 F200
② 变量的符号 变量值可以是正值或负值,例如 #24=22.7;#33=-15.6 宏程序使用的变量可以取反,例如: G0 X-#24 G0 Y-#33 G0 X#24 G0 Y#25
③ 最小设定单位
把变量用于地址数据的时候,被引用变量的值根据地址的最小设定
例: #3000=1 (WRONG DATA INPUT);
屏幕显示: 3001 WRONG DATA INPUT
以下两种情况: 参数MCA(No.6008#1)=0时 #3000 = n (ALARM MESSAGE) ; ( n: 0~200 ) 将3000 与变量#3000 的值相加的报警号和报警信息一 起在画面上显示出来。 (例) #3000=1 (ALARM MESSAGE); →报警画面上显示出“3001 ALARM MESSAGE”。 参数MCA(No.6008#1)=1时 #3000 = n (ALARM MESSAGE) ; ( n: 0~4095 ) 继MC 后,画面上显示出#3000 报警号和报警信息。 (例) #3000=1 (ALARM MESSAGE); →报警画面上显示出“MC0001 ALARM MESSAGE”。
201 #11201
#10201
#13201 #13201
….
….
….
….
….
400 #11400
#10400
#13400 #12400
手动刀具长度测量
操作步骤
O9999 IF[#4111 EQ 0]GOTO 9;
#1= #5043; G00 G90 G43 Z50.0; M00; #[11000+#4111]= #5043; G00 G49 Z#1; M30; N9 #3000=9(OFFSET # ERROR);
#2=#1+# 1 ↓ #2=0
公共变量名称
• 由SETVN指定设定变量名称,即可读取或写入.指令格式如[#VAR500],必须 以[#公共变量名称]的格式指定.
例:X[#POS1] Y[#POS2] 通过变量名称指令指定位置 [#POS1]=#100+#101 通过变量名称指令 #500=[100+[#POS2]*10]; 通过变量名称指令读取变量
刀具补偿C类型系统变量如下表:
补偿号
刀具长度补偿(R/W)
几何补偿
磨耗补偿
刀具半径补偿(R/W) 几何补偿 磨耗补偿
1
#11001 (#2201) #10001 (#2001) #13001 #12001
….
….
….
….
….
….
….
200 #11200 (#2400) #10200 (#2200) #13200 #12200
不正确的程序报警方式 O8013 IF[#4LE0] GOTO 1001 IF[#11LT2]GOTO1002 IF[#11NE FUP[#11]] GOTO1003 G90 X#24 Y#25 ……… N1001 #3000=101 (孔间距太小) N1002 #3000=102 (两个孔要求的最小值) N1003 #3000=103 (不允许有小数点) M99
在程序中自动设定G54-G59工件零点偏移量
外部工件 原点清零
设定G54 工件原点 偏移量
CNC报警
变量号 #3000
设定范围 0~200
功能 CNC停止运行并报警
• 表达式后为不超过26个字符的报警信息 • 屏幕上显示报警号和报警信息,报警号为#3000的值加上3000 • 报警号和参数6008#1 有关系
单位自动地四舍五入,例如:
#1=12.3456
G01 X#1 F1000
G01 X12.346 F1000
④ 程序号、顺序号和任选程序段跳转号不能使用变量 O#1; N#3 Y200.0; /#2 G00 X10.;
未定义变量
当变量值未定义时,这样的变量成为<空>变量 变量#0、#3100 总是空变量,它不能写只能读,当引用一个未定义的 变量时,地址本身也被忽略。
#1= #2 + 100 ; (小数点可以省略) #1= #2 + #18 SIN[#5] ;
变量的引用
宏变量必须先定义,然后才能在程序中使用,变量定义以后,
在前面加上地址来引用,地址可以是某个大写字母,如F、S、G、M等。 G98
#19=1200
#9=150 (使用之前先定义变量)
…….
G00 G90 G54 X350.0 Y178.34 S#19 M03
不可
不可
日期系统变量的应用
零件加工完成或铸造完成以后,零件表面雕刻或铣削产品的出厂日 期 1)程序中日期的确定,通过系统变量读取 2)日期由数字组成,0-9,通过运算分离出每一位的数字 3)分别对0-9数字编写加工程序 4)对数字进行判断,调用对应的子程序 大体程序结构如下:
参考程序
O0135 N10#500=#3011 N20#1=FI [#500/10000000] IF[#1EQ0]GOTO1 IF[#1EQ1]GOTO2 IF[#1EQ2]GOTO3 IF[#1EQ3]GOTO4 IF[#1EQ4]GOTO5 …… N1M98P1 (0) GOTO13 N2P98P2 (1) GOTO13 N3M98P3 (2) GOTO13 N4M98P4 (3) GOTO13 N5M98P5 (4) GOTO13 N13M30
算数运算 数据存储 逻辑运算 跳转 循环 错误检查 报警产生 输入和输出
宏程序 是什么?
宏程序能做什么:
① 实现特定的插补功能: 如: 椭圆插补 渐开线插补 变速螺纹切削
② 实现特定的机床辅助动作: 如: 换刀 换附件头 多点定向 路径间轴分配 实时参数修订
③ 测量装置:
如:
测头
在不同的程序中意义相同,各宏程序公用。 断电后#100~#199初始化为空, #500~#999数据保存
NO.6031-NO.6032 #500-#999公共变量 写保护
系统变量 可用于读写CNC运行时的各种数据
系统常量 (R)
常量 #0、#3100★ #3101 ★ #3102 ★
常量名称 [#_EMPTY] [#_PI] [#_E]
内容 空值 圆周率π=3.14159265…….. 自然对数e=2.71828182…….
变量的界面
1.按下MDI面板上 的功能键
2.按几次 键, 直至出现【宏 变量】界面
变量的界面 (31i)
3.按 、 显示局部和公共 变量值
变量的赋值
# i = <表达式>
将计算结果赋值 给对应的变量号
常数、变量、函数和 运算符的组合
系统变量名称
• 系统变量(常量)通过变量号指定,也可事先准备系统变量(常量)名称来指定. 它由_(下划线)开始8个英文字母、数字构成.对轴和刀具补偿,作为名称的下 标,可用[n](n为整数),n可用<表达式>即运算格式指定.
第二单元 系统变量
• 接口信号 • 刀具补偿 • 工件零点偏移 • 宏报警 • 时间信息 • 模态信息 • 位置信息
正确的程序报警方式 O8013 IF[#4LE0] GOTO 1001 IF[#11LT2]GOTO1002 IF[#11NE FUP[#11]] GOTO1003 G90 X#24 Y#25 ……… GOTO 9999 N1001 #3000=101 (孔间距太小) N1002 #3000=102 (两个孔要求的最小值) N1003 #3000=103 (不允许有小数点) N9999 M99
接触性传感器
在零件加工的生产线或无人加工车间,程序中必须对零件的关键尺寸进行直接检查与调 整,当刀具磨损或其他原因,期望的尺寸不对,需要进行修正,这时使用检测装置,在线 检测能够解决以上问题。
第一单元 变量的概念
变量的表示
变量符号(#)+ 变量号
例: #10、#100、#1005
表达式也可以用于指定变量号,需封闭在括号中。
• 公共变量名称设定和指令时,可赋值#500~#549,共50个,公共变量8个字符 ,开头必须是字母,断电不消失.
• 例如:SETVN n[AVR500,AVR501,AVR502,…..];变量号n、n+1 、 n+2的 变量名称:各字符串之间以 “, ”隔开.字符除了控制出、控制入、[、EOB
公共变量名称设定格式及界面
当#1=<空>时
G90 X100 Y#1 ↓
G90 X100
当#1=0时
G90 X100 Y#1 ↓
G90 X100 Y0
除了用<空>赋值以外,以下情况<空>与0 相同
当#1=<空>时
#2=#1 ↓ #2=<空>
#2=#1﹡5 ↓ #2=0
#2=#1+#1 ↓ #2=0
当#1=0时
#2=#1 ↓ #2=0
例:
#[#2-1],
#[#500/2]
可在程序段结尾加注释说明变量内容,需用括号封闭。
例: #2=#3-1(TOOL NUMBER);
变量的种类
变量号 #0、#3100 #1~#33
#100~#199 #500~#999
#1000~
变量类型
用
途
空变量
总为空
局部变量 公共变量
只能用在当前宏程序中存储变量,断电后 数据初始化
用户宏程序
目录
第一单元 变量的概念 第二单元 系统变量 第三单元 运算命令 第四单元 控制语句 第五单元 宏程序调用 第六单元 案例
宏程序能做什么? 如何利用宏程序实现一些特定功能? 有些系统无法实现某些功能,可否利用宏程序来实现? 可否利用宏程序来替代某些功能? 其他……
用户宏程序
宏程序? 宏程序是一种零件编程的方法,该方法是在标准CNC手工编程的基础上 附加控制特征,使程序功能更强大、灵活。FANUC宏程序特点如下:
工件零点偏移
#5201-#5324用于工件原点偏移值的系变量,这些系统变量既 可以读取,可以写入。 系统变量如下表:
变量号 #5201~4 #5221~4 #5241~4 #5261~4 #5281~4 #5301~4 #5321~4
工件坐标系 第1轴到第4轴外部工件坐标原点偏移值
第1轴到第4轴G54原点偏移值 第1轴到第4轴G55原点偏移值 第1轴到第4轴G56原点偏移值 第1轴到第4轴G57原点偏移值 第1轴到第4轴G58原点偏移值 第1轴到第4轴G59原点偏移值
G40,G41,G42 G43,G44,G49 G73,G74,G76,G80~G89
G54~G59
变量号
#4107
#4109 #4111 #4113 #4119 #4120 #4130
模态信息
D代码
F代码 H代码 M代码 S代码 T代码 P代码
应用案例-1
O9999; N1 G01 G91 X#21 F300; N2 Y#22; N3 X-#21; N4 Y-#22; M99; O0001; N10 G00 G90 X100.0 Y50.0; N11 G65 P9999 U90.0 V120.0; N12 X200.0 Y100.0; M30;
时间信息
变量号 单位
功能
#3001 毫秒 计时器,电源接通时复位为0。
#3002
小时
计时器,循环启动灯亮时开始计 时。即使在断电时也保存该值
#3011 #3012
年月日 读取当前的日期。 1999年12月31日 19991231
时分秒 读取当前的时间。 下午3点34分56秒 153456
赋值 可以 可以
接口信号
在自动对刀、自动检测(工件)等机床功能的宏程序中,常用 到接口信号、位置信息、刀具补偿、宏报警相关的系统变量。 接口信号是指PMC和用户宏程序之间的交换信号:
.
.
刀具补偿
在零件加工程序中,尤其是在机床在线测量中,各种偏置变量 的当前值在变化,因此在程序中需要实时对刀具补偿值进行修 正,可以通过系统变量在宏程序中来实现。
(可变的主轴转速)
G43 Z25.0 H03 M08
G01 Z-15.0 F200.0 (固定的进给速度)
X425.0 F#9
(可变的进给速度)
Baidu Nhomakorabea
引用宏变量注意事项: ① 小数点的使用
宏程序中定义的变量值,例如位置、距离、速度。可以不采用小数点输入, 和NO.3401 #0 设置没有关系,例如:
NO.3401 #0=0 标准型小数点输入
参考程序 O0001 (NO.1) 数字1加工程序 N10 G54 G17 G80 G90 …… M99
模态信息
变量号
#4001
#4002 #4003 #4007 #4008 #4009 #4014
模态信息 G00,G01,G02,G03,G33,
G60,G75,G77~G79
G17,G18,G19 G90,G91
#500=1000 G01 X#1000 F200
G01 X1000.0 F200
② 变量的符号 变量值可以是正值或负值,例如 #24=22.7;#33=-15.6 宏程序使用的变量可以取反,例如: G0 X-#24 G0 Y-#33 G0 X#24 G0 Y#25
③ 最小设定单位
把变量用于地址数据的时候,被引用变量的值根据地址的最小设定
例: #3000=1 (WRONG DATA INPUT);
屏幕显示: 3001 WRONG DATA INPUT
以下两种情况: 参数MCA(No.6008#1)=0时 #3000 = n (ALARM MESSAGE) ; ( n: 0~200 ) 将3000 与变量#3000 的值相加的报警号和报警信息一 起在画面上显示出来。 (例) #3000=1 (ALARM MESSAGE); →报警画面上显示出“3001 ALARM MESSAGE”。 参数MCA(No.6008#1)=1时 #3000 = n (ALARM MESSAGE) ; ( n: 0~4095 ) 继MC 后,画面上显示出#3000 报警号和报警信息。 (例) #3000=1 (ALARM MESSAGE); →报警画面上显示出“MC0001 ALARM MESSAGE”。
201 #11201
#10201
#13201 #13201
….
….
….
….
….
400 #11400
#10400
#13400 #12400
手动刀具长度测量
操作步骤
O9999 IF[#4111 EQ 0]GOTO 9;
#1= #5043; G00 G90 G43 Z50.0; M00; #[11000+#4111]= #5043; G00 G49 Z#1; M30; N9 #3000=9(OFFSET # ERROR);