宏程序编程知识
- 格式:doc
- 大小:37.50 KB
- 文档页数:6
宏程序入门基础学习资料其实说起来宏就是用公式来加工零件的,比如说椭圆,如果没有宏的话,我们要逐点算出曲线上的点,然后慢慢来用直线逼近,如果是个光洁度要求很高的工件的话,那么需要计算很多的点,可是应用了宏后,我们把椭圆公式输入到系统中然后我们给出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。
宏程序一、概念:含有变量的、能够根据设定数据变化而自行计算的,并运用的程序。
(一)格式: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等公共变量与系统变量一般都不用,重要学习的是基本Ⅰ、Ⅱ类变量的局部变量。
加工中心宏程序编程入门讲解
一、宏程序编程的概念
宏程序编程是一种编程技术,它可以让程序员在编写程序时,使用一组特定的指令来实现某些功能。
宏程序编程的优点在于,它可以让程序员在编写程序时,使用更少的代码来实现更多的功能,从而提高程序的效率。
二、宏程序编程的基本原理
宏程序编程的基本原理是,程序员可以使用一组特定的指令来实现某些功能,而不是使用更多的代码。
宏程序编程的基本原理是,程序员可以使用一组特定的指令来实现某些功能,而不是使用更多的代码。
宏程序编程的基本原理是,程序员可以使用一组特定的指令来实现某些功能,而不是使用更多的代码。
宏程序编程的基本原理是,程序员可以使用一组特定的指令来实现某些功能,而不是使用更多的代码。
三、宏程序编程的应用
宏程序编程可以应用于各种编程语言,如C、C++、Java等,它可以用来实现自动化任务,如
自动生成代码、自动检查代码格式、自动更新文件等。
此外,宏程序编程还可以用于实现更复杂的功能,如自动生成报表、自动处理数据等。
第五章宏程序编程实训要点:●熟悉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总是空变量。
工件偏置量: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中的宏程序。