宏程序编程知识
数控车床华中系统用户宏程序编程
③系统变量:系统变量为#1000~#1199,它能获取包含在机床处理器或NC内存 中的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参 数、加工参数等系统信息
格式(ii) : IF 条件表达式 … ENDIF
.
7
5、 循环语句WHILE,ENDW
❖ 格式:WHILE 条件表达式 ❖… ❖ ENDW
.
8
6、 宏程序/子程序调用的参数传递规则
❖ G 代码在调用宏(子程序或固定循环, 下同)时,系统会将当前程序段各字 段(A~Z共26个字段,如果没有定义 则为零)的内容拷贝到宏执行时的局 部变量#0 ~ #25,同时拷贝调用宏时 当前通道九个轴(轴0~轴8)的绝对 位置(机床绝对坐标)到宏执行时的局 部变量#30 ~ #38。 ❖ 宏程序的调用格式为: ❖ M98 P(宏程序名)<变量赋值> ❖ 或G65 P(宏程序名)<变量赋值>。
.
12
用户宏程序训练
.
13
数控车削加工中公式曲线宏程序编程模板的 应用
一、公式曲线宏程序编程模板的原理和使用步骤 1、如何选定自变量 1)公式曲线中的X和Z坐标任意一个都可以被定义为自变量
2)一般选择变化范围大的一个作为自变量,如图1 ★ 3)根据表达式方便情况来确定X或Z作为自变量,如图3★
4)为了表达方便,在这里将和X坐标相关的变量设为#1、 #11、#12等,将和Z坐标相关的变量设为#2、#21、#22等。 际中变量的定义完全可根据个人习惯进行定义
❖ 分别用宏变量#1、#2代替上式中的X、Z,即得因变量#1相 对于自变量#2的宏表达式:
宏程序入门基础学习资料
宏程序入门基础学习资料其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出Z坐标并且每次加10um那么宏就会自动算出X坐标并且进行切削,实际上宏在程序中主要起到的是运算作用..宏一般分为A类宏和B类宏.A类宏是以G65 Hxx P#xx Q#xx R#xx的格式输入的,而B类宏程序则是以直接的公式和语言输入的和C语言很相似在0i系统中应用比较广.由于现在B类宏程序的大量使用很多书都进行了介绍这里我就不再重复了,但在一些老系统中,比如法兰克OTD系统中由于它的MDI键盘上没有公式符号,连最简单的等于号都没有,为此如果应用B类宏程序的话就只能在计算机上编好再通过RSN-32接口传输的数控系统中,可是如果我们没有PC机和RSN-32电缆的话怎么办呢,那么只有通过A类宏程序来进行宏程序编制了,下面我介绍一下A类宏的引用;A类宏是用G65 Hxx P#xx Q#xx R#xx或G65 Hxx P#xx Qxx Rxx格式输入的xx的意思就是数值,是以um级的量输入的,比如你输入100那就是0.1MM~~~~~.#xx就是变量号,关于变量号是什么意思再不知道的的话我也就没治了,不过还是教一下吧,变量号就是把数值代入到一个固定的地址中,固定的地址就是变量,一般OTD系统中有#0~~~#100~#149~~~#500~#531关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据.我们如果说#100=30那么现在#100地址内的数据就是30了,就是这么简单.好现在我来说一下H代码,大家可以看到A类宏的标准格式中#xx和xx都是数值,而G65表示使用A类宏,那么这个H就是要表示各个数值和变量号内的数值或者各个变量号内的数值与其他变量号内的数值之间要进行一个什么运算,可以说你了解了H代码A类宏程序你基本就可以应用了,好,现在说一下H代码的各个含义:以下都以#100和#101和#102,及数值10和20做为例子,应用的时候别把他们当格式就行,基本指令:H01赋值;格式:G65H01P#101Q#102:把#102内的数值赋予到#101中G65H01P#101Q#10:把10赋予到#101中H02加指令;格式G65 H02 P#101 Q#102 R#103,把#102的数值加上#103的数值赋予#101G65 H02 P#101 Q#102 R10G65 H02 P#101 Q10 R#103G65 H02 P#101 Q10 R20上面4个都是加指令的格式都是把Q后面的数值或变量号内的数值加上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H03减指令;格式G65 H03 P#101 Q#102 R#103,把#102的数值减去#103的数值赋予#101G65 H03 P#101 Q#102 R10G65 H03 P#101 Q10 R#103G65 H03 P#101 Q20 R10上面4个都是减指令的格式都是把Q后面的数值或变量号内的数值减去R后面的数值或变量号内的数值然后等于到P后面的变量号中.H04乘指令;格式G65 H04 P#101 Q#102 R#103,把#102的数值乘上#103的数值赋予#101G65 H04 P#101 Q#102 R10G65 H04 P#101 Q10 R#103G65 H04 P#101 Q20 R10上面4个都是乘指令的格式都是把Q后面的数值或变量号内的数值乘上R后面的数值或变量号内的数值然后等于到P后面的变量号中.H05除指令;格式G65 H05P#101 Q#102 R#103,把#102的数值除以#103的数值赋予#101G65 H05 P#101 Q#102 R10G65 H05 P#101 Q10 R#103G65 H05 P#101 Q20 R10上面4个都是除指令格式都是把Q后面的数值或变量号内的数值除以R后面的数值或变量号内的数值然后等于到P后面的变量号中.(余数不存,除数如果为0的话会出现112报警)三角函数指令:H31 SIN正玄函数指令:格式G65 H31 P#101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*SIN#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H32 COS余玄函数指令:格式G65 H32 #101 Q#102 R#103;含义Q后面的#102是三角形的斜边R后面的#103内存的是角度.结果是#101=#102*COS#103,也就是说可以直接用这个求出三角形的另一条边长.和以前的指令一样Q和R后面也可以直接写数值.H33和H34本来应该是TAN 和ATAN的可是经过我使用得数并不准确,希望有知道的人能够告诉我是为什么?开平方根指令:H21;格式G65 H21 P#101 Q#102 ;意思是把#102内的数值开了平方根然后存到#101中(这个指令是非常重要的如果在车椭圆的时候没有开平方跟的指令是没可能用宏做到的.无条件转移指令:H80;格式:G65 H80 P10 ;直接跳到第10程序段有条件转移指令:H81 H82 H83 H84 H85 H86 ,分别是等于就转的H81;不等于就转的H82;小于就转的H83;大于就转的H84;小于等于就转的H85;大于等于就转的H86;格式:G65 H8x P10 Q#101 R#102;将#101内的数值和#102内的数值相比较,按上面的H8x的码带入H8x中去,如果条件符合就跳到第10程序段,如果不符合就继续执行下面的程序段.用户宏程序能完成某一功能的一系列指令像子程序那样存入存储器,用一个总指令来它们,使用时只需给出这个总指令就能执行其功能。
宏程序编程例子入门
宏程序编程例题椭圆解析:椭圆关于中心、坐标轴都是对称的,坐标轴是对称轴,原点是对称中心;对称中心叫做椭圆中心;椭圆和X轴有2两个交点,和Y轴有两个交点,这四个交点叫做椭圆顶点;椭圆标准方程:x2 / a2 + y2 / b2 = 1 a为长半轴,b为短半轴,a > b > 0椭圆参数方程:x=acosMy=bsinM a为长半轴,b为短半轴,a > b > 0 ,M是夹角,是椭圆上任意一点到椭圆中心连线与X正半轴所成的夹角,顺时针为负,逆时针为正;二、数控车床:根据椭圆标准方程:x2 / a2 + y2 / b2 = 1 a为长半轴,b为短半轴,a > b > 0 根据椭圆参数方程:x=acosMy=bsinM a为长半轴,b为短半轴,a > b > 0 ,M是夹角,是椭圆上任意一点到椭圆中心连线与X正半轴所成的夹角,顺时针为负,逆时针为正;可得车床标准方程:z2 / a2 + x2 / b2 = 1 a为长半轴,b为短半轴,a > b > 0 可得椭圆参数方程:z=acosMx=2bsinM a为长半轴,2b为短轴直径,a > b > 0 ,M是夹角,是椭圆上任意一点到椭圆中心连线与Z正半轴所成的夹角,顺时针为负,逆时针为正;通过标准方程推导X的表达式:x =b / a SQRT a a– z z a、b为长、短半轴是常数表示;一车床车削椭圆通常是加工椭圆X正方向部分回转体,用标准方程车削椭圆时,通常设Z为自变量,通过方程把X表达出来,最多就是车削到180度椭圆,然后利用G01插补拟合成椭圆;通过椭圆车床标准方程推导,可以有如下过程:z2 / a2 + x2 / b2 = 1可推导 x2 / b2 =1- z2 / a2 = a2 – z2 / a2可推导 x2 = b2 / a2 a2 – z2 x =b / a SQRT a2 – z2转换为数控格式就为 x =2b / a SQRT a a– z z a为长半轴、2b为短轴直径编程常数表示;设z为自变量1,则x为因变量2,根据上述公式有:2 =b / a SQRT a a- 1 1 例题:长半轴a=5,短半轴b=4的椭圆;有以下几种情况:1、 1为z,为自变量:则1=5 1=5 表示从Z正半轴开始加工;N10 2 = 8 / 5 SQRT 5 5 - 1 1G01 X 2+ D Z 2 + E X正,Z正,表示走逆时针,D、E表示椭圆中心X、Z绝对坐标1=1-1IF 1 GE 0 GOTO10 这是加工第一象限的椭圆,90度椭圆;IF 1 GE -5 GOTO10 这是从第一象限加工到第二象限的椭圆,180度椭圆;2、 1为x,为自变量:则1=-5 1=-5 表示从Z轴负方向开始加工;N10 2 = 8 / 5 SQRT 5 5 - 1 1G01 X 2+ D Z -2 + E X正,Z负,表示走顺时针,D、E表示椭圆中心X、Z 绝对坐标1=1 + 1IF 1 LE 0 GOTO10 这是加工第二象限的椭圆,90度椭圆;通常这是利用反刀加工;IF 1 LE 5 GOTO10 这是从第二象限加工到第一象限的椭圆,180度椭圆;正反刀都可以加工;关于D、E椭圆中心坐标位置的说明,D为直径表达,E的位置有三种:当E=-a时 2 + E =0,椭圆中心离工件原点相差一个长半轴距离;E=-a+Δ时 2 + E >0,椭圆中心在Z轴上向右偏移,中心离工件原点距离小于一个长半轴;E=-a-Δ时 2 + E <0,椭圆中心在Z轴上向左偏移,中心离工件原点距离大于一个长半轴;二车通过参数方程加工椭圆可以加工0-180度内任意角度,直接通过参数方程加工即可;例题:长半轴a=5,短半轴b=4的椭圆;有以下几种情况:1、设1为M,为角度自变量,x、z为因变量:则1=0 1=0 表示从0度开始加工,即Z正半轴开始加工,若写1=90表示从X正半轴开始加工,其他以此类推N10 Z = 2 = a COS 1X = 3 = 2b SIN 1G01 X 3 +D Z 2 + E X正,Z正,表示走逆时针,D、E表示椭圆中心X、Z绝对1=1+1 + 表示走逆时针方向IF 1 LE 90 GOTO10 这是加工第一象限部分,90度椭圆;IF 1 LE 180 GOTO10 这是从第一象限加工到第二象限的椭圆,180度椭圆; 如果写LE180就是加工0-180度椭圆,其他任意角度以此类推;2、设1为M,为角度自变量,x、z为因变量:则1=180 1=180 表示从180度开始加工,即Z负半轴开始加工,其他任意角度以此类推N10 Z = 2 = a COS 1X = 3 =2 b SIN 1G01 X 3 + D Z -2 + E X正,Z负,表示走顺时针,D、E表示椭圆中心X、Z 绝对坐标1=1-1 - 表示走顺时针方向IF 1 GE 90 GOTO10 这是加工第二象限部分,90度椭圆;通常这是利用反刀加工;IF 1 GE 0 GOTO10 这是从第二象限加工到第一象限的椭圆,180度椭圆;正反刀都可以加工;通过可以通过参数方程和标准加工,通过上述举例可以发现,参数方程编程简单,程序简洁,可以加工任意角度的椭圆;关于椭圆的编程介绍到此为止;椭圆例题图形1O0001N010 G99 G97 G21N020 T0101N030 S600 M03N040 G0 X45 Z5 M08N050 G73 U23 W0 R21N060 G73 P70 Q190 0.1 FN070 G00 X0 S1000N080 G42 G01 0 FN090 101=20N100 WHILE101GE0DO1N110 102=26SQRT1-101101/2020 N120 G01 X102 Z101-20N130 101=N140 END1N150 Z-30N160 G02 X36 Z-35 R5N170 G01 X38N180 X42 Z-37N190 X45N200 G70 P70 Q190N210 G40 G00 X100 Z100 M09N220 T0100 M05N230 M30%方法2O0002N010 G99 G97 G21N020 T0101N030 S600 M03N040 G0 X45 Z5 M08N050 G73 U23 W0 R21N060 G73 P70 Q180 0.1 FN070 G00 X0 S1000N080 G42 G01 0 FN090 101=20N100 102=26SQRT1-101101/2020 N110 G01 X102 Z101-20N120 101=N130 IF101GE0GOTO100N140 Z-30N150 G02 X36 Z-35 R5N160 G01 X38N170 X42 Z-37N180 X45N190 G70 P70 Q180N200 G40 G00 X100 Z100 M09 N210 T0100 M05N220 M30图形2方法1O0001N010 G99 G97 G21N020 T0101N030 S600 M03N040 G0 X53 Z5 M08N050 G73 U25 W0 R23N060 G73 P70 Q210 0.1 FN070 G00 S1000N080 G42 G01 0 FN090 Z-2N100 Z-18N110 X20N120 Z-25N130 101=20N140 WHILE101GE0DO1N150 102=18SQRT1-101101/2020 N160 G01 X102 Z101-45N170 101=N180 END1N190 G01 X38N200 Z-60N210 X50N220 G70 P70 Q210N230 G40 G00 X100 Z100 M09N240 T0100 M05N250 M30%方法2O0001N010 G99 G97 G21N020 T0101N030 S600 M03N040 G0 X53 Z5 M08N050 G73 U25 W0 R23N060 G73 P70 Q200 0.1 FN070 G00 S1000N080 G42 G01 0 FN090 Z-2N100 Z-18N110 X20N120 Z-25N130 101=20N140 102=18SQRT1-101101/2020 N150 G01 X102 Z101-45N160 101=N170 IF101GE0GOTO140N180 G01 X38N190 Z-60N200 X50N210 G70 P70 Q200N230 G40 G00 X100 Z100 M09N240 T0100 M05N250 M30%图形2 切槽与螺纹均不编图形3O0001N010 G99 G97 G21N020 T0101N030 S700 M03N040 G00 X53 Z2 M08N050 G73 U25 W0 R23N060 G73 P70 Q230 0.1 FN070 G00 X0 S1000N080 G42 G01 0 FN090 G03 X16 Z-8 R8N100 G01N110 X20N120N130N140 101=0N150 102=30SQRT1-101101/2020 N160 G01 X52.98-102 ZN170 101=N180 IFGOTO150N190 G01 X32N200 Z-27N210 Z-50N220 X46N230 X48 Z-51N240 G70 P70 Q230N250 G40 G00 X100 Z100 M09 N260 T0100 M05N270 M30N280%图形3 切槽与螺纹均不编图形4O0001N010 G99 G97 G21N020 T0101N030 S700 M03N040 G00 X52 Z2 M08N050 G73 U12 W0 R10N060 G73 P70 Q200 0.1 FN070 G00 X26 S1000N080 G42 G01 0 FN090 G01 X30 Z-2N100 G01 Z-5N110 X36N120 G03 X40 R20N130N140 101=14N150 102=16SQRT1-101101/1414 N160 G01 X44-102 Z101-31N170 101=N180 IF101GE-14GOTO150N190 G01 X44N200 Z-51N210 G70 P70 Q200N220 G40 G00 X100 Z100 M09N230 T0100 M05N240 M30N250%图形4 切槽与螺纹均不编图形5O0001N010 G99 G97 G21N020 T0101N030 S700 M03N040 G00 X62 Z2 M08N050 G73 U13 W0 R10N060 G73 P70 Q190 0.1 FN070 G00 X51 S1000N080 G42 G01 0 FN090 G01 X52N100 G01N110 101=25N120 102=24SQRT1-101101/2525 N130 G01 X58-102 Z101-43N140 101=N150 IF101GE0GOTO120N160 G01 Z-43N170 X51N180 X52 Z-44N190 X60N200 G70 P70 Q190N210 G40 G00 X100 Z100 M09N220 T0100 M05N230 M30N240图形6O0001N010 G97 G99 G21N020 T0101N030 S600 M03N040 G0 X53 Z5 M08N050 G73 U10 W0 R9N060 G73 P70 Q180 0 FN070 G00 X38N080 G42 G01 Z0 1200 FN090 101=0N100 102=38SQRT1-101101/5050 N110 G01 X102 Z101N120 101=N130 IFGOTO100N140 G01 Z-36N150 G02 X38 Z-40 R4N160 G01 X47N170 X48N180 X50N190 G70 P70 Q180N200 G40 G00 X100 Z100 M09N210 T0100 M05N220 M30N230模拟轨迹O0001N010 G97 G99 G21N020 T0101N030 S600 M03N040 G0 X73 Z5 M08N050 G73 U13 W0 R11N060 G73 P70 Q160 0 FN070 G00 X44N080 G42 G01 Z0 1200 FN090 101=20N100 102=24SQRT1-101101/2020N110 G01 X102+44 Z101-20N120 101=N130 IF101GE0GOTO100N140 G01 X68N150 Z-90N160 X70N170 G70 P70 Q160N180 G40 G00 X100 Z100 M09 N190 T0100 M05N200 M30N210。
数控车宏程序编程讲解
矩形螺纹
刀具
• 12. [矩形螺纹].
• 编程:
• O0001:(主程序) O0002: (子程序)
• N1 T0202 G99; G0 U–0.3; G0 U10; U–10;
• N2 M3 S200;
G32 Z–55 F12; Z14; M99;
• N3 G0 X82 Z12; G0 U10;
数控车床(宏程序)编程
特形零件练习
正切曲线方程:
椭圆
抛物线方程:
椭圆
双头螺纹.
材料:45#刚. 毛坯: 50*140.
华中系统(宏程序)编程
• 1. 图1.
方向
右偏刀
1.
• 抛物线方程:– X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; (X轴的起点) • N2 WHILE #1 LE [10]; (X轴的终点). • N3 #2= – #1*#1/10; (抛物线的公式) • N4 G01 X[2*#1] Z[#2]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (X轴的增量) • N6 ENDW; (调用返回) • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; (Z轴的起点) • N2 WHILE #1 LE [10]; (Z轴的终点) • N3 #2= SQRT[#1*10]; (抛物线的公式) • N4 G01 X[2*#2] Z[–#1]; (X,Z轴的坐标变量) • N5 #1= #1+0.1; (Z轴的增量) • N6 ENDW; (调用返回)
图2.
方向
图2
右偏刀
• 2. 抛物线方程:–X*X/10. • ①以(X轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= – #1*#1/10; • N3 G01 X[2*#1] Z[#2]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2; • ②以(Z轴)作变量. • 编程: • O0001; • N1 #1= 0; • N2 #2= SQRT[#1*10]; • N3 G01 X[2*#2] Z[–#1]; • N4 #1= #1+0.1; • N5 IF #1 LE [10] GOTO2;
宏程序
宏程序一、概念:含有变量的、能够根据设定数据变化而自行计算的,并运用的程序。
(一)格式:1、作为子程序的程序段。
2、作为结构化的子程序。
(用G65/G66调用)(二)分类:1、A类宏程序:调系统参数后调用即可。
2、B类宏程序:向用户开放的,自己编写的宏程序。
(三)步骤:1、工艺设计(刀具、走刀、流程)2、流程图:决定宏程序的思路,根据工艺进行设计。
二、常用指令(一)变量类型:1、局部变量:#1~#33可自由赋值,定义。
但在同一级程序中,同一个符号含义相同。
断电后初始化,清空不起作用,故称局部变量。
Ⅰ类地址宏变量Ⅰ类地址宏变量Ⅰ类地址宏变量A #1 J #5 V #22B #2 K #6 W #23C #3 M #13 X #24D #7 Q #17 Y #25E #8 R #18 Z #26F #9 S #19H #11 T #20I #4 U #21Ⅱ类地址宏变量Ⅱ类地址宏变量Ⅱ类地址宏变量A #1 J1#5 K2#9..B #2 K1#6 .......... #..........C #3 I2#7 J33#33I1#4 J2#8 K33#33使用过程中,Ⅰ类地址和Ⅱ地址可分开使用,也可以混合使用,在应用过程中,以后一个赋值为准,(即后指定的有效)CNC自动识别。
编程时I、J、K后的小数子角码不出现(CNC按顺序自动识别:I30、I50表示I1为30赋值#4,I2为50赋值于#7,即#4=30、#7=50)。
例:G65 P1000 I-3.0 I4.0 D5.0;含义为:调用O1000号子程序,其中的#4=-3.0,#7=5.0,(其中I4.0赋值#7=4.0、D5.0赋值#7=5.0,后一个有效,I4.0失效)。
2、公共变量:#100~#131、#500~#531。
在编程中,尽量避免使用公共变量,即使在不同的程序当中,同一变量含义相同,赋值也相同,在调用当中要千万小心。
3、系统变量:#2001~#2400、#11001~#12400(刀补)#4001~#4130、G、S、M等代码#5001~#5104;G54~G59等公共变量与系统变量一般都不用,重要学习的是基本Ⅰ、Ⅱ类变量的局部变量。
第6章 宏程序指令编程
例6-4 如图6-5所示,在立式加工中心上铣削内半球体。假 设大部分余量已通过预钻孔去除,现选用适当直径的球头铣刀 (φ12)对半球体进行精加工。若要用同一程序以及用不同半径的 球头铣刀加工不同半径的内球体,则对球体和球头铣刀的半径 用变量表示。若内球体半径为SR,铣削时刀具中心轨迹半径为 RP,球头铣刀半径为r,若每步铣刀沿着z向进刀的角度为α, 则图中刀具进给时刀具中心的坐标为: X=RPCOSα; Z= RPSINα; 主程序中使用如下程序段调 用宏程序: C65 Aa Bb Dd; ’ 其中: Aa:内球体半径(#1); Bb:球头铣刀半径(#2); Dd:每步进刀的角度(#7)。
6.1.1 变量
1、变量的表示
——(变量号i=0,1,2,3,4……) 例:#8、#110、#1100 #i ——表达式必须用括号括起来 例:#[#1+#2-12] #[表达 式] 2、变量的引用 例:F#10——当#10=20时,F20被指令。 <地址>#1 X- #20——当#20=100.时,X-100.被指令。 <地址> - #1 G#130——当#130=2时,G2被指令。
举例:求1到10之和。
O7200; #1=0; #2=1; WHILE [#2 LE 10] DO 1; #1 =#1+#2; #2=#2+1; END 1; M30;
6.2 数控车床宏程序指令编程
例6-1 加工如图6-1所示的槽
主程序为: 宏程序为:
应用调用指令:G66 P9110 U u F f 式中:u——槽深,增量值; f——槽加工的进给速度
系统变 量
固定用途的变 量
4、自变量的赋值 自变量赋值Ⅰ ——使用除去G、L、N、O、P以外的其他字母作为 地址。
加工中心宏程序编程入门讲解
加工中心宏程序编程入门讲解
一、宏程序编程的概念
宏程序编程是一种编程技术,它可以让程序员在编写程序时,使用一组特定的指令来实现某些功能。
宏程序编程的优点在于,它可以让程序员在编写程序时,使用更少的代码来实现更多的功能,从而提高程序的效率。
二、宏程序编程的基本原理
宏程序编程的基本原理是,程序员可以使用一组特定的指令来实现某些功能,而不是使用更多的代码。
宏程序编程的基本原理是,程序员可以使用一组特定的指令来实现某些功能,而不是使用更多的代码。
宏程序编程的基本原理是,程序员可以使用一组特定的指令来实现某些功能,而不是使用更多的代码。
宏程序编程的基本原理是,程序员可以使用一组特定的指令来实现某些功能,而不是使用更多的代码。
三、宏程序编程的应用
宏程序编程可以应用于各种编程语言,如C、C++、Java等,它可以用来实现自动化任务,如
自动生成代码、自动检查代码格式、自动更新文件等。
此外,宏程序编程还可以用于实现更复杂的功能,如自动生成报表、自动处理数据等。
宏程序编程
On the evening of July 24, 2021
宏程序应用
Courseware template
2、变量设置
变量名称
变量意义
#1
孔所在圆周半径 R
#2
均匀分布孔总个数 n
#3
第 i 个孔
第#4i 个 孔 的 孔 中 心 与 编 程 坐 标 X 轴 夹 角i
#10
第 i 个 孔 的 孔 中 心 X 坐 标 值xi
#11
第 i 个孔的孔中心 Y 坐标值 yi
#6
孔深度
#7
R 平面高度
On the evening of July 24, 2021
宏程序应用
Courseware template
3、宏程序
#1=50 #2=6 #3=1 #5=3.14159/180 #6=-20 #7=5 while#3LE#2 #4=360/#2*[#3-1]*#5 #10=#1*COS (#4) #11=#1* SIN (#4)
On the evening of July 24, 2021
Courseware template
2. 宏程序应用
例1
主程序:O0001 G40 G90 G92 X0 Y0 Z0 ; 确定坐标系;
N10 G65 P0002 A100 B120 C150 ;调用宏程序并赋初值;
N20 M30 ;
程序结束;
On the evening of July 24, 2021
四、分支和循环
Courseware template
在程序中可用GOTO语句和IF语句改变控制执行顺 序。
❖ 分支和循环操作共有三种类型:
宏程序编程
第五章宏程序编程实训要点:●熟悉FANUC系统宏程序编程的基本指令;●掌握常用的几个宏程序应用范例第一节宏程序编程概述宏程序编程简单地解释就是利用变量编程的方法。
在本书第二章中介绍的数控指令,其指令代码的功能是固定的,使用者只需(只能)按照指令规定的参数编程。
但有时候这些指令满足不了用户的需求,数控系统因此提供了宏程序编程功能,利用数控系统提供的变量、数学运算功能、逻辑判断功能、程序循环功能等功能,来实现一些特殊的用法。
宏程序编程实际上是数控系统对用户的开放,在数控系统的平台上进行二次开发,当然这里的开放和开发都是有条件和有限制的。
宏程序与普通程序存在一定的区别,认识和了解这些区别,将有助于宏程序的学习理解和掌握运用,表5-1为宏程序和普通程序的简要对比。
表5-1宏程序和普通程序的简要对比宏程序编程的技术特点和应用领域手工编程是数控编程的基础,在手工编程中使用宏程序编程。
其最大特点就是将有规律的形状或尺寸用最短的程序段表示出来,编写出的程序非常简洁,逻辑严密,通用性强。
任何数控加工只要能够用宏程序完整地表达,即使再复杂,其程序篇幅都比较精炼,任何一个合理、优化的宏程序,极少会超过60行,换算成字节数,至多不过2KB。
即使是最廉价的机床数控系统,其内部程序存储空间也完全容纳得下任何复杂的宏程序。
为了对复杂的加工运动进行描述,宏程序必然会最大限度地使用数控系统内部的各种指令代码,例如直线插补G01指令和圆弧插补G02/G03指令等。
因此机床在执行宏程序时,数控系统的计算机可以直接进行插补运算,且运算速度快,再加上伺服电动机和机床的迅速响应,使得加工效率极高。
宏程序的技术特点,使其特别适宜机械零件的批量加工。
机械零件的形状主要是由各种凸台、凹槽、圆孔、斜平面、回转面等组成,很少包含不规则的复杂曲面,构成其的几何因素无外乎点、直线、圆弧,最多加上各种二次圆锥曲线(椭圆、抛物线、双曲线),以及一些渐开线(常应用于齿轮及凸轮等),所有这些都是基于三角函数、解析几何的应用,而数学上都可以用三角函数表达式及参数方程加以表述,因此宏程序在此有广泛的应用空间,可以发挥其强大的作用。
宏程序编程.
用户宏程序虽然子程序对编制相同加工操作的程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制相同加工操作的程序更方便,更容易。
可将相同加工操作编为通用程序,如型腔加工宏程序和固定加工循环宏程序。
使用时,加工程序可用一条简单指令调出用户宏程序,和调用子程序完全一样。
一、变量普通加工程序直接用数值指定G代码和移动距离;例如,G01和X100。
使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100;G01 X#1 F300;说明:1、变量的表示计算机允许使用变量名,用户宏程序不行。
变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]2、变量的类型变量根据变量号可以分成四种类型。
3、变量值的表示范围局部变量和公共变量可以有0值或下面范围中的值:-1047至-10-29或10-29到1047如果计算结果超出有效范围,则发出P/S报警No.111。
4、小数点的省略当在程序中定义变量值时,小数点可以省略。
例:当定义#1=123;变量#1的实际值是123.000;5、变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#1;以1/1000mm的单位执行时,CNC把12.3456赋值给变量#1,实际指令值为G00X12.346;改变引用变量的值的符号,要把负号(一)放在#的前面。
例如:GOOX-#1;当引用未定义的变量时,变量及地址字都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0;。
6、未定义的变量当变量值未定义时,这样的变量成为“空”变量。
变量#0总是空变量。
利用宏指令编程及加工
编写日期
零件名称
椭圆手柄
零件图号
12-3
材料
45#或 Al
车床型号
CAK6150DJ
夹具名称
三爪卡盘
实训车间
数控中心
O6001
编程系统
FANUC 0-TD
程序
简要说明
G50 X100 Z50
建立工件坐标系、换刀点
S800 M3
主轴正转
T0101
选择 1 号外圆刀
G0 X30 Z2
G95 G90 X28.5 Z70 F0.18
注意:条件表达式满足时,程序段DO m至 END m即重复执行; 1) WHILE DO m和 END m必须成对使用; 2)DO语句允许有3层嵌套,即:
DO
1
DO
2
DO
3
END
3
END
2
END
1
3)DO语句范围不允许交叉,即如下语句是错误的:
DO
1
DO
2
END
1
END 2
3、示例
示例
例: 用宏程序编制如图所示抛物线Z=X2/8 在区间[0,16]内的程序。 %8002
能对工件加工质量进行正确分析处理 。
相关知识简介
➢用户宏程序与子程序的相同之处
用户宏程序是提高数控车床性能的一种特殊功能,使用中,通常把能完成 某一功能的一系列指令像子程序一样存入存储器,然后用一个总指令代表它们, 使用时只需给出这个总指令就能执行其功能。
子程序是将零件中常会出现几何形状完全相同的加工轨迹,编制成有固定顺 序和重复模式的程序段,通常在几个程序中都会使用它。
M3 S1000
G0 X0 Z3
宏程序编程教程范文
宏程序编程教程范文第一部分:基础知识1.什么是宏程序编程?2.宏命令和宏函数有什么区别?宏命令是在代码中定义的一系列指令,可以通过在代码中使用宏命令的名称来调用。
宏函数是封装了一段代码的子程序,可以接受参数并返回结果。
3.宏程序编程的优势是什么?第二部分:实践技巧1.如何定义和使用宏命令?使用宏命令的关键在于定义宏命令和在代码中使用它。
首先,我们可以使用`#define`指令定义一个宏命令的名称和它对应的代码。
然后,在代码中使用宏命令的名称即可调用它。
例如:```#define MAX(x, y) ((x) > (y) ? (x) : (y))int a = 5, b = 3;int maxNum = MAX(a, b);```2.如何定义和使用宏函数?定义宏函数的方法与定义宏命令类似,只是需要使用`#define`指令后跟上函数的参数列表和函数体。
然后,在代码中使用宏函数的名称即可调用它。
例如:```#define SQUARE(x) ((x) * (x))int num = 3;int squareNum = SQUARE(num);```3.如何传递参数给宏命令和宏函数?我们可以在宏命令和宏函数的定义中使用参数,并在调用时传递相应的参数。
宏命令和宏函数定义中的参数一般使用括号括起来。
例如:```#define ADD(x, y) ((x) + (y))int a = 2, b = 3;int sum = ADD(a, b);```4.如何避免宏程序编程的潜在问题?在使用宏程序编程时,我们需要注意一些潜在的问题。
首先,宏命令和宏函数的参数可能会被重复计算,导致意想不到的结果。
因此,在参数使用前最好使用括号括起来,以确保优先级的正确性。
另外,宏定义中的代码也会被多次展开,可能会导致代码的冗余和可读性的降低,所以在使用时需谨慎。
总结:宏程序编程是一种提高编程效率和准确性的方法。
通过定义和使用宏命令和宏函数,我们可以简化代码的编写,复用代码片段,并使代码更加清晰易懂。
法兰克fanuc系统编程用户宏程序教程
法兰克Fanuc系统编程用户宏程序教程一、认识法兰克Fanuc系统法兰克Fanuc系统是数控机床领域中广泛应用的一种控制系统,其强大的编程功能为用户提供了极大的便利。
在本教程中,我们将重点介绍用户宏程序的编写与应用,帮助您更好地掌握法兰克Fanuc系统的编程技巧。
二、宏程序基础知识1. 宏程序概念宏程序是一种简化编程过程的方法,它允许用户将复杂的操作步骤封装成一个程序,以便在后续编程中重复调用。
通过使用宏程序,可以大大提高编程效率。
2. 宏程序分类法兰克Fanuc系统中的宏程序分为两类:系统宏程序和用户宏程序。
本教程主要针对用户宏程序进行讲解。
3. 宏程序编写原则(1)简洁明了:尽量使宏程序结构清晰,便于阅读和维护。
(2)通用性强:编写宏程序时,要考虑其在不同场景下的适用性。
(3)易于扩展:预留接口,方便后期对宏程序进行功能扩展。
三、用户宏程序编写步骤1. 确定宏程序功能在编写宏程序之前,要明确宏程序需要实现的功能。
例如,可以实现一个用于加工圆形轮廓的宏程序。
2. 设计宏程序结构(1)宏程序参数:定义输入输出参数,以便在不同场景下调用。
(2)宏程序主体:实现宏程序功能的代码部分。
(3)宏程序调用:在其他程序中调用宏程序。
3. 编写宏程序代码(1)宏程序参数定义:100 = 圆心X坐标101 = 圆心Y坐标102 = 半径103 = 起始角度104 = 终止角度(2)宏程序主体:200 = 100 + 102 COS[103]201 = 101 + 102 SIN[103]G01 X[200] Y[201]IF [103 LT 104] THEN103 = 103 + 1GOTO 100ENDIF(3)宏程序调用:G65 P1000 A100 B101 C102 D103 E104法兰克Fanuc系统编程用户宏程序教程五、实战演练:编写一个钻孔宏程序在这一部分,我们将通过一个具体的实例,来实践如何编写一个用于钻孔的宏程序。
宏程序基础知识资料
第一章宏程序基础知识第一节常量与变量的含义常量与变量的含义及编程案例数控程序中含有变量的程序称为宏程序。
虽然子程序对编制相同的加工程序非常有用,但用户宏程序由于允许使用变量、算术和逻辑运算及条件转移,使得编制同样的加工程序更简便。
常量普通加工程序直接用数值指定G代码和移动距离;例如,GO1和X100.0。
变量使用用户宏程序时,数值可以直接指定或用变量指定。
当用变量时,变量值可用程序或用MDI面板上的操作改变。
#1=#2+100G01 X#1 F300变量用变量符号(#)和后面的变量号指定。
例如:#1表达式可以用于指定变量号。
此时,表达式必须封闭在括号中。
例如:#[#1+#2-12]变量根据变量号可以分成四种类型:1.空变量2.局部变量3.公共变量4.系统变量1.空变量:#0 该变量总是空,没有值能赋给该变量.2.局部变量:#1-#33局部变量只能用在宏程序中存储数据,例如,运算结果.当断电时,局部变量被初始化为空. 调用宏程序时,自变量对局部变量赋值.3.公共变量#100-#199 #500-#999公共变量在不同的宏程序中的意义相同.当断电时,变量#100-#199初始化为空.变量#500-#999的数据保存,即使断电也不丢失.4.系统变量:#1000以上的变量系统变量用于读和写CNC的各种数据,例如刀具补偿,当前位置信息,变量的引用为在程序中使用变量值,指定后跟变量号的地址。
当用表达式指定变量时,要把表达式放在括号中。
例如:G01X[#1+#2]F#3;被引用变量的值根据地址的最小设定单位自动地舍入。
例如:当G00X#1;以1/1000mm的单位执行时,CNC把123456赋值给变量#1,实际指令值为G00X12346.改变引用变量的值的符号,要把负号(-)放在#的前面。
例如:G00X-#1当引用未定义的变量时,变量及地址都被忽略。
例如:当变量#1的值是0,并且变量#2的值是空时,G00X#1 Y#2的执行结果为G00X0未定义的变量当变量值未定义时,这样的变量成为空变量。
宏程序基础
第一章宏程序的基础1.1概述一、宏程序的分类首先我们来讲一下宏程序的分类,A类和B类。
首先在数控车系统比较老的时候,我们系统里面有A类宏,A类宏格式为G65格式,现在已经基本淘汰。
随着科技发达,系统的升级优化,现在的数控系统大多支持B类宏程序,总体而言,现在B类宏是一个主流发展趋势,所以接下来我们的实例讲解都以B类宏程序为例。
二、宏程序的概念简单来理解宏程序是什么?可以这样理解,宏程序就是利用数学公式,函数等计算方式,配合数控系统中的G代码编制出的一种程序,主要加工一些像椭圆,曲线,各类大螺距螺纹和刀具路线相识的一些零件。
随着科技发达,像椭圆,抛物线,等线性零件,用软件或则系统自代G代码可以完成加工,而大螺距异型螺纹这类零件,软件还没达到成熟,所以我们学会宏程序在加工中可以起到一个非常大的作用。
可以弥补多年来数控车对大螺距螺纹的编程难的一个提高。
三、宏程序的特征1.赋值在宏程序中我们通常用法最多的就是变量,比如:#1=1 它就是一个变量。
我们把这一过程,称为赋值。
也就是说,我们把等号后面的数值1,赋值给#1。
而现在#1的值就等于1,也可以理解为#1就是一个代号,用来代替数值1。
2.变量和应用比如:#1=2(把数值2赋值给#1)#2=1(把数值1赋值给#2)#2=#1(程序从上往下执行,思考一下现在#2的值等于多少?)解:当程序执行第一步的时候#1的值等于2,当执行第二步的时候#2的值等于1,当执行第三步的时候这里要注意了,刚才讲过赋值过程,是等号后面的值赋值给等号前面,所以当#1在第一步赋值以后,#1已经等于2了,所以在执行第三步的时候#2的值应该等于2,不在是第二步的1了。
从这里我们可以看出,当程序中有相同的变量#的时候,后面的#号代替前面的#号。
比如:#1=2#1=3最后结果#1的值因该是等于3的。
所以说后面的代替前面的。
四、变量的取值范围1.局部变量(#1-#33)什么叫局部变量,局部变量就是在局部或则可以理解为在单个程序中有效。
数控加工之宏程序编程
05
宏程序编程的发展趋势与展 望
智能化编程
自动化编程
01
利用人工智能和机器学习技术,实现数控加工编程的自动化,
减少人工干预和错误。
自适应加工
02
根据加工材料、刀具、工艺参数等实时调整加工参数,提高加
工效率和精度。
智能故障诊断
03
通过传感器和数据分析技术,实时监测加工过程,自动识别和
预警潜在的故障和问题。
03
宏程序编程的实例
加工椭圆轮廓
总结词
通过宏程序编程,可以高效地加工出精 确的椭圆轮廓。
VS
详细描述
在数控加工中,椭圆轮廓的加工是一个常 见的任务。使用宏程序编程,可以根据给 定的椭圆参数(长半轴和短半轴)以及起 始点和终止点的坐标,自动计算出椭圆轮 廓上的各个点,并控制刀具进行精确加工 。这避免了手动计算和输入大量坐标点, 提高了加工效率和精度。
加工非圆曲线
总结词
宏程序编程能够处理复杂的非圆曲线加工, 满足各种形状需求。
详细描述
非圆曲线在机械零件中经常出现,如凸轮、 叶片等。通过宏程序编程,可以将非圆曲线 方程转化为数控机床能够理解的代码语言, 控制刀具按照给定的非圆曲线轨迹进行加工。 这使得非圆曲线的加工变得简单高效,提高 了零件的制造精度和一致性。
协同编程
支持多用户协同编程和数据共享,提高团队协作效率。
数据云存储
将数控加工数据存储在云端,方便数据管理和备份,提高数据安全性。
感谢您的观看
THANKS
优化工件装夹
合理设计工件装夹方案,减少装夹和 调整时间,提高加工效率。
避免加工误差的注意事项
精确测量和校准
确保测量工具和数控机床的准确性,定期进 行校准和维护。
数控高手必会的宏程序编程知识,你会吗?
数控高手必会的宏程序编程知识,你会吗?现在很多数控技术人员都不懂宏程序,他们认为有了自动编程软件,就不需要学习宏程序了。
事实上,宏程序的功能非常强大,比如编写一些批量、重复的程序,使用宏程序就只需要改动几个数据就可以了,没有必要进行大量重复的编程,可极大简化操作,大幅度提高工作效率。
宏程序可以使用变量进行算术运算、逻辑运算和函数的混合运算,还提供了循环语句、分支语句和子程序调用语句。
一般来说:宏程序适合图形一样,只是尺寸不同的系列零件的编程;适合工艺路径一样,只是位置参数不同的系列零件的编程;适合抛物线、椭圆、双曲线等没有插补指令的曲线编程。
01变量的表示和使用1. 变量表示#I(I=1,2,3,…)或#[<式子>]例:#5,#109,#501,#[#1+#2-12]2. 变量的使用1)地址字后面指定变量号或公式格式:<地址字>#I这里的“I”代表变量号例:F#103,设#103=15则为F15Z-#110,设#110=250 则为Z-250X[#24+#18*COS[#1]]2)变量号可用变量代替例:#[#30],设#30=3 则为#33)变量不能使用地址O,N,I例:下述方法下允许O#1;I#2 6.00×100.0;N#3Z200.0;4)变量号所对应的变量,对每个地址来说,都有具体数值范围例:#30=1100时,则M#30是不允许的5)#0为空变量,没有定义变量值的变量也是空变量6)变量值定义:程序定义时可省略小数点,例:#123=14902变量的种类1. 局部变量#1~#33一个在宏程序中局部使用的变量,其运算结果其他程序不可使用。
例:A宏程序B宏程序……#10=20X#10 不表示X20……断电后清空,调用宏程序时代入变量值2. 公共变量#100~#199,#500~#999各用户宏程序内公用的变量,其运算结果任何程序调用都相同。
例:上例中#10改用#100时,B宏程序中的X#100表示X20#100~#149 断电后清空#500~#531保持型变量(断电后不丢失)3. 系统变量固定用途的变量,其值取决于系统的状态例:#2001值为1号刀补X轴补偿值#5221值为X轴G54工件原点偏置值入时必须输入小数点,小数点省略时单位为μm03运算指令运算式的右边可以是常数、变量、函数、式子式中#j,#k也可为常量式子右边为变量号、运算式1. 定义#I=#j2. 算术运算#I=#j+#k#I=#j-#k#I=#j*#k#I=#j/#k3. 逻辑运算#I=#JOK#k#I=#JXOK#k#I=#JAND#k4. 函数#I=SIN[#j] 正弦#I=COS[#j] 余弦#I=TAN[#j] 正切#I=ATAN[#j] 反正切#I=SQRT[#j]平方根#I=ABS[#j]绝对值#I=ROUND[#j] 四舍五入化整#I=FIX[#j] 上取整#I=FUP[#j] 下取整#I=BIN[#j] BCD→BIN(二进制)#I=BCN[#j] BIN→BCD1) 角度单位为度例:90度30分为90.5度2) ATAN函数后的两个边长要用“/ ”隔开例:#1=ATAN[1]/[-1]时,#1为了35.03) ROUND用于语句中的地址,按各地址的最小设定单位进行四舍五入例:设#1=1.2345,#2=2.3456,设定单位1μmG91X-#1;X-1.235X-#2 F300;X-2.346X[#1+#2];X3.580未返回原处,应改为X[ROUND[#1]+ROUND[#2]];4) 取整后的绝对值比原值大为上取整,反之为下取整例:设#1=1.2,#2=-1.2时若#3=FUP[#1]时,则#3=2.0若#3=FIX[#1]时,则#3=1.0若#3=FUP[#2]时,则#3=-2.0若#3=FIX[#2]时,则#3=-1.05) 指令函数时,可只写开头2个字母例:ROUND→ROFIX→FI6) 优先级函数→乘除(*,1,AND)→加减(+,-,OR,XOR)例:#1=#2+#3*SIN[#4];7) 括号为中括号,最多5重,括号用于注释语句例:#1=SIN[[[#2+#3]*#4+#5]*#6];(3重)04转移与循环指令1. 无条件的转移格式:GOTO n;无条件地转移到程序段n去n:程序段号(1-99999)n也可用变量或表达式来代替GOTO10;GOTO #10;2. 条件转移IF [<条件表达式>] GOTO n;若满足<条件表达式>,下步操作转移到程序段号为n的程序段去。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
工件偏置量:G10 L2 P X Y Z (加工中心)。
G41X Y DG90G54P1G00X Y S M03G90G10L2P0X Y ZG10L1P RG10 P U V W C Q可编程参数入口:G10 L50………G11G10数据设置模式入口、L50可编程参数入口模式(固定的)N……P……R……指定参数入口(N=参数号,P=轴号,R=设置值)G11数据设置模式取消宏程序的调用:G65 P LG65P包含宏程序的程序号(存储为O )L宏程序的循环次数变量的类型:空变量#0局部变量:#1—#33全局变:#100—#149或#500—#531系统变量:#1000—。
局部变量的赋值:A-#1 B-#2 C-#3 D-#7 E-#8 F-#9 H-#11 I-#5 J-#6 K-#6 M-#13Q-#17 R-#18 S-#19 T-#20 U-#21 V-#22 W-#23 X-#24 Y-#25 Z-#26模态宏程序的调用G66仅用于某个轴运动命令调用宏程序G67取消模态宏程序调用宏程序函数:有SIN COS TAN ATAN ASIN ACOS其他函数:ROUND FIX FUPROUND表示四舍五入FIX表示与之最小的整数FUP表示与之最大的整数辅助函数:SQRT表示开方ABS表示绝对值LN表示自然对数函数EXP表示以E为底的指数函数、ADP表示添加小数点的函数、逻辑函数:EQ表示等于、NE表示不等于、GT表示大于、LT表示小于、GE表示大于等于、LE 表示小于等于。
系统变量:从#1000开始#1000through#1015数据输入DI 从PMC向宏程序发送16位信号(逐位读取)#1032用于一次读取所有16位信号#1100through#1115数据输出DO从宏程序向PMC发送16位信号(逐位写入)#1132用于一次向PMC写入所有16位信号#1133用于一次向PMC写入所有32位信号——-99999999到+99999999的数值可用于#1133 #2001through#2200 (A刀具补偿值)(B磨损偏置值)(H代码C)#2201through#2400(B几何偏置值)(H代码C)#2500表示沿X轴的外部工件偏置值。
#2501—G54 #2502-G55 #2503-G56#2504-G57 #2505-G58 #2506-G59#2600表示沿Y 轴的外部工件偏置值#2601—G54 #2602-G55 #2603-G56#2604-G57 #2605-G58 #2606-G59#2700表示沿Z轴的外部工件偏置值#2701—G54 #2702-G55 #2703-G56#2704-G57 #2705-G58 #2706-G59#2800表示沿第四轴的外部工件偏置值#2801—G54 #2802-G55 #2803-G56#2804-G57 #2805-G58 #2806-G59#3000用户宏程序产生报警#3001时钟1-单位1ms#3002时钟2-单位1h#3003单段控制,等待信号FIN#3004进给保持控制,技能给速度倍率控制,准确停止检查控制#3005设置#3011时钟信息—年月日#3012时钟信息—时分秒#4001至#4022模态信息预读程序段-G代码组#4102至#4130模态信息预读程序段-B,D,F,H,M,N,O,S,T,P代码#5001至#5008程序段结束位置#5021至#5028机床坐标位置#5041至#5048工件坐标位置(绝对位置)#5061至#5068跳跃信号位置21:10 2010-1-8#5081至#5088刀具长度补偿值#5101至#5108伺服系统偏置#5201至#5208外部工件偏置值#5221至#5228:G54工件偏置值#5241至#5248:G55工件偏置值#5261至#5268:G56工件偏置值#5281至#5288:G57工件偏置值#5301至#5308:G58工件偏置值#5321至#5328:G59工件偏置值用于模态命令的系统变量:#4001至#4022模态信息(G-代码组)系统变量G代码组G代码命令备注#4001 01 G00 G01 G02 G03 G33 注意G31属于00组#4002 02 G17 G18 G19#4003 03 G90 G91#4004 04 G22 G23#4005 05 G93 G94 G95#4006 06 G20 G21#4007 07 G40 G41 G42#4008 08 G43 G44 G45#4009 09 G73 G74 G76 G80 G81 G82 G83 G84 G85 G86 G87 G88 G89#4010 10 G98 G99#4011 11 G50 G51#4012 12 G65 G66 G67#4013 13 G96 G97#4014 14 G54 G55 G56 G57 G58 G59#4015 15 G61 G62 G63 G64#4016 16 G68 G69#4017 17 G15 G16#4018 18 N/A#4019 19 G40.1 G41.1 G42.1#4020 20 对FS-M和FS-T控制器的N/A#4021 21 N/A#4022 22 G50.1 G51.1高级CNC控制系统的典型G代码模态信息:预处理程序段:#4001到#4022执行程序段:#4201到#4222高级FANUC控制器的系统变量:系统变量号程序地址预处理程序段执行程序段#4102 #4302 B代码—分度轴位置#4107 #4307 D代码—刀具半径偏置号#4108 #4308 E代码—进给速度值(如果可用)#4109 #4309 F代码—进给速度值#4111 #4311 H代码—刀具长度偏置号#4113 #4313 M代码—辅助功能#4114 #4314 N代码—顺序号#4115 #4315 O代码—程序号#4119 #4319 S代码—主轴转速值#4120 #4320 T代码—刀具号#4130 #4330 P代码—附加工件偏置号变量的类型:空变量#0局部变量:#1—#33全局变:#100—#149或#500—#531系统变量:#1000—。
局部变量的赋值:A-#1 B-#2 C-#3 D-#7 E-#8 F-#9 H-#11 I-#5 J-#6 K-#6 M-#13 Q-#17 R-#18 S-#19 T-#20 U-#21 V-#22 W-#23 X-#24 Y-#25 Z-#26分支和循环:IF 函数:IF[条件为真]GOTO nIF[条件为真]THEN[语句]其中AND和OR 等的使用WHILE循环结构:WHILE[条件]DO n有单级嵌套、两级嵌套、三级嵌套。
报警#3000=xxx(xxxxxxxx等内容)宏程序中的定时器:#3001这是一个毫秒定是变量。
#3002是一个小时定时变量。
#3011是保持当前时间。
#3012是指示当前时间。
轴位置数据:ABSIO已编程的前面程序段的终点坐标,#5001到#5015分别对应第1轴到第15轴。
ABSMT机床位置,通常指当前的机床坐标,#5021到#5035分别对应第1轴到第15轴。
ABSOT绝对位置,通常指当前的绝对位置,#5041到#5055分别对应第1轴到第15轴。
ABSKP在G31程序段中执行跳跃运动时存储的相应位置,#5061到#5075分别对应第1轴到第15轴。
刀具偏置值范围#5081到#5095表示当前刀具偏置值,而不是上一个值。
解释系统变量#3007#3901已完成的零件数#3902 需要加工的零件数参数化(相似零件)的编程:外部输出:POPEN开启I/O设备 PCLOS关闭I/O设备BPRNT和DPRNT功能BPRNT是以位为单位输出,仅对数据有效DPRNT是以纯文本格式输出,数据或文本(ISO或ASCII文本)注意穿孔机可以是任何外部的RS-232设备关于G31的应用:基本用于测量用。
G代码宏程序调用—10个可用选项—G65 G66和G67除外。
FANUC 系统16/18/21参数号描述《有效数据位1—255》6050 G代码调用存储在程序O9010中的用户宏程序6051 G代码调用存储在程序O9011中的用户宏程序6052 G代码调用存储在程序O9012中的用户宏程序6053 G代码调用存储在程序O9013中的用户宏程序6054 G代码调用存储在程序O9014中的用户宏程序6055 G代码调用存储在程序O9015中的用户宏程序6056 G代码调用存储在程序O9016中的用户宏程序6057 G代码调用存储在程序O9017中的用户宏程序6058 G代码调用存储在程序O9018中的用户宏程序6059 G代码调用存储在程序O9019中的用户宏程序M代码子程序调用的9个选项:(设置值为:1到97)参数号SUB CALL M 代码调用6071 SUB CALL M 代码程序O9001中的子程序6072 SUB CALL M 代码程序O9002中的子程序6073 SUB CALL M 代码程序O9003中的子程序6074 SUB CALL M 代码程序O9004中的子程序6075 SUB CALL M 代码程序O9005中的子程序6076 SUB CALL M 代码程序O9006中的子程序6077 SUB CALL M 代码程序O9007中的子程序6078 SUB CALL M 代码程序O9008中的子程序6079 SUB CALL M 代码程序O9009中的子程序M代码宏程序调用—10个可用选项参数号描述《有效数据为1—97》6080 M代码调用存储在程序O9020中的用户宏程序6081 M代码调用存储在程序O9021中的用户宏程序6082 M代码调用存储在程序O9022中的用户宏程序6083 M代码调用存储在程序O9023中的用户宏程序6084 M代码调用存储在程序O9024中的用户宏程序6085 M代码调用存储在程序O9025中的用户宏程序6086 M代码调用存储在程序O9026中的用户宏程序6087 M代码调用存储在程序O9027中的用户宏程序6088 M代码调用存储在程序O9028中的用户宏程序6089 M代码调用存储在程序O9029中的用户宏程序#0空变量。
FANUC系统 0G代码宏程序调用—10个选项:参数号从220到229分别调用O9010到O9019中的宏程序。
M代码宏程序调用—10个选项:参数号从230到239分别调用O9020到O9029中的宏程序。
FANUC 系统10/11/15G代码宏程序调用—10个选项:参数号从7050到7059分别调用O9010到O9019中的宏程序。