好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

宏程序编程实例与技巧方法.ppt

40页
  • 卖家[上传人]:m****
  • 文档编号:579673370
  • 上传时间:2024-08-27
  • 文档格式:PPT
  • 文档大小:833.50KB
  • / 40 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 用户宏程序编程 在数控编程中,宏程序编程灵活、高效、快捷,是加工编程的重要补充宏程序不仅可以实现象子程序那样,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等l华中数控宏程序华中数控宏程序lFANUC数控宏程序数控宏程序lSIEMENS数控参数编程数控参数编程 •华中数控用户宏程序 HNC-21/22T 、HNC-21M为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量一、基础知识1. 1. 1. 1. 宏变量及常量宏变量及常量宏变量及常量宏变量及常量(1) 宏变量宏变量HNC-21/22T华中世纪星数控系统变量表示形式为华中世纪星数控系统变量表示形式为# 后跟后跟1~~4位数字,变量种类位数字,变量种类有三种:有三种:①①局部变量局部变量::#0~~#49是在宏程序中局部使用的变量,用于存放宏程序中的数据,是在宏程序中局部使用的变量,用于存放宏程序中的数据,断电时丢失为空。

      断电时丢失为空 一、基础知识②②全全局局变变量量::用用户户可可以以自自由由使使用用#50#50~~#199#199,,它它对对于于由由主主程程序序调调用用的的各各子子程程序序及及各各宏宏程程序序来来说说是是可可以以公公用用的的,,可可以以人人工工赋赋值值HNC-21/22THNC-21/22T子子程程序序嵌嵌套套调调用用的的深深度度最最多可以有多可以有8 8层,每一层子程序都有自己独立的局部变量(变量个数为层,每一层子程序都有自己独立的局部变量(变量个数为5050)③③系统变量系统变量:系统变量为:系统变量为#1000#1000~~#1199#1199,它能获取包含在机床处理器或,它能获取包含在机床处理器或NCNC内存中内存中的只读或读的只读或读/ /写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息工参数等系统信息2) (2) 常量常量PI::圆周率圆周率ππ;;TRUE::条件成立条件成立(真真);;FALSE::条件不成立条件不成立(假假) 1 1 1 1、、、、 宏变量及常量宏变量及常量宏变量及常量宏变量及常量 2 2 2 2、、、、 运算符与表达式运算符与表达式运算符与表达式运算符与表达式(1) 算术运算符:+,-,*,/(2) 条件运算符:EQ(=),NE(≠),GT(>),GE(≥),LT(<=),LE(≤)(3) 逻辑运算符:AND,OR,NOT(4) 函数:SIN,COS,TAN,ATAN,ATAN2,ABS,INT,SIGN,SQRT,EXP(5) 表达式:用运算符连接起来的常数,宏变量构成表达式。

      例如:175/SQRT[2] * COS[55 * PI/180 ];#3*6 GT 14 3 3、赋值语句、赋值语句、赋值语句、赋值语句格式:宏变量=常数或表达式把常数或表达式的值送给一个宏变量称为赋值例如: #2 = 175/SQRT[2] * COS[55 * PI/180; #3 = 124.0 4 4、、、、 条件判别语句条件判别语句条件判别语句条件判别语句IFIF,,,, ELSE ELSE,,,,ENDIFENDIF格式(i): 格式(ii) : IF IF 条件表达式条件表达式 IF IF 条件表达式条件表达式 … …ELSE ELSE ENDIF ENDIF…ENDIFENDIF 5 5、、、、 循环语句循环语句循环语句循环语句WHILEWHILE,,,,ENDWENDW格式:格式:WHILE WHILE 条件表达式条件表达式 … ENDW ENDW 6 6、、、、 宏程序宏程序宏程序宏程序/ /子程序调用的参数传递规则子程序调用的参数传递规则子程序调用的参数传递规则子程序调用的参数传递规则G 代代码码在在调调用用宏宏(子子程程序序或或固固定定循循环环,,下下同同)时时,,系系统统会会将将当当前前程程序序段段各各字字段段(A~Z共共26个个字字段段,,如如果果没没有有定定义义则则为为零零)的的内内容容拷拷贝贝到到宏宏执执行行时时的的局局部部变变量量#0 ~ #25,,同同时时拷拷贝贝调调用用宏宏时时当当前前通通道道九九个个轴轴((轴轴0~轴轴8))的的绝绝对对位位置置(机机床床绝绝对对坐坐标标)到到宏宏执执行行时时的的局局部变量部变量#30 ~ #38。

      宏程序的调用格式为:宏程序的调用格式为:M98 P((宏宏程程序序名名))<变变量量赋赋值值>或或G65 P((宏程序名)宏程序名)<变量赋值变量赋值> ……#25 Z %1000%1000;长半轴、短半轴分别为;长半轴、短半轴分别为4040、、3030的椭圆的椭圆G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;;快速定位至下刀点快速定位至下刀点Z3Z3G01 Z-5 F100G01 Z-5 F100#0=0#0=0;;给角度给角度 赋赋0 0初值初值WHILE WHILE #0#0 LE LE 360360;;当角度当角度 ≤360360度时,执行循环体内容度时,执行循环体内容#1=40*#1=40*COS[#0*PI/180]COS[#0*PI/180];;用椭圆的标准参数方程求动点用椭圆的标准参数方程求动点M M的的X X坐标值坐标值#2=30*#2=30*SIN[#0*PI/180]SIN[#0*PI/180];;用椭圆的标准参数方程求动点用椭圆的标准参数方程求动点M M的的Y Y坐标值坐标值G01 X[#1] Y[#2] G01 X[#1] Y[#2] ;;用直线插补指令加工至用直线插补指令加工至M M点,点,即用直线段逼近椭圆即用直线段逼近椭圆# #0=#0+10=#0+1;角度;角度 的递增步长取的递增步长取1 1度度 ENDWENDWX45 Y15X45 Y15;;切出椭圆切出椭圆G00 Z30 M05G00 Z30 M05X0 Y0X0 Y0M30 M30 7 7、用户宏程序编程思路、用户宏程序编程思路、用户宏程序编程思路、用户宏程序编程思路 %1000%1000;长半轴、短半轴分别为;长半轴、短半轴分别为4040、、3030的椭圆的椭圆G92 X0 Y0 Z30G92 X0 Y0 Z30M03 S800M03 S800G00 X45 Y-15 M08G00 X45 Y-15 M08;;快速定位至快速定位至A A点点Z3Z3G01 Z-5 F100G01 Z-5 F100#2=0#2=0;;给角度给角度 赋赋0 0初值初值WHILE #2 LE 360WHILE #2 LE 360;;当角度当角度 ≤360360度时,执行循环体内容度时,执行循环体内容#11=40*#11=40*COS[#2*PI/180]COS[#2*PI/180];;用椭圆的标准参数方程求动点用椭圆的标准参数方程求动点M M的的X X坐标值坐标值#12=30*#12=30*SIN[#2*PI/180]SIN[#2*PI/180];;用椭圆的标准参数方程求动点用椭圆的标准参数方程求动点M M的的Y Y坐标值坐标值G42 G64 G01 X[#11] Y[#12] D01G42 G64 G01 X[#11] Y[#12] D01;;用直线插补指令加工至用直线插补指令加工至M M点,即用点,即用 直线段逼近椭圆直线段逼近椭圆#2=#2+1#2=#2+1;角度;角度 的递增步长取的递增步长取1 1度度 ENDWENDWG40 G01 X45 Y15G40 G01 X45 Y15;;切出椭圆至切出椭圆至C C点点Z3 M09Z3 M09G00 Z30 G00 Z30 X0 Y0 M05X0 Y0 M05M30 M30 二、 数控铣床用户宏程序编程 宏程序编程实例 ZH7640ZH7640立式加工中心由北京第立式加工中心由北京第三机床厂产生三机床厂产生, ,采用华中铣床、加工采用华中铣床、加工中心数控系统。

      加工范围中心数控系统加工范围600600mm×400mm×500mmmm×400mm×500mm刀库可容纳刀库可容纳2020把刀可用于镗、铣、钻、铰、把刀可用于镗、铣、钻、铰、攻丝等各种加工实例为在预先处攻丝等各种加工实例为在预先处理好的理好的100100mm×100mm×80mmmm×100mm×80mm合金铝合金铝锭毛坯上加工如图所示的零件,其锭毛坯上加工如图所示的零件,其中正五边形外接圆直径为中正五边形外接圆直径为8080mmmm O50005000;;FANUCG54 G90 G00 Z40G54 G90 G00 Z40X70 Y20 M08X70 Y20 M08M03 S600M03 S600G43 Z3 H01G43 Z3 H01G01 Z-5 F100G01 Z-5 F100#0=18#0=18N10N10 #1=80*COS#0 #1=80*COS#0#2=80*SIN#0 #2=80*SIN#0 G41 X#1 Y#2 D01G41 X#1 Y#2 D01#0=#0+72#0=#0+72IF [#0 LT 360] GOTO 10IF [#0 LT 360] GOTO 10G40 X70 Y70G40 X70 Y70Z40 M05Z40 M05M30M30O50005000;;HNC-21M%1000%1000G54 G90 G00 Z40G54 G90 G00 Z40X70 Y20 M08X70 Y20 M08M03 S600M03 S600G43 Z3 H01G43 Z3 H01G01 Z-5 F100G01 Z-5 F100#0=18#0=18IF [#0 LT 360] IF [#0 LT 360] #1=80*COS#0#1=80*COS#0#2=80*SIN#0 #2=80*SIN#0 G41 X#1 Y#2 D01G41 X#1 Y#2 D01#0=#0+72#0=#0+72ENDIFENDIFG40 X70 Y70G40 X70 Y70Z40 M05Z40 M05M30M30宏程序编程实例 三、 数控车床用户宏程序编程%3015%3015#10=0 #10=0 ;;X X坐标(直径值)坐标(直径值)#11=0 #11=0 ;;Z Z坐标坐标T0101T0101M03 S600M03 S600G00 X0 Z34G00 X0 Z34WHILEWHILE #10 LE #10 LE 3232G90 G64 G01 X[#10] Z[#11] F100G90 G64 G01 X[#10] Z[#11] F100#10= #10+0.32#10= #10+0.32#9= #10/2 #9= #10/2 ;;求出求出X X坐标的半径值,便于求解坐标的半径值,便于求解#11#11#11= 32-[#9*#9/8]#11= 32-[#9*#9/8]ENDWENDWG00 X80 Z100 G00 X80 Z100 M05M05M30 M30 用宏程序编制如图所示抛物线的精加工程序。

      用宏指令编制椭圆部分的精加工程序用宏指令编制椭圆部分的精加工程序 %3016%3016;精加工椭圆程序;精加工椭圆程序T0101T0101M03 S800M03 S800G00 X39 Z22G00 X39 Z22#1=60#1=60;;A A点的角度点的角度#2=0#2=0;;X X坐标坐标#3=0#3=0;;Z Z坐标坐标WHILE #1 LE 120WHILE #1 LE 120;;120120是通过计算得来的是通过计算得来的B B点角度点角度#2=2*23*#2=2*23*SIN[#1*PI/180]SIN[#1*PI/180];;直径编程直径编程#3=40*#3=40*COS[#1*PI/180]COS[#1*PI/180]G64 G01 X[#2] Z[#3] F100G64 G01 X[#2] Z[#3] F100#1=#1+1#1=#1+1;;步长取步长取1 1度度ENDWENDWG00 X100G00 X100Z100 M05Z100 M05M30 M30 用户宏程序训练 一、构成1.1. 包含变量包含变量2.2. 包含算术或逻辑运算(包含算术或逻辑运算(= =)的程序段)的程序段3.3. 包含控制语句(例如:包含控制语句(例如:GOTOGOTO,,DODO,,ENDEND)的程序段)的程序段4.4. 包含宏程序调用指令(包含宏程序调用指令(G65G65,,G66G66,,G67G67或其他或其他G G代码,代码,MM代码调用宏程序)的程序段代码调用宏程序)的程序段•FANUC数控系统用户宏程序 二、FANUC宏程序的变量 FANUC数控系统变量表示形式为# 后跟1~4位数字,变量种类有四种:变量号变量号变量类型变量类型功能功能#0#0空变量该变空变量该变量总是空,量总是空,没有任何值能赋给该变量没有任何值能赋给该变量#1—#1——#33—#33局部变量局部变量局部变量只能用在宏程序中存储局部变量只能用在宏程序中存储数据,例如运算结果。

      当断电时数据,例如运算结果当断电时局部变量被初始化为空,调用宏局部变量被初始化为空,调用宏程序时自变量对局部变量赋值程序时自变量对局部变量赋值 变量号变量号变量类型变量类型功能功能#100—#100—#199#199#500—#500—#999#999公共变量公共变量 公共变量在不同的宏程序中的公共变量在不同的宏程序中的意义相同当断电时变量意义相同当断电时变量#100 #100 #199#199初始化为空变量初始化为空变量 #500 #999 #500 #999 的数据保存即使断的数据保存即使断电也不丢失电也不丢失#1000#1000————系统变量系统变量 系统变量用于读和写系统变量用于读和写CNC CNC 运行运行时各种数据的变化例如刀具的当时各种数据的变化例如刀具的当前位置和补偿值等前位置和补偿值等 三、刀具补偿存储器C用G10指令进行设定H H代码的几何补偿值代码的几何补偿值G10L10PG10L10P R R ; ;D D代码的几何补偿值代码的几何补偿值G10L12PG10L12P R R ; ;H H代码的磨损补偿值代码的磨损补偿值G10L11PG10L11P R R ; ;D D代码的磨损补偿值代码的磨损补偿值G10L13PG10L13P R R ; ;P P:刀具补偿号:刀具补偿号R R:绝对值指令(:绝对值指令(G90G90)方式时的刀具补偿值。

      增量值)方式时的刀具补偿值增量值指令(指令(G91G91)方式时的刀具补偿值为该值与指定的刀)方式时的刀具补偿值为该值与指定的刀具补偿号的值相加具补偿号的值相加 四、 FANUC宏程序的转移和循环1. 1. 无条件转移:无条件转移:无条件转移:无条件转移:GOTOnGOTOn ((n n为顺序号,为顺序号,1——999991——99999))例:例:GOTO10GOTO10为转移到为转移到N10N10程序段2 2. . 条件转移:(条件转移:(条件转移:(条件转移:(IFIF语句)语句)语句)语句)1 1))IF [IF [条件表达式条件表达式] GOTOn] GOTOn 当指定的条件表达式满足时,转移到标有顺序号当指定的条件表达式满足时,转移到标有顺序号n n的程序的程序段,如果指定的条件表达式不满足时,执行下个程序段段,如果指定的条件表达式不满足时,执行下个程序段 2 2))IF [IF [条件表达式条件表达式] THEN] THEN当指定的条件表达式满足时,执行预先决定的宏程序语句当指定的条件表达式满足时,执行预先决定的宏程序语句 例:例:IF [#1EQ #2] THEN #3=0IF [#1EQ #2] THEN #3=0;;3. WHILE [条件表达式] DO m; (m=1,2,3)条件满足条件不满足 ENDm…………注:循环允许嵌套,最多注:循环允许嵌套,最多3层,但不允许交叉层,但不允许交叉 五、运算符运算符运算符含义含义EQEQ等于等于NENE不等于不等于GTGT大于大于GEGE大于或等于大于或等于LTLT小于小于LELE小于或等于小于或等于 六、 FANUC宏程序的调用1. 非模态调用G65:格式: G65 Pp Ll <自变量指定>其中 p:要调用的程序号 L:调用次数(默认为1) 自变量:数据传递到宏程序例:G65 P8000 L2 A10. B2.;调用2次程序号8000,经自变量A传递到宏程序#1=10;自变量B传递到宏程序#2=2。

      自变量指定自变量指定ⅠⅠ•根据使用的字母,CNC系统自动地决定自变量指定的类型•地址不需要按字母顺序指定但应符合字地址的格式•但是,I,J 和K 需要按字母顺序指定 自变量指定自变量指定ⅡⅡ•根据使用的字母,系统自动决定自变量指定的类型•自变量指定Ⅱ用于传递诸如三维坐标值的变量•I,J,K 的下标用于确定自变量指定的顺序,在实际编程中不写 如果自变量指定Ⅰ和自变量指定Ⅱ混合指定的话,后指定的自变量类型有效 六、 FANUC宏程序的调用2. 模态调用(G66):G66 Pp Ll <自变量指定>;程序点G67;(取消模态)例:G66 P8000 L2 A10. B2.;G00 G90 Z-10.X-5.G67一旦发出G66 则指定模态调用,即指定沿移动轴移动的程序段后调用宏程序移动到Z-10,调用2次程序号8000,移动到X-5,再调用2次程序号8000 %1000%1000;长半轴;长半轴4040、短半轴、短半轴3030的椭圆的椭圆G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;;Z3Z3G01 Z-5 F100G01 Z-5 F100#0=0#0=0;;给角度给角度 赋赋0 0初值初值WHILE #0 LE 360WHILE #0 LE 360;;#1=40*#1=40*COS[#0*PI/180]COS[#0*PI/180];;#2=30*#2=30*SIN[#0*PI/180]SIN[#0*PI/180];;G01 X[#1] Y[#2] G01 X[#1] Y[#2] ;;# #0=#0+10=#0+1;;ENDWENDWX45 Y15X45 Y15;;G00 Z30G00 Z30X0 Y0 M05X0 Y0 M05M30 M30 七、FANUC与华中系统用户宏程序编程对照G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;;Z3Z3G01 Z-5 F100G01 Z-5 F100#10=0#10=0;;给角度给角度 赋赋0 0初值初值WHILE #10 LE 360WHILE #10 LE 360 DO 1 DO 1;;#1#11=40*COS[#10]1=40*COS[#10];;# #12=30*SIN[#10]12=30*SIN[#10];;G01 X#11 Y#12 G01 X#11 Y#12 ;;# #10=#10+110=#10+1;;END 1END 1X45 Y15X45 Y15;;G00 Z30G00 Z30X0 Y0 M05X0 Y0 M05M30 M30 •SIEMENS数控系统参数编程 与FANUC类似,但功能要弱一些。

      变量以“R”开始,如:R0、R1、R99不包含系统变量,系统变量以 “$”开头一、格式:Rn (n的缺省取值范围为0-99) 例如:R1 R2 … R99二、运算符: 三、 SIEMENS参数编程程序跳转1. 无条件跳转GOTOB LABEL (向后跳转,向程序头跳转)GOTOF LABEL (向前跳转,向程序尾跳转)2. 条件跳转IF 表达式 GOTOB LABEL(向后跳转,向程序头跳转)IF 表达式 GOTOF LABEL(向前跳转,向程序尾跳转)LABEL 为程序段标示符 IF R1>R2 GOTOF MARKE1IF R1>R2 GOTOF MARKE1如果如果R1R1大于大于R2R2,那么跳,那么跳跃到跃到MARKE1 MARKE1 R7<=(R8+R9)*743 GOTOB MARKE1R7<=(R8+R9)*743 GOTOB MARKE1作为条件的复合表达式作为条件的复合表达式IF R10 GOTOF MARK1IF R10 GOTOF MARK1允许确定一个变量允许确定一个变量((INTINT,,REALREAL,,BOOLBOOL或或CHARCHAR)。

      如果变量值)如果变量值为为0 0((=FALSE=FALSE),条件),条件就不能满足;对于所有就不能满足;对于所有其他值,条件为其他值,条件为TRUE TRUE IF R1==0 GOTOF MARKE1 IF R1==1 IF R1==0 GOTOF MARKE1 IF R1==1 GOTOF MARKE2 GOTOF MARKE2 同一程序段中的几个条同一程序段中的几个条件件 四、编程示例 G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;;Z3Z3G01 Z-5 F100G01 Z-5 F100R10=0R10=0;;给角度给角度 赋赋0 0初值初值AAAA::R11=40*COS(R10)R11=40*COS(R10);;R12=30*SIN(R10)R12=30*SIN(R10);;G01 X=R11 Y=R12 G01 X=R11 Y=R12 ;;R10=R10+1R10=R10+1;;IF R10<= 360 GOTOB AAIF R10<= 360 GOTOB AAX45 Y15X45 Y15;;G00 Z30G00 Z30X0 Y0 M05X0 Y0 M05M30 M30 五、SIEMENS与FANUC用户宏程序编程对照长半轴长半轴4040、短半轴、短半轴3030的椭圆的椭圆G54 G90 G00 Z30G54 G90 G00 Z30M03 S800M03 S800G00 X45 Y-15 G00 X45 Y-15 ;;Z3Z3G01 Z-5 F100G01 Z-5 F100#10=0#10=0;;给角度给角度 赋赋0 0初值初值WHILE #10 LE 360WHILE #10 LE 360 DO 1 DO 1;;#1#11=40*COS[#10]1=40*COS[#10];;# #12=30*SIN[#10]12=30*SIN[#10];;G01 X#11 Y#12 G01 X#11 Y#12 ;;# #10=#10+110=#10+1;;END 1END 1X45 Y15X45 Y15;;G00 Z30G00 Z30X0 Y0 M05X0 Y0 M05M30 M30 。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.