FANUC用户宏程序.ppt

上传人:牧羊曲112 文档编号:5430672 上传时间:2023-07-06 格式:PPT 页数:281 大小:7.24MB
返回 下载 相关 举报
FANUC用户宏程序.ppt_第1页
第1页 / 共281页
FANUC用户宏程序.ppt_第2页
第2页 / 共281页
FANUC用户宏程序.ppt_第3页
第3页 / 共281页
FANUC用户宏程序.ppt_第4页
第4页 / 共281页
FANUC用户宏程序.ppt_第5页
第5页 / 共281页
点击查看更多>>
资源描述

《FANUC用户宏程序.ppt》由会员分享,可在线阅读,更多相关《FANUC用户宏程序.ppt(281页珍藏版)》请在三一办公上搜索。

1、用户宏程序,1,一、变量的使用二、系统变量三、运算命令四、循环语句五、程序案例六、宏程序的调用七、宏语句的处理八、中断宏程序九、格式数据输入,主要内容:,用户宏程序,2,单元一、概述,用户宏程序,3,主程序,宏程序,一、用户宏程序用途,用户宏程序,4,形状类似但大小不同(圆、方及其它),其它,自动化功能(刀具长度测量)换刀功能,特殊形状(椭圆、球等),大小相同但位置不同(组孔、阵列等),二、宏程序的适用范围,加工程序编程,生产管理,PMC强电控制,用户宏程序,5,三、宏程序与子程序的比较,用户宏程序,6,四、宏程序相关的参数,#5(SBM)用户宏程序语句中,0:单程序段不停止 1:单程序段停止

2、,#6(CCV)复位(Reset)后,公共变量#100#1990:清空1:不清空#7(CLV)复位(Reset)后,局部变量#1#33 0:清空1:不清空0i-D没有6001#7设置,用户宏程序,7,#4(NE9)编辑程序号为90009999的程序0:不禁止1:禁止,#6(NPE)程序登录时,对含有M02,M99,M30的程序段0:视为登录结束1:不视为登录结束,NE8,五、宏程序的保护,1、参数设置,用户宏程序,8,3210密码锁,3210密码锁设置时须谨慎,若使用G10可编程数据输入时,则出现PS0231#报警,3211密码钥匙 设定值后不显示,断电后为0,参数6001#5设为1 T代码调

3、用宏程序,2、密码保护,用户宏程序,9,变量的表示 变量的种类 变量的显示与设定 变量的使用 未定义变量 公共变量名称,单元二、变量,用户宏程序,10,第二章 变量,用户宏程序,11,一、变量的表示,例:#10,#1005表达式也可以用于指定变量号,但需封闭在括号内 例:#2-1,#500/2可在程序段结尾加注释说明变量内容,但需用括号封闭 例:#2=#3-1(TOOL NUMBER),变量符号(#)+变量号,变量的表示方法,用户宏程序,12,二、变量的种类,用户宏程序,13,三、局部变量、公共变量、系统变量的用途和特性,局部变量:#1#33,初始状态为,自变量输入可用程序或MDI方式输入,可

4、以自由使用,属性READ/WRTIE.公共变量:#100#199、#500#999,共600个,在主程序或调用的各子程序以及各个宏之间的通用.公共变量的用途没有在系统中确定,用户可自由使用.#100#199断电不保护,#500#999断电保护,属性READ/WRTIE.公共变量的写保护:参数60316032 对#500#999进行保护,属性为READ,以防止输入/全清的误操作.系统变量:在系统中固定,属性有只读、只写、可读可写三种.系统常量:其值不变的常量,属性只读.,用户宏程序,14,四、变量的显示与设定,变量的显示,1).按下MDI面板上的功能键,OFFSETSETTING,2).按几次

5、键,直至 出现,用户宏程序,15,3).按下 显示宏程序变量值,用户宏程序,16,4).按、显示局部和公共变量值,用户宏程序,17,公共变量的设定,1.找到显示公共变量的画面。2.将光标移至欲设定的变量号上。键入变量号并按 键或按换页键、和光标 键将光标移至欲设定的变量号上3.键入数据并按,用户宏程序,18,五、变量的使用,#i=,将计算结果赋值给对应的变量号,常数、变量、函数和运算符的组合,表示方法,#1=#2+100;#1=#2+#18 SIN#5;,用户宏程序,19,当在程序中定义变量值时,小数点可以省略,#1=123;,#1,123.000,变量的引用,跟在地址后面的数值可用变量来代替

