数控车床宏程序编程.doc
《数控车床宏程序编程.doc》由会员分享,可在线阅读,更多相关《数控车床宏程序编程.doc(22页珍藏版)》请在咨信网上搜索。
1、(完整版)学了此文档_数控车床宏程序编程就会了数控宏程序 一什么是宏程序?什么是数控加工宏程序?简单地说,宏程序是一种具有计算能力和决策能力的数控程序.宏程序具有如下些特点:1使用了变量或表达式(计算能力),例如: (1)G01 X3+5 ;有表达式3+5(2)G00 X4 F#1 ;有变量#1(3)G01 Y50*SIN3 ;有函数运算2使用了程序流程控制(决策能力),例如:(1)IF 3 GE 9 ;有选择执行命令ENDIF(2)WHILE #1 LT #45 ;有条件循环命令E
2、NDW二用宏程编程有什么好处?1宏程序引入了变量和表达式,还有函数功能,具有实时动态计算能力,可以加工非圆曲线,如抛物线、椭圆、双曲线、三角函数曲线等;2宏程序可以完成图形一样,尺寸不同的系列零件加工;3宏程序可以完成工艺路径一样,位置不同的系列零件加工;4宏程序具有一定决策能力,能根据条件选择性地执行某些部分;5使用宏程序能极大地简化编程,精简程序。适合于复杂零件加工的编程。一宏变量及宏常量1宏变量先看一段简单的程序:G00 X25.0上面的程序在X轴作一个快速定位。其中数据25.0是固定的,引入变量后可以写成:1=25。0 #1是一个变量G00 X#1  
3、;;#1就是一个变量宏程序中,用“"号后面紧跟14位数字表示一个变量,如1,#50,101,。变量有什么用呢?变量可以用来代替程序中的数据,如尺寸、刀补号、G指令编号,变量的使用,给程序的设计带来了极大的灵活性。使用变量前,变量必需带有正确的值.如1=25G01 X1 ;表示G01 X25 1=10 ;运行过程中可以随时改变1的值G01 X#1 ;表示G01 X-10用变量不仅可以表示坐标,还可以表示G、M、F、D、H、M、X、Y、等各种代码后的数字.如:#2=3G#2 X30 表示G03 X30例1 使用了
4、变量的宏子程序。1000 #50=20 ;先给变量赋值M98 P1001 ;然后调用子程序50=350 ;重新赋值M98 P1001 再调用子程序M301001 G91 G01 X#50 ;同样一段程序,50的值不同,X移动的距离就不同M992局部变量编号#0 #49的变量是局部变量。局部变量的作用范围是当前程序(在同一个程序号内)。如果在主程序或不同子程序里,出现了相同名称(编号)的变量,它们不会相互干扰
5、,值也可以不同。例%100N10 3=30 ;主程序中#3为30M98 P101 ;进入子程序后3不受影响4=3 ;3仍为30,所以4=30M30%1014=#3 ;这里的3不是主程序中的3,所以#3=0(没定义),则:#4=0#3=18 ;这里使3的值为18,不会影响主程序中的#3M993全局变量编号#50 #199的变量是全局变量(注:其中100199也是刀补变量)。全局变量的作用范围是整个零件程序。不管是主程序还是子程序,只
6、要名称(编号)相同就是同一个变量,带有相同的值,在某个地方修改它的值,所有其它地方都受影响。例%100N10 50=30 ;先使#50为30M98 P101 ;进入子程序#4=#50 ;50变为18,所以#4=18M30%101#4=50 ; #50的值在子程序里也有效,所以4=30#50=18 ;这里使50=18,然后返回M99为什么要把变量分为局部变量和全局变量?如果只有全局变量,由变量名不能重复,就可能造成变量名不够用;全
7、局变量在任何地方都可以改变它的值,这是它的优点,也是它的缺点。说是优点,是因为参数传递很方便;说是缺点,是因为当一个程序较复杂的时候,一不小心就可能在某个地用了相同的变量名或者改变了它的值,造成程序混乱.局部变量的使用,解决了同名变量冲突的问题,编写子程序时,不需要考虑其它地方是否用过某个变量名。什么时候用全局变量?什么时候用局部变量?在一般情况下,你应优先考虑选用局部变量。局部变量在不同的子程序里,可以重复使用,不会互相干扰.如果一个数据在主程序和子程序里都要用到,就要考虑用全局变量。用全局变量来保存数据,可以在不同子程序间传递、共享、以及反复利用.刀补变量(#100#199)。这些变量里存
8、放的数据可以作为刀具半径或长度补偿值来使用。如#100=8G41 D100 D100就是指加载#100的值8作为刀补半径。注意:上面的程序中,如果把D100写成了D#100,则相当于D8,即调用8号刀补,而不是补偿量为8。4系统变量300以上的变量是系统变量。系统变量是具有特殊意义的变量,它们是数控系统内部定义好了的,你不可以改变它们的用途。系统变量是全局变量,使用时可以直接调用.#0599是可读写的,#600以上的变量是只读的,不能直接修改。其中,#300 599是子程序局部变量缓存区。这些变量在一般情况下,不用关心它的存在,也不推荐你去使用它们。要注意同一个子程序
9、,被调用的层级不同时,对应的系统变量也是不同的。600899是与刀具相关系统变量.1000#1039坐标相关系统变量。10401143参考点相关系统变量。#11441194系统状态相关系统变量.(详见:2华中数控系统系统变量一览)有时候需要判断系统的某个状态,以便程序作相应的处理,就要用到系统变量.5常量PI 表示圆周率, TRUE 条件成立(真), FALSE 条件不成立(假) .二运算符与表达式1算术运算符加 + , 减 , 乘 , 除 / 2条件运算符宏程序运算符EQNEGTGELTLE数学意义条件运算符用在程序流程控制IF和WHILE的条件表达式中,作为判断两个
10、表达式大小关系的连接符.注意:宏程序条件运算符与计算机编程语言的条件运算符表达习惯不同。3逻辑运算符在IF或WHILE语句中,如果有多个条件,用逻辑运算符来连接多个条件.AND (且) 多个条件同时成立才成立 OR (或) 多个条件只要有一个成立即可NOT (非) 取反(如果不是)例1 LT 50 AND #1GT 20 表示:150且1>203 EQ 8 OR #4 LE 10 表示:3=8或者410有多个逻辑运算符时,可以用方括号来表示结合顺序,如:NOT1 LT 50 AND #1GT
11、20-表示:如果不是“1<50 0="" 1="" 2="" 3="124。0" 4="" 6="" 10="" 14="" 20="" 50="3+12" 51="" 55="" 180="" lt="" and="" 2gt="" or="" eq=
12、"" le="" gt="" endw.="" if="" endif="" :="" m99="" g01="" x20="" y15="" else="" g91g01="" x10f250="" g91g01x35f200="" while="" endw="&q
13、uot; .="">0 G91G01X10 ;成立就执行 2=#23 ;修改变量,ENDW ;返回G90 G00 z50 不成立跳到这里执行WHILE中必须有“修改条件变量"的语句,使得其循环若干次后,条件变为“不成立”而退出循环,不然就成为死循环。假真IF条件成立?程序AENDIFELSE程序BIFELSEENDIF流程图假真IF条件成立?程序1程序NENDIFIFENDIF流程图WHILEE
14、NDW流程图假真WHILE条件程序1程序NENDW 图1 流程控制四子程序及参数递传1普通子程序普通子程序指没有宏的子程序,程序中各种加工的数据是固定的,子程序编好后,子程序的工作流程就固定了,程序内部的数据不能在调用时“动态”地改变,只能通过“镜像"、“旋转"、“缩放”、“平移"来有限的改变子程序的用途.例 4001G01 X80 F100 M99子程序中数据固定,普通子程序的效能有限。2宏子程序宏子程序可以包含变量,不但可以反复调用简化代码,而且通过改变变量的值就能实现加工数据的灵活变化或改变程序的流程,实现复杂的加工过程处理。例 %4002G01
15、 Z1 F50 ;Z坐标是变量;进给速度也是变量,可适应粗、精加工。M99例 对圆弧往复切削时,指令G02、G03交替使用。参数#51改变程序流程,自动选择。4003IF 51 GE 1G02 X#50 R#50 ;条件满足执行G02ELSEG03 X50 R50 条件不满足执行G03ENDIF#51=#51*-1 ;改变条件,为下次做准备M99子程序中的变量,如果不是在子程序内部赋值的,则在调用时,就必需要给变量一个值。这就是参数传递问题,变量类型不同,传值的方法也不同。3全局变量传
16、参数如果子程序中用的变量是全局变量,调用子程序前,先给变量赋值,再调用子程序.例: %400#51=40 51为全局变量,给它赋值M98 P401 ;进入子程序后#51的值是40#51=25 ;第二次给它赋值M98 P401 再次调用子程序,进
17、入子程序后#51的值是25M30%401 子程序G91G01X#51F150 ;#51的值由主程序决定M994局部变量传参数问题:%400N1 1=40 ;为局部变量1赋值N2 M98 P401 进入子程序后1的值是40吗?M30401N4 G91G01X#1 子程序中用的是局部变量#1M99结论:主程序中N1行的1与子程序中N4行的1不是同一个
18、变量,子程序不会接收到40这个值。怎么办呢?局部变量的参数传递,是在宏调用指令后面添加参数的方法来传递的。上面的程序中,把N1行去掉,把N2行改成如下形式即可:N2 M98 P401 B40 比较一下,可知多了个B40,其中B代表1,紧跟的数字40代表#1的值是40。这样就把参数40传给了子程序401中的#1.更一般地,我们用G65来调用宏子程序(称宏调用).G65指令:G65是专门用来进行宏子程序调用的,但在华中数控系统里面,G65和M98功能相同,可以互换.宏子程序调用指令G65的格式:G65 P_ L_ A_ B_
19、 Z_P 子程序号L 调用次数AZ 参数,每个字母与一个局部变量号对应。A对应0,B对应1,C对应2,D对应3,如A20,即#0=20;B6。5,即1=6。5;其余类推.换句话说,如果要把数50传给变量#17,则写R50。G65代码在调用宏子程序时,系统会将当前程序段各字母(AZ共26个,如果没有定义则为零)后跟的数值对应传到宏子程序中的局部变量0-#25 。下面列出了宏调用时,参数字母与变量号的对应关系:子程序中的变量#0123#45#6#7#8#9101112传参数用的字母ABCDEFGHIJKLM子程序中的
20、变量131415#16#17#18#1920#2122#232425传参数用的字母NOPQRSTUVWXYZ要注意,由于字母G、P、L等已被宏调用命令、子程序号和调用次数占用,所以不能再用来传递其它任意数据。传进去的是,G65即6=65,P401即#15=401(子程序号),L2即11=2。为了便于参数传递,编写子程序时要避免用6、#15、#11等变量号来接收数据,但这些变量号可以用在子程序中作为内部计算的中间变量暂存数据。另外,G65代码在调用宏子程序时,还会把当前九个轴的绝对位置(工件绝对坐标)传入局部变量30#38.30#38与轴名的对应关系由机床制造厂家规定,通常#30为X轴,#31为
21、Y轴,#32为Z轴。固定循环指令初始平面Z 模态值也会传给变量#26。通过#3038可以轻易得到进入子程序时的轴坐标位置,这在程序流程控制中是很有用的.5系列零件加工所谓系列零件加工,是指不同规格的零件,形状基本相同,加工过程也相同,只是尺寸数据不一样,利用宏程序就可以编写出一个通用的加工程序来。例1 切槽宏子程序。8002G92X90 Z30M98 P8001 U10 V50 A20 B40 C3 ;UVABC对应尺寸变量见下图G00 X90Z30M30%8001 &nb
22、sp; 子程序G00 Z-20 ;切刀Z向定位X#1+5 接近工件,留5毫米距离10=2 ;10已切宽度+#2WHILE #10 LT 21 ;够切一刀? G00 Z-#20#10 ;Z向定位 G01 X0 ;切到要求深度 G00X1+5 &nbs
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文档 数控车床 程序 编程
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。