数车宏程序B及其应用实例K_第1页
数车宏程序B及其应用实例K_第2页
数车宏程序B及其应用实例K_第3页
数车宏程序B及其应用实例K_第4页
数车宏程序B及其应用实例K_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、FANUC0iMate-TC系统宏程序B功能实例应用William.YangFANUC0iMate-TC系统宏程序B功能序宏程序作为一种数控程序编制指令此刻已经被广大数控机床用户所认识,特别是近来几年来跟着各种数控大赛的不停展开,宏程序在大赛中的宽泛应用,在数控行业中掀起了宏程序的高潮。宏程序依据所用的数控机床的不一样略有不一样,但迥然不一样,我们学会了一种机床的宏程序后,再学习其余机床的宏程序就简单了。本文以国际上比较流行的FANUC0iMate数控系统为例,介绍一下宏程序的编程。FANUC0iMate数控系统中宏程序分为用户宏程序功能A和用户宏程序功能B两类。A类宏程序是采纳了G代码和引数

2、进行赋值来表达各样数学运算和逻辑关系的一种方法,此刻这类方法因为编制起来相对复杂,一般只有数控机床上没有配置用户宏程序功能B的用户才使用用户宏程序功能A。当前大部分用户都使用用户宏程序功能B进行编制,因此本书仅以用户宏程序功能B为要点深入介绍宏程序的有关知识。讲座中编写了近来几年广泛应用的一些例子和笔者近来开发的部件使用宏程序的复杂例子。以FANUC0iMate数控系统数控车床和加工中心为例进行讲解,本讲座已经作为我学院的宏程序教学设计进行推行,同时在我学院进行培训的高级技师、技师及高级工中进行了讲解反应优秀,特将本教学设计作为实例供广大使用FANUC0iMate数控系统的用户和有兴趣研究宏程

3、序的读者作为参照。一、宏程序的基本观点在一般的程序中,程序字为常量,只好描绘固定的几何形状,缺少灵巧性和合用性。若能用改变参数的方法使同一主程序能加工形状(属性)同样但尺寸(参数)不一样的部件,加工就会特别方便,也提升了靠谱性。加工不规则形状部件时,机床可能要作非圆曲线运动,一般手工编程达不到要求。在进行自动丈量机遇床要对丈量数据进行办理,这些数据属于变量,一般程序是不可以办理的。针对这类状况,数控机床供给了另一种编程方式,即宏编程。在程序中使用变量,经过对变量进行赋值及办理使程序拥有特别功能,这类有变量的程序叫宏程序。二、宏程序与一般程序的差别一般程序:只好使用常量常量之间不可以够运算程序只

4、好次序履行宏程序:使用变量可赋值变量之间能够运算程序履行时能够跳转三、宏程序中变量的使用赔偿号变量的种类空变量:#0功能:空变量老是空,不可以赋值。用户变量局部变量:#1#33(断电时消除)功能:局部变量只好在本宏程序中储存数据。公共变量:#100#199(断电时消除)#500#999(断电时不消除)功能:公共变量在不一样的宏程序中的意义同样。系统变量:#1000以上功能:系统变量用于读和写CNC运转时各样数据变化。编程中常用的系统变量,见表1。表1刀具赔偿存贮器C的系统变量X轴Z轴刀尖半径R磨损几何磨损几何磨损几何刀尖位置T1#2001#2701#2101#2801#2201#2901#23

5、0149#2049#2749#2149#2849#2249#2949#234964#2064#2164#2264#2364变量的赋值直接赋值变量可在操作面板MACRO内容处直接输入,也可用MDI方式赋值,也可在程序内用以下方式赋值,但等号左侧不可以用表达式,#_=数值(或表达式)。如:#1=20;G01X#1;自变量赋值宏程序体以子程序方式出现,所用的变量可在宏调用时在主程序中赋值。如:G65P9120X100.0Y20.0F20.0;此中X、Y、F对应于宏程序中的变量号,变量的详细数值由自变量后的数值决定。自变量与宏程序体中变量的对应关系有2种,2种方法能够混用,此中G、L、N、O、P不可以

6、作为自变量为变量赋值。变量赋值方法、见表2、表3表2变量赋值方法自变量变量自变量变量自变量变量自变量变量A#1H#11R#18X#24B#2I#4S#19Y#25C#3J#5T#20Z#26D#7K#6U#21E#8M#13V#22F#9Q#17W#23表3变量赋值方法自变量变量自变量变量自变量变量自变量变量A#1I3#10I6#19I9#28B#23#116#20J9#29JJC#3K3#12K6#21K9#30I1#4I4#13I7#22I10#311#54#147#23J#3210K1#6K4#15K7#24K10#33I2#7I5#16I8#252#85#178#26JJJK2#9K5