6、。,G01 X10.0 F#1;,F,把#1值作为F的指令值,G01 X-#1+#2 F#1;,把表达式放在括号中,变量的赋值,用户宏程序,20,变量用于地址数据时,被引用变量的值根据地址的最小设定单位自动地四舍五入,例:G01 X#1;当#1赋值为12.3456时,实际指令值为G01 X12.346;设定单位1/1000mm(IS-B),改变引用变量的值的符号时,要把负号放在#的前面,例:G00 X-#1;,用户宏程序,21,当引用未定义的变量时,变量及地址字都被忽略,例:G00 X#1 Y#2;当#1=0,#2为空时 实际指令为G00 X0;,程序号、顺序号和任选程序段跳转号不能使用变量.

7、以下表述是错误的.,O#1;N#3 Y200.0;/#2 G00 X10.;,用户宏程序,22,参数6008#0为0时,最大值,最小值参数6008#0为1时,最大值,最小值超出范围出现PS0111#报警,变量的范围,角度单位为度,角度单位为度(),最小指令单位0.001,用户宏程序,23,六、未定义变量,当变量值未定义时,这样的变量成为变量,变量#0 总是空变量,它不能写只能读,未定义变量的引用,当引用一个未定义的变量时,地址本身也被忽略,用户宏程序,24,系统变量与常量可通过变量号指定,也可通过事先准备的系统变量(常量)名称来指定.1.系统变量 它由(下划线)开始8个英文字母、数字构成.对轴

8、和刀具补偿,作为名称的标号,可用n(n为整数),n可用即运算格式指定.,七、系统变量与常量的名称,用户宏程序,25,注意:当n指定整数以外的数值时,n小数则按四舍五入处理.,2.系统常量 属性R,例#-ABSIO1.4999999:假定此值为#-ABSIO1,也即#5001例#-ABSIO1.5000000:假定此值为#-ABSIO2,也即#5002,用户宏程序,26,八、公共变量的名称,由SETVN指定设定变量名称,即可读取或写入.指令格式如#VAR500,必须以#公共变量名称的格式指定.公共变量名称设定和指令时,可赋值#500#549,共50个,公共变量8个字符,开头必须是字母,断电不消失

9、.例如:SETVN nAVR500,AVR501,AVR502,.;变量号n、n+1、n+2的变量名称:各字符串之间以“,”隔开.字符除了控制出、控制入、EOB,用户宏程序,27,九、设定和指令,用户宏程序,28,单元三、系统变量,用户宏程序,29,接口信号刀具补偿 坐标系偏移(T)CNC报警时钟和零件数时间信息自动运行控制 设定,单元三、系统变量,用户宏程序,30,模态信息位置信息刀具长度补偿值伺服位置、手轮中断、剩余运动量工件原点偏移,系统变量读取CNC内部信息数据,如模态信息、坐标位置、刀具补偿等,系统变量对自动化程序和通用程序十分重要.系统变量及常量.n表示标号,属性R表示只读、W表示

10、只写、R/W表示可读/可写.,用户宏程序,31,一、接口信号,用户宏程序,32,用户宏程序,33,用户宏程序,34,用户宏程序,35,用户宏程序,36,用户宏程序,37,举例,用户宏程序,38,用户宏程序,39,1.变量范围:#2001#2800、#10001#13400(属性R/W)2.刀补A:参数8136#6为1 3.刀补小于等于200个,变量使用范围#2001#2200,二、刀具补偿量(M),用户宏程序,40,4.刀补400个:补偿个数为400,#10001#10400,用户宏程序,41,刀具补偿(M),刀具补偿存储器A,参数8136#6,为0i-D 适用,用户宏程序,42,刀补补偿存储

11、器C,参数8136#6=0;6000#3=0,用户宏程序,43,刀补补偿存储器C,刀补补偿存储器C,参数8136#6=0;6000#3=1,用户宏程序,44,无刀具形状/磨损补偿器,参数8136#6=1 刀具补偿个数小于等于64个,刀具补偿(T),用户宏程序,45,刀具形状/磨损补偿器,参数8136#6=0,刀具补偿(T),用户宏程序,46,刀补C长度补偿,参数8136#6=0,补偿个数小于等于200个,参数6000#3=0.长度补偿参数6000#3=1,补偿个数小于等于200个.长度补偿(F10/F11),用户宏程序,47,刀具半径补偿,参数8136#6=0,补偿个数小于等于200个,参数6

