宏程序简介
所谓宏程序就是把一组数值或变量预先存于一组地址中,当需要时,就用特殊的调用指令调用该变量的地址即可,这些特殊的调用指令就叫宏程序指令,简称宏指令,由宏指令组成的程序叫宏程序。
宏指令可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外还可以使用循环语句、分支语句和子程序调用语句等功能,以利于编制各种复杂的零件加工程序,减少手工编程时进行繁琐的数值计算,简化程序。比如说要加工椭圆,如果没有宏指令的话,我们要逐点算出曲线上的点,然后用一段段直线逼近曲线。可是应用了宏程序后,只要把椭圆公式输入到系统中,然后给出X(或Z)坐标并且每次增加10um,那么宏程序就会自动算出Z(或X)坐标,并控制机床进行切削加工
1.变量
(1)变量的表示 变量可以用“#”号和紧跟其后的变量序号构成:#i(i=1,2,3…),如#5、#109、#501。也可以用#[表达式]的形式来表示,如#[#50]、#[#1021-1]、#[2×#50]。
(2)变量的引用 将跟随在一个地址后的数值用一个变量来代替,即引入了变量。例如:对于F#103,若#103=50时,则为F50;对于Z-#110,若#110=100,则Z为-100;对于G#130,若#130=3时,则为G03。注意:地址符O、N、/等不能引用变量。
(3)未定义的变量 尚未被定义的变量,称为<空>。变量#0经常被用作<空>变量使用。
性质:
1)在引用未定义变量时,地址符也被无视。如#1=<空>时,G00 X20 Z#1与G00 X20作用相同。
2)在运算中,除了被<空>置换的场合以外,与数值0相同。
3)在条件式中,只有EQ、NE情况下,<空>与0不同。
2.变量的种类
(1)局部变量 局部变量就是仅在宏程序中局部使用有效的变量。换句话说,在某时刻调出的宏程序中所使用的局部变量#i和另一时刻调用的宏程序(可以与前一个宏程序相同或不同)中所使用的#i不同。因此在多重调用时,宏程序之间相互调用的情况下不会破坏对方宏程序的变量。
当前的局部变量序号有(不同的数控系统分配变量的序号不同):
#200~#249 0层局部变量; #250~#299 1层局部变量; #300~#349 2层局部变量; #350~#399 3层局部变量; #400~#449 4层局部变量; #450~#499 5层局部变量; 因此子程序嵌套调用的深度最多可以有7层。每一层子程序都有自己独立的局部变量,变量个数为50。
(2)公共变量 公共变量也称通用变量,就是在主程序和主程序调用的各宏程序内都有效的变量,也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的,因此一个宏指令可以使用另一宏指令计算出的变量#i。
公共变量的序号为:#100~#131;#500~#531。其中#100~#131公共变量在电源断电后即清零,重新开机后变量的数值全部为零,称为非保持型或操作型变量;#500~#531公共变量即使电源断电后,它们的值也保持不变,因此也称为保持型变量。
(3)系统变量 系统变量是指有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置变量、接口的输入/输出信号变量、位置信息变量等,因系统变量一般不常用,故在此略去。
3.A类宏指令
宏指令一般分为A类宏指令和B类宏指令。A类宏指令是以G65 Hm P#i Q#j R#k的格式输入的,在FANUC OT等系统中应用较多;而B类宏指令则是以直接的公式和语言输入的,在FANUC 0i系统中应用比较广泛。下面先介绍一下A类宏指令,B类宏指令请参见第6章。
格式:G65 Hm P#i Q#j R#k;
说明:
1) 格式中m—宏指令的功能,用01~99表示,见表4-3; #i—运算结果存放处的变量名;#j—被运算的变量1,也可以是一个常数;#k—被运算的变量2,也可以是一个常数。
2)变量的值不带小数点,单位为0.001mm,如# 100=10,则X # 100=0.01mm;用度表示角度的量纲时,其单位为0.001°。
3)在运算中,若不指定Q、R时其值按0计算;运算结果中少于1的数将舍去。
4)在条件转移指令中,如果序号n为正值,则检索过程是先向大程序段号查找;如果n为负值,则检索过程是先向小程序段号查找;转移段号可以是变量,如G65 H81 P#100 Q#101 R#102(当#101 = #102,转移到由#100指定的段号中)。
5)宏指令中的H、P、Q、R必须在G65之后指定,只有O、N可在G65之前指定。
4.典型宏指令格式
1)变量的定义和置换。# i = #j
格式:G65 H01 P#i Q#j;
例:G65 H01 P#101 Q1005;(#101=1005) G65 H01 P#101 Q-#112;(#101=-#112)
2)加法。#i = #j+#k
格式:G65 H02 P#i Q#j R#k;
例: G65 H02 P#101 Q#102 R#103;(#101=#102+#103)
3)减法。#i = #j-#k
格式:G65 H03 P#i Q#j R#k;
例:G65 H03 P#101 Q#102 R#103;(#101=#102-#103)
所谓宏程序就是把一组数值或变量预先存于一组地址中,当需要时,就用特殊的调用指令调用该变量的地址即可,这些特殊的调用指令就叫宏程序指令,简称宏指令,由宏指令组成的程序叫宏程序。
宏指令可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外还可以使用循环语句、分支语句和子程序调用语句等功能,以利于编制各种复杂的零件加工程序,减少手工编程时进行繁琐的数值计算,简化程序。比如说要加工椭圆,如果没有宏指令的话,我们要逐点算出曲线上的点,然后用一段段直线逼近曲线。可是应用了宏程序后,只要把椭圆公式输入到系统中,然后给出X(或Z)坐标并且每次增加10um,那么宏程序就会自动算出Z(或X)坐标,并控制机床进行切削加工
1.变量
(1)变量的表示 变量可以用“#”号和紧跟其后的变量序号构成:#i(i=1,2,3…),如#5、#109、#501。也可以用#[表达式]的形式来表示,如#[#50]、#[#1021-1]、#[2×#50]。
(2)变量的引用 将跟随在一个地址后的数值用一个变量来代替,即引入了变量。例如:对于F#103,若#103=50时,则为F50;对于Z-#110,若#110=100,则Z为-100;对于G#130,若#130=3时,则为G03。注意:地址符O、N、/等不能引用变量。
(3)未定义的变量 尚未被定义的变量,称为<空>。变量#0经常被用作<空>变量使用。
性质:
1)在引用未定义变量时,地址符也被无视。如#1=<空>时,G00 X20 Z#1与G00 X20作用相同。
2)在运算中,除了被<空>置换的场合以外,与数值0相同。
3)在条件式中,只有EQ、NE情况下,<空>与0不同。
2.变量的种类
(1)局部变量 局部变量就是仅在宏程序中局部使用有效的变量。换句话说,在某时刻调出的宏程序中所使用的局部变量#i和另一时刻调用的宏程序(可以与前一个宏程序相同或不同)中所使用的#i不同。因此在多重调用时,宏程序之间相互调用的情况下不会破坏对方宏程序的变量。
当前的局部变量序号有(不同的数控系统分配变量的序号不同):
#200~#249 0层局部变量; #250~#299 1层局部变量; #300~#349 2层局部变量; #350~#399 3层局部变量; #400~#449 4层局部变量; #450~#499 5层局部变量; 因此子程序嵌套调用的深度最多可以有7层。每一层子程序都有自己独立的局部变量,变量个数为50。
(2)公共变量 公共变量也称通用变量,就是在主程序和主程序调用的各宏程序内都有效的变量,也就是说,在一个宏指令中的#i与在另一个宏指令中的#i是相同的,因此一个宏指令可以使用另一宏指令计算出的变量#i。
公共变量的序号为:#100~#131;#500~#531。其中#100~#131公共变量在电源断电后即清零,重新开机后变量的数值全部为零,称为非保持型或操作型变量;#500~#531公共变量即使电源断电后,它们的值也保持不变,因此也称为保持型变量。
(3)系统变量 系统变量是指有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置变量、接口的输入/输出信号变量、位置信息变量等,因系统变量一般不常用,故在此略去。
3.A类宏指令
宏指令一般分为A类宏指令和B类宏指令。A类宏指令是以G65 Hm P#i Q#j R#k的格式输入的,在FANUC OT等系统中应用较多;而B类宏指令则是以直接的公式和语言输入的,在FANUC 0i系统中应用比较广泛。下面先介绍一下A类宏指令,B类宏指令请参见第6章。
格式:G65 Hm P#i Q#j R#k;
说明:
1) 格式中m—宏指令的功能,用01~99表示,见表4-3; #i—运算结果存放处的变量名;#j—被运算的变量1,也可以是一个常数;#k—被运算的变量2,也可以是一个常数。
2)变量的值不带小数点,单位为0.001mm,如# 100=10,则X # 100=0.01mm;用度表示角度的量纲时,其单位为0.001°。
3)在运算中,若不指定Q、R时其值按0计算;运算结果中少于1的数将舍去。
4)在条件转移指令中,如果序号n为正值,则检索过程是先向大程序段号查找;如果n为负值,则检索过程是先向小程序段号查找;转移段号可以是变量,如G65 H81 P#100 Q#101 R#102(当#101 = #102,转移到由#100指定的段号中)。
5)宏指令中的H、P、Q、R必须在G65之后指定,只有O、N可在G65之前指定。
4.典型宏指令格式
1)变量的定义和置换。# i = #j
格式:G65 H01 P#i Q#j;
例:G65 H01 P#101 Q1005;(#101=1005) G65 H01 P#101 Q-#112;(#101=-#112)
2)加法。#i = #j+#k
格式:G65 H02 P#i Q#j R#k;
例: G65 H02 P#101 Q#102 R#103;(#101=#102+#103)
3)减法。#i = #j-#k
格式:G65 H03 P#i Q#j R#k;
例:G65 H03 P#101 Q#102 R#103;(#101=#102-#103)
声明:本网站所收集的部分公开资料来源于互联网,转载的目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。本站部分作品是由网友自主投稿和发布、编辑整理上传,对此类作品本站仅提供交流平台,不为其版权负责。如果您发现网站上所用视频、图片、文字如涉及作品版权问题,请第一时间告知,我们将根据您提供的证明材料确认版权并按国家标准支付稿酬或立即删除内容,以保证您的权益!联系电话:010-58612588 或 Email:editor@mmsonline.com.cn。
网友评论
匿名:
相关链接
最新反馈
- 暂无反馈
无须注册,轻松沟通