7、#18K8#27四、运算指令定义变换算术运算宏程序拥有赋值、算术运算、逻辑运算等功能,见表4表4变量的各样运算形式意义详细实例#i=#j定义、变换#20=500#102=#10#i=#j+#k和#5=#10+#102#i=#j-#k差#8=#3+100#i=#j*#k积#120=#1*#24#20=#7*360#i=#j/#k商#104=#8/#7#110=#21/12#i=SIN#j正弦(度)#10=SIN#5#i=ASIN#j反正弦(度)#10=ASIN#16#i=COS#j余弦(度)#133=COS#20#i=ACOS#j反余弦(度)#10=ACOS#16#i=TAN#j正切#30=TA

8、N#21#i=ATAN#j反正切#148=ATAN#1/#2#i=SQRT#j平方根#131=SQRT#10#i=ABS#j绝对值#5=ABS#102#i=ROUND#j四舍五入#112=ROUND#23#i=FIX#j上取整#115=FIX#109#i=FUP#j下取整#114=FUP#33#i=LN#j自然对数#3=LN#100#i=EXP#j指数ex#7=EXP#9逻#i=#jAND#k与#11=#1AND#18辑#i=#jOR#k或#20=#3OR#8运#i=#jXOR#k异或#12=#5XOR25算五、控制指令控制指令起到控制程序流向的作用。1)分支语句(GOTO)其格式为:IF条件

9、表达式GOTOnIF条件表达式THEN表达式若条件表达式为成立则程序转向段号为n的程序段,若条件不知足就持续履行下一句程序,条件式的种类见表5。表5条件式种类条件式意义#jEQ#k#jNE#k#jGT#k#jLT#k#jGE#k#jLE#k2)循环指令格式:WHILE条件式DOm(m=1,2,3);ENDm;当条件式知足时,就循环履行WHILE与ENDm之间的程序段,若条件不知足就履行ENDm;的下一个程序段。注意:1)同一辨别名能够使用多次,但例DOm与ENDm一定成对使用。WHILEDO2;END2;WHILEDO2;END2;循环能够嵌套,但最多嵌套三层。例WHILEDO1;WHILED

10、O2;WHILEDO3;END3;END2;END1;循环不可以够交错。例WHILEDO2;WHILEDO3;END2;END3;能够从循环内向循环外转移。例WHILEDO2;GOTO11;END2;N11;不可以够从循环外向循环内转移。例GOTO11;WHILEDO2;N11;END2;在循环内能够调用用户宏程序或子程序。循环在用户宏程序或子程序中嵌套三层。例WHILEDO2;WHILEDO2;G65;M98;G66;END2;G67;END2;六、宏程序的使用方法宏程序使用格式宏程序格式与子程序同样,结尾用M99返回主程序。O1;主程序O8000;宏程序G65P8000(自变量赋值);变量

11、运算指令宏程序体控制指令M30;M99;选择程序号程序在储存器中的地点决定了该程序一些权限,依据程序的重要程度和使用频次,用户可选择适合的程序号(合用于任何程序),详细如表6所示。表6程序的储存区间O0001O7999程序能自由储存、删除和编写O8000O8999不经设定,该程序就不可以进行储存、删除和编写O9000O9019用于特别调用的宏程序O9020O9899假如有设定参数就不可以进行储存、删除和编写O9900O9999用于机器人操作程序宏程序调用方法非模态调用(纯真调用):指一次性调用宏主体,即宏程序只在一个程序段内有效,叫非模态调用。其格式为:G65P(宏程序号)L(重复次数)自变量

12、赋值;一个自变量是一个字母,对应于宏程序中变量的地点,自变量后边的数值赋给宏程序中与自变量对应的变量。同一语句中能够有多个自变量。模态调用:模态调用功能近似固定循环的续效作用,在调用宏程序的语句后,机床在指定的多个地点循环履行宏程序。宏程序工的模态调用要用G67撤消,其格式为:G66P(宏程序号)L(重复次数)自变量赋值;G67;七、常用数学公式(1)椭圆的标准方程:椭圆的参数方程:XPbZa(2)旋转公式:八、编程举例例1、利用G73和参数方程编程参数方程:O0001;N1G99S500M3T0101;G0X100.0Z100.0;X26.0Z2.0;G73U16.0R10;G73P10Q2