12、000#3=1 6004#5=1(F10/F11)半径补偿,用户宏程序,48,补偿个数为400个(小于等于200个也可使用#2001#2800),参数6000#3=0,用户宏程序,49,参数6000#3=1,用户宏程序,50,长度补偿举例,写入,读取,用户宏程序,51,范围:#20012964、#10001#19200(属性R/W)无刀具形状和磨损补偿器:8136#6=1,补偿个数小于等于64个,刀具补偿量(T),用户宏程序,52,用户宏程序,53,补偿个数200个,补偿个数小于等于64个,也可使用#2001#2499.,用户宏程序,54,有刀具形状和磨损补偿器:8136#6=1,刀补个数小于

13、等于64个磨损补偿,用户宏程序,55,几何补偿,用户宏程序,56,补偿个数200个,补偿个数小于等于64个,也可使用#2001#2964.,用户宏程序,57,工件坐标系偏移(T),三、工件坐标系偏移(T),可以利用系统变量#2501 读取X 轴的工件坐标系偏移量的值,利用#2601 读取Z轴的工件坐标系偏移量的值。此外,将值代入系统变量,可以改变X 轴和Z 轴的工件原点坐标系偏移量。,#2501、#2601(属性:R/W)工件坐标系偏移量,用户宏程序,58,工件坐标系偏移量,读取,写入,用户宏程序,59,四、CNC报警,参数6008#1=0表达式后为不超过26个字符的报警信息屏幕上显示报警号和

14、报警信息,报警号为#3000的值加上3000,#3000=1(WRONG DATA INPUT);,屏幕显示:,3001 WRONG DATA INPUT,例:,注释:,用户宏程序,60,CNC报警有以下两种使用情况:参数MCA(No.6008#1)=0时#3000=n(ALARM MESSAGE);(n:0200)将3000 与变量#3000 的值相加的报警号和报警信息一起在画面上显示出来。(例)#3000=1(ALARM MESSAGE);报警画面上显示出“3001 ALARM MESSAGE”。参数MCA(No.6008#1)=1时#3000=n(ALARM MESSAGE);(n:04

15、095),继MC 后,画面上显示出#3000 报警号和报警信息。(例)#3000=1(ALARM MESSAGE);报警画面上显示出“MC0001 ALARM MESSAGE”。,用户宏程序,61,时钟控制 例如:2009年1月20日 下午4时17分5秒#3011=20090112#3012=161705,五、时钟和零件数,用户宏程序,62,零件数刀补存储器(M)#3980 主程序号,主程序号#4000(属性:R),MDI及DNC方式#4000的值就改变为此时指定 的0号.#4000不管出在哪个层次的子程序内,始终读取主程序号,用户宏程序,63,六、时间信息,计时器地址#3001、#3002(

16、属性:R/W),用户宏程序,64,用户宏程序,65,七、自动运行控制,#3000#3008,时钟 计时器,用户宏程序,66,自动运行控制,当电源接通时复位,#3003的值为0.当单程序段停止无效时,即使操作面板上的单程序段开关设为ON,也不执行单程序段停止.当不指定等待辅助功能(M、S 和T 功能)完成信号时,在辅助功能完成之前程序执行到下列程序段,而且分配完成信号DEN不输出.注意不要在没有等待完成信号下指令下一个辅助指令.,#3003(属性R/W),用户宏程序,67,可通过变量名称实现个别控制.,例钻孔循环(增量编程)宏程序调用指令(相当于G81),用户宏程序,68,准确停止方式G09G6

17、1,#3004(属性R/W)复位被清除,用户宏程序,69,变量名称指令,用户宏程序,70,变量名称指令,用户宏程序,71,当电源接通时,#3003和#3004的值为0.当进给暂停无效时.1 当进给暂停按钮被按下时,机床在单段停止方式停止,但是当用 变量#3003使单程序段方式无效时,单程序段停止不执行.2 当进给暂停按钮压下又松开时,进给暂停灯亮但是机床不停止,程序继续执行,并且机床停在进给暂停有效的第一个程序段.当进给速度倍率无效时,总是100%的倍率,而不管机床操作面板上 的进给速度倍率开关的设置如何.,#3003=1#3004=1时的运行情况,用户宏程序,72,攻丝案例,攻丝宏程序,用户

18、宏程序,73,八、SETTING值,#3005(属性:R/W)处理的数值为将二进制转换成十进制的数值,用户宏程序,74,伴随信息同时停止,#3006(属性W)宏指令发出#3006=1(MESSAGE),程序即可在一个程序段停止,控制输入输出字符26个字符以内,并使用括弧括起来.,用户宏程序,75,镜像状态,#3007(属性:R)镜像的状态,通过读取#3007,即可得知每个轴在该时刻的镜像(设定或DI)的状态,轴与二进制显示时的各位(bit)对应:,用户宏程序,76,用户宏程序,77,9、模态信息,1.#4001#4130 程序段前指定的模态信息2.#4201#4330 当前正在执行的程序段的模

