版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第9章宏指令编程技术在数控编程中,宏程序编程灵活、高效、快捷,是加工编程的重要补充。宏程序不仅可以实现象子程序那样,对编制相同加工操作的程序非常有用,还可以完成子程序无法实现的特殊功能,例如,型腔加工宏程序、固定加工循环宏程序、球面加工宏程序、锥面加工宏程序等。HNC-21/22T、HNC-21/22M为用户配备了强有力的类似于高级语言的宏程序功能,用户可以使用变量进行算术运算、逻辑运算和函数的混合运算,此外宏程序还提供了循环语句、分支语句和子程序调用语句,利于编制各种复杂的零件加工程序,减少乃至免除手工编程时进行繁琐的数值计算,以及精简程序量。1.宏变量及常量(1)宏变量HNC-21/22T华中世纪星数控系统变量表示形式为#后跟1~4位数字,变量种类有三种:①局部变量:定义的变量的有效范围仅局限于本程序内使用,同样的变量名在主、子程序中使用不同的寄存器地址,是互相独立的变量。HNC系统中,#0~#49为当前局部变量,#200~#599分别为1~8层局部变量。#100=8G41D100;D100就是指加载#100的值8作为刀补半径
注意:上面的程序中,如果把D100写成了D[#100],则相当于D8,即调用8号刀补,而不是补偿量为8。②全局变量:用户可以自由使用#50~#199,它对于由主程序调用的各子程序及各宏程序来说是可以公用的,可以人工赋值。子程序嵌套调用的深度最多可以有8层,每一层子程序都有自己独立的局部变量(变量个数为50)。③系统变量:系统变量为#1000~#1199,它能获取包含在机床处理器或NC内存中的只读或读/写信息,包括与机床处理器有关的交换参数、机床状态获取参数、加工参数等系统信息。(2)常量PI:圆周率π;TRUE:条件成立(真);FALSE:条件不成立(假)2、运算符与表达式(1)算术运算符:+,-,*,/(2)条件运算符:EQ(=),NE(≠),GT(>),GE(≥),LT(<),LE(≤)(3)逻辑运算符:AND,OR,NOT(4)函数:SIN[](正弦),COS[](余弦),TAN[](正切),ATAN[](反正切),ABS[](绝对值)INT[](取整),SIGN[](符号),SQRT[](开方),EXP[](指数)(5)表达式:用运算符连接起来的常数,宏变量构成表达式。例如:175/SQRT[2]*COS[55*PI/180];#3*6GT143、赋值语句格式:宏变量=常数或表达式把常数或表达式的值送给一个宏变量称为赋值。例如:#2=175/SQRT[2]*COS[55*PI/180;
#3=124.04、条件判别语句IF,ELSE,ENDIF,
GOTO格式(i):
格式(ii):IF条件表达式
IF条件表达式(满足条件时执行
(满足条件时执行的程序行)
…的程序行)ELSEENDIF(不满足条件时执行格式(iii):的程序行)GOTOnENDIF(n为无条件跳转的段号)5、循环语句WHILE,ENDW格式:WHILE条件表达式
…ENDW说明:在这种循环结构中,当条件成立时,则重复执行循环体语句,直至条件全部满足后,跳出循环体。循环体中,通常包含改变循环变量值的语句。6、车削宏指令编程例9-1使用宏编程编制加工如图所示抛物线轮廓的精车程序。抛物线精车轮廓加工图示抛物线方程为编程思路:采用循环程序结构,以Z值为循环变量,循环间距0.1,按照来计算每一步的X值,Z的取值范围为−40≤Z≤0。%0001T0101G90G00X45Z5S600M03G90G00X0Z2;G01Z0F200;#1=−0.1;#2=−40;WHILE#1GE#2;#3=SQRT[−40*#1];G01X[#3]Z[#1];#1=#1−0.1;ENDWG90G0X[#3+0.5];X45Z5;M05M30走到右端的起刀点走刀到抛物线的起点循环初值,Z右边界循环终值,Z左边界循环语句,以Z作循环变量计算X直径值加工拟合的小线段Z变化一个步长
X方向向外退刀0.5退刀到右端外5mm处例2使用宏编程编制加工如图所示抛物线轮廓的精车程序。%3015#10=0;X坐标(直径值)#11=32;Z坐标T0101M03S600G00X0Z34WHILE#10LE32G90G01X[#10]Z[#11]F100#10=#10+0.1#9=#10/2;求出X坐标的半径值,便于求解#11#11=32-[#9*#9/8]ENDWG00X80Z100M05M30例9-2使用宏编程编制加工如图所示椭圆轮廓的粗精车程序。选定椭圆线段的Z坐标为自变量#2,起点S的Z坐标为Z1=8,终点T的Z坐标为Z2=-8。则自变量#2的初始值为8,终止值为-8。%0001T0101G90M03S700G00X33Z2G71U1R0.5P10Q20X0.6F100N10G01X10F60S1000Z-10X24Z-22;公式曲线起点#2=8;设Z为自变量#2,给自变量#2赋值8WHILE#2GE[-8];自变量#2的终止值-8:Z2=-8
;因变量#1:
用#1、#2代替X、Z#11=-#1+15;工件坐标系下的X坐标值#11#22=#2-30;工件坐标系下的Z坐标值#22G01X[2*#11]Z[#22];直线插补,X为直径编程#2=#2-0.1;自变量以步长0.1变化ENDW(循环结束)N20G01Z-50G00X100Z80M05M307、子程序调用及参数传递1.普通子程序
普通子程序指没有宏的子程序,程序中各种加工的数据是固定的,子程序编好后,子程序的工作流程就固定了,程序内部的数据不能在调用时“动态”地改变,只能通过“镜像”、“旋转”、“缩放”、“平移”等来有限的改变子程序的用途。2.宏子程序
宏子程序可以包含变量,不但可以反复调用简化代码,而且通过改变变量的值就能实现加工数据的灵活变化或改变程序的流程,实现复杂的加工过程处理。%3002IF#51GE1G02X[#50]R[#50]ELSEG03X[−#50]R[#50]ENDIF#51=#51*[−1]M99
条件满足执行G02
条件不满足执行G03
改变条件,为下次做准备
子程序中的变量,如果不是在子程序内部赋值的,则在调用时,就必需要给变量一个值。这就是参数传递问题,变量类型不同,传值的方法也不同。(1)全局变量传递参数
如果子程序中用的变量是全局变量,调用子程序前,先给变量赋值,再调用子程序。%3000#51=40M98P3003#51=25M98P3003M30%3003G91G01X[#51]F150M99#51为全局变量,给它赋值进入子程序后#51的值是40第二次给它赋值,再次调用子程序,进入子程序后#51的值是25子程序#51的值由主程序决定(2)局部变量传递参数
通过使用M98PxxxxA__B__C__…Z__指令格式,可在调用子程序的同时,将主程序A~Z各字段的内容拷贝到宏执行的子程序为局部变量 #0~#25预设的存储空间中,从而实现参数传递。传值的规则是:A→#0,B→#1,C→#2,…,X→#23,Y→#24,Z→#25,即A后的值在子程序中可用 #0来调用,B后的值在子程序中可用 #1来调用,以此类推,Z后的值在子程序中可用 #25来调用。
基于这一规则,可以将加工某类轮廓的宏子程序模块化,不在子程序中对轮廓尺寸变量赋值,将其编写成依赖于变量的标准程序格式,由主程序传递不同的参数调用即可得到不同的加工结果。
例:如图所示,利用宏参数传递完成切槽加工的主、子程序的编程。
%300T0101G00X90Z30M03S300M98P3004U10V50W80A20B40C3;G00X90Z30M05M30%3004G00Z[−#22+#21+#20];X[#1+5];#10=#2;WHILE#10LE#21;U、V、W、A、B、C对应尺寸
切刀Z向定位接近工件,留5毫米距离#10已切宽度+#2是否够切一刀G00Z[−#22+#21+#20−#10];G01X[#0]F20;G00X[#1+5];#10=#10+#2−1;ENDWG00Z[−#22+#20];G01X[#0]G00X[#1+5]G00X90Z30M99Z向定位切到要求深度X退刀到工件外修改#10
切最后一刀8、铣削宏程序编程
数控铣和加工中心都是三坐标及三坐标以上的编程加工,且都具有钻、镗循环的点位加工能力,使用宏编程技术解决问题的情形就很多。除了非圆曲线边廓的外形或槽形加工可考虑使用宏编程外,粗铣和精铣的动态刀补实现、均布孔的钻镗加工、三维空间上的斜坡面与曲面铣削加工等等都是展现宏编程优势的舞台。在很多数控系统中,钻、镗循环的编程功能本身就是通过宏编程技术来拓展的。
例9-4利用动态刀补方法加工如图所示的正多边形槽。
图示槽形为规则边廓,最小圆角半径为R5,用 Ф10的刀具直接按正多边形边廓编程,多边形两个交点的坐标已算出(见右图),其余各点坐标均可方便推算出来。
加工编程思路:深度方向共分三层切削,每层下降5mm,由循第一层WHILE实现。径向分次由第二层循环WHILE控制,仅编写一个带刀补的槽形边廓的加工程序。已知最大、最小刀补半径和精修余量,按(0.6~0.8)大小预设一个粗切间距,则:粗切余量 = 最大刀补−最小刀补−精修余量粗切次数≥粗切余量/预设粗切间距(圆整为整数)实际粗切间距 = 粗切余量/圆整后的粗切次数槽形加工采取由内向外环切的方式,最后一次粗切时保留一个精修余量,再以实际刀具半径大小作最终刀补继续精修一圈。粗、精切由选择分支判断后决定刀补算法。当粗切一圈后的动态刀补值介于精修刀补半径和粗切间距之间,即剩最后一次精修时,此时可直接将精修刀补设为动态刀补,再作一次切削循环以完成精修;否则视为粗切,按实际粗切间距来逐步减小动态刀补值,继续作粗切循环。%0004#1=
−5;#2=−15;#3=35;#4=5;#5=0.2;#6=8;#7=[#3−#4−#5];#9=#7/#6;IFINT[#9]
LT
#9;#9=INT[#9]+1;第一刀切削深度 最终切削深度 最大刀补半径、刀补初值精修刀补半径(刀具半径)精修余量 参考粗切间距 计算粗切余量 粗算粗切次数 如果粗切次数为小数圆整粗切次数
ENDIF;#8=#7/#9;G90G54G00X0Y0S800M03;G43Z10H01M07;G01Z0F100;WHILE#1GE#2;G01Z[#1];#101=#3;WHILE#101GE#4;G01G42X0Y40D101;X23.094;计算实际粗切间距定位到槽形中心 快进下刀到安全面工进下刀到表面 深度分层循环 下刀切入一个深度Z刀补初值赋给刀补专用变量动态刀补循环控制刀补引入,刀补大小为#101的值槽形边廓的加工程序
X46.188Y0X23.094Y−40X−23.094X−46.188Y0X−23.094Y40X0G40X0Y0;IF[#101GT#4]AND[#101LT#8];
#101=#4;ELSE;#101=#101−#8;取消刀补如果是精修刀补为精修刀补半径如果不是精修刀补递减一个粗切间距ENDIFENDW;#1=#1−5;ENDW;G00Z10M09;G91G28Z0M05;M30;本层挖槽循环结束改变加工深度后再做下一层加工深度分层结束提刀回参考点程序结束例9-6精加工如图所示工件的两个沉头孔,选用直径为8mm铣刀。昔乎惰是芒真言翁馅起冉式幕斋挺你缅冕楚我六家蹋户亚雹单人跟眶阎噬数控铣常用指令及编程实例数控铣常用指令及编程实例O0001G92X0Y0Z50M03S600#701=4#50=8#51=9#52=8G00X30Y20M98P1234#50=10#51=11#52=7G00X70Y20M98P1234G00Z50G00X0Y0M05M30O1234G91G41G00X0Y0D01Z-42G01Z-10F100G01Y[#50]G03I[-#50]J0G01Y[-#50]G90Z[#52]
G91X[#51]Y[#51]X[-2*#51]Y[-2*#51]X[2*#51]Y[#51]G40G00X[-#51]G90Z2M99枚邯抱侩遥肋篆俏最焕靶鞘搐卢闰梭惑毕尾扮狈丢甥篓旷欲豢例身住裙俘数控铣常用指令及编程实例数控铣常用指令及编程实例例9-7均布孔加工:在如图所示零件上钻6个均匀分布的孔,需要使用两把刀具分别进行钻孔和锪孔加工。定义X0定义Y0定义R定义ɑ定义n钻孔孔底Z高度R平面Z高度建立工件坐标系下刀到安全高度平面调用子程序,钻6个孔返回参考点换刀锪孔孔底Z高度调用子程序,锪孔%0007#50=0#51=0#52=100#53=0#54=6#55=
−41#56=
−25G90G54G00X0Y0S600M03G43Z10H01M98P100G91G28Z0M05T2M6G90G54X0Y0S600M03G43Z10H02#55=
−30M98P100G91G28Z0M05M30子程序号
孔加工循环
循环结束子程序结束%100#10=0#11=ABS[#54]#57=PI/180WHILE#10LT#11#12=[#53+#10*360/#11]*#57#13=#50+#52*COS[#12]#14=#51+#52*SIN[#12]G90G00X[#13]Y[#14]G00
Z[#56]G01
Z[#55]F50G00Z[#56]#10=#10+1ENDWM99
9-1编写如图所示零件的外轮廓粗精加工程序(设毛坯为直径33毫米的棒料):习
题%0002T0101G90M03S700G00X33Z2G71U1R0.5P10Q20X0.6F100N10G01X10F60S1000Z-10X15(公式曲线起点)#2=15.626(设Z为自变量#2,给自变量#2赋值15.626)WHILE#2GE1.6(自变量#2的终止值1.6:Z2=1.6)(因变量#1:,用#1、#2代替X、Z)#11=-#1+20(工件坐标系下的X坐标值#11:编程使用的是负轮廓,#1前冠以
负;ΔX=20)#22=#2-25.626(工件坐标系下的Z坐标值#22:△Z=-25.626)G01X[2*#11]Z[#22](直线插补,X为直径编程)#2=#2-0.5(自变量以步长0.5变化)ENDW(循环结束)N20G01Z-35G00X100Z80M05M309-2利用宏参数传递完成题图零件的抛物线、椭圆的精车编程。昔乎惰是芒真言翁馅起冉式幕斋挺你缅冕楚我六家蹋户亚雹单人跟眶阎噬数控铣常用指令及编程实例数控铣常用指令及编程实例O8002G92
X50
Z100M98P8001A8
B5
C4
U32
V40
W55G36
G90
X50
Z0M30%8001G64G37
#10=0#11=0;WHILE#11LE#20G01X[#10]Z[-#11]F150
#10=#10+0.08;
#11=#1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年依兰县带编教师招聘考试参考题库及答案解析
- 2026年连江县带编教师招聘考试备考题库及答案解析
- 2026年阳朔县带编教师招聘笔试模拟试题及答案解析
- 2026年琼结县带编教师招聘笔试模拟试题及答案解析
- 2026年建平县带编教师招聘考试备考试题及答案解析
- 2026年唐河县带编教师招聘笔试参考题库及答案解析
- 2026年小金县带编教师招聘笔试模拟试题及答案解析
- 2026年随县带编教师招聘笔试备考试题及答案解析
- 2026年连平县带编教师招聘考试参考题库及答案解析
- 2026年修水县带编教师招聘考试备考题库及答案解析
- DL∕T 1518-2016 变电站噪声控制技术导则
- 煤矿井下无轨胶轮车司机安全技术培训大纲及考核标准
- DB3210T 1178-2024林权地籍调查技术规程
- 专题06文学类文本阅读-七年级下学期语文期末考试真题汇编(北京)
- 《量子力学》全本课件
- 铁塔基础根开自动计算
- YC/T 205-2017烟草及烟草制品仓库设计规范
- 防空警报试鸣暨人防演练方案
- 生物医用材料知识教学提纲
- 距骨软骨损伤
- 研究生学术道德与学术规范课件
评论
0/150
提交评论