13、0U0.5W0.2F0.2;N10G0X0;G1Z0F0.1;#1=1.0;(开端角的每次增量)#2=0.0;#9=90.0;(角的停止值)#3=10.0;(椭圆的短半轴b,X向)#4=20.0;(椭圆的长半轴a,Z向)WHILE#2LE#9DO1;(#2值#9值时,循环履行)#5=2*#3*SIN#2;(X=2*b*sin,X为直径值)#6=#4*COS#2;G1X#5Z#6-#4F0.1;#2=#2+#1;END1;(Z=a*cos)(直线插补,用很多很短直线来拟合椭圆)(角递加)(循环结束)G1W-5.0F0.1;N20X26.0;G0X100.0Z100.0;M00;N2G99S600

14、M3T0101;G0X26.0Z2.0;G70P10Q20F0.1;G0X100.0Z100.0;M5;M30;例2、利用宏程序调用方法编程参数方程:O0001;N1G99S500M3T0101;G0X100.0Z100.0;X56.0Z2.0;G73U16.0R10;G73P10Q20U0.5W0.2F0.2;N10G0X50.0;G1Z-5.0F0.1;G65P0002;(宏程序调用)G1W-5.0F0.1;N20X56.0;G0X100.0Z100.0;M00;N2G99S600M3T0101;G0X56.0Z2.0;G70P10Q20F0.1;G0X100.0Z100.0;M5;M30

15、;O0002;#1=1.0;#2=0.0;(开端角的每次增量)(角的开端值)#3=10.0;(椭圆的短半轴b,X向)#4=20.0;(椭圆的长半轴a,Z向)WHILE#2LE90.DO1;(#2值90时,循环履行)#5=2*#3*SIN#2;(X=2*b*sin,X为直径值)#6=#4*COS#2;(Z=a*cos)G1X#5Z#6-#4F0.1;(直线插补,用很多很短直线来拟合椭圆)#2=#2+#1;(角递加)END1;(循环结束)M99;(宏程序调用返回)例3、利用标准方程编程标准方程:注1:Z21X2a2b2注2:Z1X2a2b2注1和注2由标准方程Z2X21推导而来!a2b2O0001

16、;N1G99S500M3T0101;G0X100.0Z100.0;X26.0Z2.0;G73U16.0R10;G73P10Q20U0.5W0.2F0.2;N10G0X0.0;G1Z0.0F0.1;J10.0;(宏程序调用同时对自变量赋值)G1W-5.0F0.1;N20X26.0;G0X100.0Z100.0;M00;N2G99S600M3T0101;G0X26.0Z2.0;G70P10Q20F0.1;G0X100.0Z100.0;M5;M30;自变量赋值(详见表2)A0为#1=0.0(X向的开端值)B0.1为#2=0.1(X值的每次增量)C20.0为#3=20.0(椭圆的长半轴a,Z向)I10

17、.0为#4=10.0(椭圆的短半轴b,X向)J10.0为#5=10.0(X向的停止值,注:#5值要#4值)O0002;WHILE#1LE#5DO1;(#1值#5值时,循环履行)#7=1-#1*#1/#4*#4*#3*#3;(见注1)#9=SQRT#7;(z值)(见注2)G1X2*#1Z#9-#3F0.1;(直线插补,用很多很短直线来拟合椭圆)#1=#1+#2;(X值递加)END1;(循环结束)M99;例4、数车椭圆旋转O0001;(以a为旋转半径,以椭圆的圆心为原点,旋转角。)G99M3S800T0101;G0X100.Z100.;G0X62.Z5.;#1=0;(x初值)#2=10;(x终值)

18、#11=0.05;(步距)#3=20;(椭圆的长半轴a)#4=10;(椭圆的短半轴b)#12=45;(旋转角)#15=0;(椭圆的圆心在x方向上的地点)WHILE#1LE#2DO1;(#1值#2值时,循环履行)#6=#1;(x值)#9=#3*#3*1-#6*#6/#4*#4;(见注1)#5=SQRT#9;(z值)(见注2)#7=#5*COS#12-#6*SIN#12;(z向旋转)#8=#5*SIN#12+#6*COS#12;(x向旋转)G1X#15+2*#8Z#7-#3F0.1;(直线插补,用很多很短直线来拟合椭圆)#1=#1+#11;(X值递加)END1;(循环结束)G0X100.Z100.;M30;未旋

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论