19、态信息3.#4401#4530 被中断型用户宏程序中断的程序段之前指定的模态信息,用户宏程序,78,模态信息(M),用户宏程序,79,模态信息,用户宏程序,80,模态信息(M),用户宏程序,81,模态信息(M),用户宏程序,82,模态信息(T),用户宏程序,83,用户宏程序,84,模态信息分类(M),分类:之前的程序段、执行中的程序段、被中断的程序段,用户宏程序,85,用户宏程序,86,模态信息分类(T),分类:之前的程序段、执行中的程序段、被中断的程序段,用户宏程序,87,用户宏程序,88,例如,用户宏程序,89,十、位置信息,用户宏程序,90,位置信息,#5001#5065(属性:R)位置

20、信息包括程序段的终点位置、当前位置(机械坐标系、工件坐标系)、跳过信号位置,用户宏程序,91,用户宏程序,92,位置信息,例:读取X轴的位置信息,程序指令,X轴坐标位置,变量地址号,用户宏程序,93,十一、刀具长度补偿(M),用户宏程序,94,刀具长度补偿(M),#5081#5085(属性:R)当前正在执行的程序段中的刀具长度补偿量,用户宏程序,95,刀具长度补偿,例:使用刀具长度补偿(M),用户宏程序,96,刀具位置偏置(T),用户宏程序,97,刀具位置偏置(T),#5081#5085(属性:R),用户宏程序,98,刀具位置偏置(T),#5081#5085,#5121#5125(属性:R),

21、用户宏程序,99,用户宏程序,100,刀补C 几何补偿磨损补偿,用户宏程序,101,伺服位置偏差,#5101#5105(属性:R)伺服位置偏差值,十二、伺服位置手轮中断剩余移动,用户宏程序,102,手轮中断,#5121#5125(属性R)手轮中断值(T),用户宏程序,103,剩余移动量,剩余移动量#5181#5185(属性R),用户宏程序,104,十三、工件原点偏移(基本)M系列/T系列,用户宏程序,105,工件原点偏移,#5201#5325(属性:R/W)工件原点偏移,用户宏程序,106,工件原点偏移(M/T),写入,读出,用户宏程序,107,(M),用户宏程序,108,用户宏程序,109,

22、(T),用户宏程序,110,用户宏程序,111,附加坐标系(M),用户宏程序,112,附加坐标系(M),#7001#7945(属性R/W)附加坐标系系统变量号=7000+(坐标系号-1)20+轴号,用户宏程序,113,系统变量号=14000+(坐标系号-1)20+轴号工件坐标系组数追加48组,设定为有效参数N0.8136#2=0有效,#14001#14945 附加坐标系,用户宏程序,114,用户宏程序,115,单元四、运算指令,表达式运算命令的种类运算顺序关于加工精度宏语句与NC语句的区别,用户宏程序,116,运算指令右边的可以是常量、变量、函数或算符的组合表达式中使用不带小数点的常量,一、表

23、达式,用户宏程序,117,二、运算命令的种类,加减乘除,用户宏程序,118,注:三角函数的角度单位为度()。如:9030表示为90.5,三角函数,用户宏程序,119,反三角函数的取值范围,#1=SIN90;#1=COS90;#1=TAN45;#1=ATAN1/1;#1=ATAN-1/-1;,1,0,1,45,225,#1#1#1#1#1,反三角函数,用户宏程序,120,#2=2;#1=SQRT#2;,1.414,#1,其它函数,用户宏程序,121,下取整(FIX):舍去小数点以下部分上取整(FUP):将小数后部分进位到整数部分 ROUND函数:在算术运算或逻辑运算指令中使用时,在第1个小数位置

24、 四舍五入 在NC语句地址中使用时,根据地址的最小设定单位将指 定值四舍五入,数据处理函数,用户宏程序,122,1.0,2.0,-1.0,-2.0,1.0,1.2346,-2.0,1.6794,计算相应的变量值#1,下取整(FIX):舍去小数点以下部分上取整(FUP):将小数后部分进位到整数部分,用户宏程序,123,三、运算顺序,函数 乘除运算(,/,AND)加减运算(+,-,OR,XOR),#1=#2+#3 SIN#4;,用户宏程序,124,可以利用 来改变运算顺序,可嵌套5次,可以使用函数名前面的两个字母来指定该函数。ROUNDRO FIXFI,注意,用户宏程序,125,四、关于加工精度,

25、参数6008#0=0 需要注意的是,当绝对值被减掉时,不能将相对误差控 制在 低于10-15,原因在于用户宏程序变量只有10进制15位的控制精度.加减法的运算 EQNEGTLTGELE基本上与加减法运算相同,需要注意其误差.逻辑关系 例如:IF#1EQ#2 IFABS#1-#2LT0.1,必须评价此 时的误差,如果#1和#2的差在该误差的范围内,则可以认为其值相等.三角函数 在三角函数运算后进行乘法除法运算时需要引起注意.,注意事项,用户宏程序,126,FIX函数 FIX 函数也要同样注意其精度.N1#1=0.002;N2#2=#1*1000;N3#3=FIX#2;此时#3不见得就成为2,为了

26、预防此情况,应按照如下指定 N3#3=FIX#2+0.001,用户宏程序,127,用户宏程序,128,注意:误差还会来自使用6个条件表达式,例 IF#1EQ#2受#1和#2的误差影响,可能导致判断错误.因此,如IFABS#1-#2LT0.001所示,求出两个变量之差,如果该差值不超过允许 值(例子中为0.001),则可以这两变量的值相等.对一个数值进行只舍不入时,应十分小心 例#1=0.001 计算#2=#1*1000;时,#2的结果不正好是2,而是1.99999997.此时,如果指定#3=FIX#2;变量#3的结果不正是2.0而是1.0.在这种情况下,进行误差修正 之后,对该值应进行只舍不入

27、或四舍五入,使结果大于预期的整数值.#3=FIX#2+0.001;#3=ROUND#2;,用户宏程序,129,表达式括号的使用,在表达式中使用的括号为方括号,注意圆括号()用于程序注释.除法运算中分母为”0”时,则会出现(PS0112#报警).当指定超出控制轴数时,则会出现(PS0115#报警变量号超限).括号的嵌套超过5位,则会出现(PS0118#报警).自然对数,当逆对数(#j)小于等于0时,则会出现(PS0119#报警).指数函数,运算结果溢出时,则会出现(PS0119#报警).,用户宏程序,130,五、用户宏程序的特点,含运算指令(=)的程序段含控制指令(如GOTODOEND)的程序段

28、含宏指令(由G65G66G67G代码或M代码的宏指令的程序段。除宏语句以外的程序段称为NC语句.即使在单程序段方式,机床也不会停止,但是,当参数SBM(N0.6000#5)设为1时,在单程序运行方式中机床停止。在刀具半径补偿方式中,宏程序语句段不作为不移动程序段处理。,用户宏程序,131,含有子程序调用指令(例如用M98 或其它M代码或用T代码调用子程序)但没有除O,N 或L 地址之外的其它地址指令的NC 语句其性质与宏程序相同不包含除O、N、P 或L 以外的指令地址的程序段,其性质与宏程序语句相同,与宏程序语句有相同性质的NC语句,用户宏程序,132,单元五、控制指令,无条件转移(GOTO

29、语句)条件转移(IF 语句)条件表达式循环(WHILE 语句)限制,用户宏程序,133,改变流程,1 在程序中,可以使用GOTO语句和IF语句等来改变程序的流程.2 转移和重复有下列三种,用户宏程序,134,一、无条件转移(GOTO 语句),GOTO n;n:程序段号(1-99999),该语句使程序无条件地转移到程序段n去。例如,n也可用变量或表达式来代替 例如GOTO#10;当顺序号在199999范围以外,就会出现(PS1128#报警)警告:不可在一个程序中指定多个相同顺序号的程序段,若是这样,利用GOTO语句转移时,转移目的地不确定,这样十分危险.,GOTO 10;,用户宏程序,135,顺

30、序号存储型GOTO在执行控制指令GOTO语句时,对于以前执行并存储的顺序号,高速地进行顺序号检索,以前执行并存储的顺序号,指就所执行的顺序号在相同程序内没有重复的顺序号以及子程序调用的顺序号,CNC对此进行存储,用户宏程序,136,存储的顺序号在下列情况下将被取消 通电、复位、程序的登录和编辑(含后台及MDI的程序编辑)时,请勿在一个程序中指定多个相同的程序段号。这样十分危险。,用户宏程序,137,IF GOTO n;,若满足,则下步操作转移到程序段号为n的程序段去若不满足,执行下个程序段。,二、条件转移(IF语句),IF THEN;,若满足,执行THEN后的宏程序语句,只执行一个语句。例:I

31、F#1 EQ#2 THEN#3=0;,用户宏程序,138,条件表达式,条件不满足时执行的操作,条件满足时,是,否,IF,GOTO,用户宏程序,139,用户宏程序,140,注:#j 和#k 也可用来代替。,三、条件表达式,用户宏程序,141,程序例子,用户宏程序,142,四、循环(WHILE语句),WHILE DO m;(m=1,2,3),条件成立时执行的程序,END m;,DO m和 END m必须成对使用,并以 其中的m作为识别号相互识别。m的范围为1,2,3。可以根据需要多次使用。,用户宏程序,143,用户宏程序,144,识别号(1,2,3)可多次使用,当重复的循环相互交叉时,会发出PS0

32、124#报警,用户宏程序,145,DO的区域不能交叉下列表达是错误的,DO 一定要在END之前规定下列表达是错误的,END1;程序WHILE DO 1;,用户宏程序,146,DO 循环可以嵌套3级,用户宏程序,147,可以从DO区域的内部向外部转移,例如,不可以从DO区域的外部向内部转移,例如下列表达是错误的,用户宏程序,148,常用格式,(当前值)=(初值);WHILE(当前值)比较(目标值)DO m;(执行循环操作);(当前值)=(当前值)1;ENDm;,用户宏程序,149,五、控制语句的使用限制,无限循环:当指定DOm而省略WHILE语句时,程序则在DO到END之间 无限循环。处理时间:

33、当要转移到GOTO语句中指定的顺序号时,程序先检索顺序号,反向处理数据比正向要用较长的时间,为了缩短处理时间,作为重复指令,请使用WHILE语句。未定义的变量:在使用EQ、NE的条件表达式中,空值和0(零)有不 同的效果,在别的条件表达式中,空值被看成0。,用户宏程序,150,程序例子求110之和,用户宏程序,151,G00 G91 X100.0;Y100.0;,要求:对以上动作重复执行三次。,设#1为动作执行次数,初始值为零。,#1=0;G00 G91 X100.0;Y100.0;#1=1;G00 G91 X100.0;Y100.0;#1=2;G00 G91 X100.0;Y100.0;#1

34、=3;,#1=0;WHILE#1 LT 3 DO 1;G00 G91 X100.0;Y100.0;#1=#1+1;END1;,用户宏程序,152,单元六、程序案例,粗铣圆内腔粗车外圆自动设定坐标系,用户宏程序,153,一、粗铣圆内腔,#5:圆半径的增量#18:最终圆弧半径,O9999;#5=10.0;#18=45.0;#1=0;#2=0;WHILE#1 LT#18 DO 1;#1=#1+#5;IF#1 LE#18 GOTO1;#1=#18;G01 G91 Y#1-#2 F300;G02 J-#1;#2=#1;END1;M30;,N1,当次圆弧半径,前次圆弧半径,用户宏程序,154,程序案例,O

35、0099G00G90G54X0Y0G43Z5.H1S1500M3G1Z-5F300#5=10#18=45#1=0#2=0WHILE#1LT#18DO1#1=#1+#5IF#1LT#18GOTO1#1=#18N1G1G91Y#1-#2F300G2J-#1#2=#1END1G00Z100M5M30,用户宏程序,155,二、粗车外圆,WHILE#26 GT 0 DO1;#26=#26-#6;IF#26 GE 0 GOTO 1;#6=#6+#26;G00 W-#6+#4;G01 U-#24 F#9;#4=#3;G00 U#4*2 W#4;U#24-#4*2;END1;M30;,O9999;#3=1.0

36、;#4=0;#6=10.0;#9=300.0;#24=20.0;#26=48.0;,#26,#3,#6,#24,#3:空程量#6:每次切削量#9:切削速度#24:X方向切削量#26:Z方向切削量,N1,用户宏程序,156,程序案例,O0202T0101G00X50.Z0G98S2000M3#3=1.#4=0#6=10.#9=300.#24=20.#26=48.WHILE#26GT0DO1#26=#26-#6IF#26GE0GOTO1#6=#6+#26,N1G00W-#6+#4G1U-#24F#9#4=#3G00U#4*2W#4U#24-#4*2END1G00X50.Z0M5M30,用户宏程序,

37、157,O1210G00 G54 G90 X0 Y0G31 X100.F200#500=#5061 G00 X0G31 X-100.F200#501=#5061#502=#500+#501/2 G10 G91 L2 P1 X#502M30,三、自动设定坐标系,用户宏程序,158,O9999 IF#4111 EQ 0GOTO 9;#1=#5043;G00 G90 G43 Z50.0;M00;#11000+#4111=#5043;G00 G49 Z#1;M30;N9#3000=9(OFFSET#ERROR);,操作步骤,#2200+#4111,手动刀具长度测量,用户宏程序,159,用户宏程序,16

38、0,用户宏程序,161,单元七、用户宏程序调用,非模态调用G65两种形式的自变量赋值规定系统变量的存储模态调用G66G、M代码调用宏程序M、T代码调用子程序使用M代码计算刀具使用时间利用特定代码的子程序,用户宏程序,162,一、宏程序调用限制,用户宏程序,163,O9999;#21=90.0;#22=120.0;N1 G01 G91 X#21 F300;N2 Y#22;N3 X-#21;N4 Y-#22;M30;,简单的四边形铣削,用户宏程序,164,简单的四边形铣削,O0001;M98 P9999;M30;,O9999;#21=90.0;#22=120.0;N1 G01 G91 X#21 F

39、300;N2 Y#22;N3 X-#21;N4 Y-#22;M99;,O0001;M98 P9999#21=90.0#22=120.0;M30;,O0001;G65 P9999 U90.0 V120.0;M30;,用户宏程序,165,G65 Pp Ll 自变量赋值;,要调用的程序号,重复次数,用G65指令,把由P指令的宏程序体调用L次指定的重复次数的范围为1999999999,L的缺省值为1按照自变量赋值的规定,将自变量的实际数值调到相应的程序体中宏程序调用有2类:宏程序调用和子程序调用,MDI方式也有效,二、非模态调用G65,用户宏程序,166,O0001;G65 P9010 L2 A1.0

40、 B2.0;M30;,O9010;#3=#1+#2;IF#3 GT 360 GOTO 9;G00G90 X#3;N9 M99;,指定重复次数时,在地址L后,指定重复次数(1999999999)的范围,简单调用(G65),用户宏程序,167,三、自变量赋值规定,自变量赋值自变量赋值,用户宏程序,168,自变量赋值,用户宏程序,169,对字母A-Z后加数值来赋值,但G,L,N,O,P除外 I,J,K须按字母顺序指定,用户宏程序,170,G65 P9003 X30.Y45.Z-3.F300;,#9=300;,#24=30.0;,#25=45.0;,#26=-3.0;,用户宏程序,171,自变量赋值,

41、注意:I,J,K的下标代表自变量赋值的顺序,在实际编程中不写,用户宏程序,172,限制,用户宏程序,173,G65 A1.0 B2.0 I-3.0 I4.0 D5.0 P1000;,CNC 内部自动识别自变量赋值和自变量赋值。如果自变量赋值和自变量赋值混合指定的话,后指定的自变量类型有效,自变量指定的混合,注意:MDI方式运行程序同样可以调用程序,用户宏程序,174,四、系统变量的存储,O0001;N10 G00 G90 X100.0 Y50.0;N11 G65 P9999 U90.0 V120.0;N12 X200.0 Y100.0;M30;,O9999;N1 G01 G91 X#21 F3

42、00;N2 Y#22;N3 X-#21;N4 Y-#22;M99;,O9999;#30=#4001;#31=#4003;#32=#4109;N1 G01 G91 X#21 F300;N2 Y#22;N3 X-#21;N4 Y-#22;G#30 G#31 F#32;M99;,用户宏程序,175,例:倾斜的四边形加工,O0001;G92 X0 Y0;G00 G90 X100.0 Y50.0;G65 P9999 U100.0 V50.0 A30.0;M30;,用户宏程序,176,O9999;#30=#4001;#31=#4003;#32=#4109;#10=#21*COS#1;#11=#21*SIN

43、#1;#12=#22*COS90+#1;#13=#22*SIN90+#1;N1 G01 G91 X#10 Y#11 F300;N2 X#12 Y#13;N3 X-#10 Y-#11;N4 X-#12 Y-#13;G#30 G#31 F#32;M99;,用户宏程序,177,例:深孔钻削,O0001;G00 G90 Z50.0;G65 P9999 Z-25.0 R3.0 Q-10.0 F300;M30;,O9999;#1=#18;#2=#18;#3=0;WHILE#1 GT#26 DO1;#1=#1+#17;IF#1 GE#26 GOTO1;#1=#26;G00 G90 Z#2+#3;G01 Z#

44、1 F300;G00 Z#18;#2=#1;#3=1.0;END1;M30;,N1,用户宏程序,178,例:内圆铣削,O9999;#30=#4001;#31=#4003;#32=#4109;#1=#13000+#7;#2=#18-#1;IF#2 LE 0 GOTO9;#3=#2/2;N1 G01 G91 X#3 Y#3 F#9;N2 G02 G17 X#3 Y-#3 R#3;N3 I-#2;N4 X-#3 Y-#3 R#3;N5 G01 X-#3 Y#3;G#30 G#31 G#32;M99;N9#3000=1(OFFSET ERROR);,O0001;G92 X0 Y0 Z0;G65 P99

45、99 R50.0 D1 F300;M30;,R:圆半径(#18)D:刀具半径补偿号(#7)F:进给速度(#9),用户宏程序,179,用户宏程序,180,例:圆周上等距钻孔,B,B,B,X:圆心坐标(#24)Y:圆心坐标(#25)Z:孔的深度(#26)R:钻孔初始高度坐标(#18)U:圆弧半径(#21)A:起始角度(#1)B:角度增量值(#2)H:孔的个数(#11)F:进给速度(#9),用户宏程序,181,调用格式,用户宏程序,182,调用的宏程序,O0002G0G90G54X0Y0G65P9100X100Y50R30Z-50F500I100A0B45H5M30,用户宏程序,183,用户宏程序,

46、184,例:程序案例,用户宏程序,185,O0001;G92 X0 Y0;G65 P9999 U100.0 R80.0 A1.0 F300;M30;,例:椭圆插补,O9999;#30=#4001;#31=#4003;#32=#4109;#5=#1;#24=#5001;#25=#5002;WHILE#5 LE 360 DO1;#2=#24+#21*COS#5;#3=#25+#18*SIN#5;G01 G90 X#2 Y#3 F#9;#5=#5+#1;END1;G#30 G#31 F#32;M99;,用户宏程序,186,O9999;#30=#4001;#31=#4003;#32=#4109;#1=

47、300;#2=100;G28 G91 Z0;#4=#5003;,例:自动刀具长度测量,G00 G90 G53 X200.0 Y150.0;G91 G43 Z-#1 H#11;#5=#5003-#2;G31 Z-#2*2 F300;G00 G90 G49 Z#4;#6=#5063-#11000+#11;IF#6 LE#5-#2 GOTO 9;#11000+#11=#5063-#5;G#30 G#31 F#32;M99;N9#3000=1(CAN NOT MEASURE);,用户宏程序,187,O9500;#1=#4001;#3=#4003;#9=#4019;G28 G91 Z0;G28 X0 Y

48、0;G53 G90 X100.0 Y50.0;G31 G91 Z-200.0 F200;#5=#5063;#2000+#11=#5;G53 G90 G49 G00 Z0;IF#5 EQ 200.0 GOTO 9;G28 G91 Z0;G28 X0 Y0;G#1 G#3 F#9;M99;N9#3000=1;,用户宏程序,188,例:车床钻孔宏程序,调用宏程序,O0002T0101;G98G0X0Z102S1000M3G65P9100Z50K20F150G0X100Z200M5M30,用户宏程序,189,用户宏程序,190,五、模态调用G66,G66 Pp Ll 自变量赋值;G67;,轴每移动一次

49、,调用一次用户宏程序,p:要调用的宏程序号l:重复次数(默认值为1)G67:取消模态调用指令,用户宏程序,191,O0001;G66 P9100 L2 A1.0 B2.0;G00 G90 X100.0;Y200.0;X150.0 Y300.0;G67;M30;,O9100;G00 Z-#1;G01 Z-#2 F300;M99;,程序案例,用户宏程序,192,限制,用户宏程序,193,用户宏程序,194,用户宏程序,195,例:车床切槽使用G66,调用宏指令的程序,宏指令(被调用的程序),用户宏程序,196,G指令调用,六、G、M指令进行宏程序方式调用,G65 P9010 X100.Y20.R3

50、.Z-20.F300;,G81 X100.Y20.R3.Z-20.F300;,将宏程序调用指令G65 P901用G 来代替宏程序号901与G代码之间的对应关系由参数指定在被调用的宏程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作为普通的G、M代码处理,变量赋值,用户宏程序,197,如果设定了负的G代码,成为模态调用(相当于G66)用户不必改变加工程序即可调用用户宏程序创建的固定程序与简单调用一样,两类自变量指定:第一类自变量指定和第二类自变量指定,类型根据所用地址自动识别,用户宏程序,198,将参数No.6050设为81,G代码调用宏程序时,程序和参数对应关系,用户宏程序,199,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号