数控车编程(实验班)_第1页
数控车编程(实验班)_第2页
数控车编程(实验班)_第3页
数控车编程(实验班)_第4页
数控车编程(实验班)_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、精加工循环G70(一) 指令功能:刀具从起点位置沿着nsnf程序段给出的工件精加工轨迹进行精加工。在G71、G72或G73进行粗加工后,用G70指令进行精车,单次完成精加工余量的切削。G70循环结束时,刀具返回到起点并执行G70程序段后的下一个程序段。(二) 指令格式、参数说明: G71/G72/G73; N(ns); F; S; 精加工路线程序段群 N(nf); G70 P(ns) Q(nf); (三) 注意事项:1. G70必须在nsnf 程序段后编写。如果在nsnf程序段前编写,系统自动搜索到nsnf程序段并执行,执行完成后,按顺序执行nf 程序段的下一程序,因此会引起重复执行nsnf

2、程序段。2. 执行G70精加工循环时,nsnf 程序段中的F、S、T指令有效。3. G96、G97、G98、G99、G40、G41、G42指令在执行G70精加工循环时有效。4. 在G70指令执行过程中,可以停止自动运行并手动移动,但要再次执行G70循环时,必须返回到手动移动前的位置。如果不返回就继续执行,后面的运行轨迹将错位。5. 执行进给保持、单程序段的操作,在运行完当前轨迹的终点后程序暂停。6. 在录入方式中不能执行G70指令,否则产生报警。7. 在同一程序中需要多次使用复合循环指令时,nsnf 不允许有相同程序段号。(四) 编程练习:(五) 作业:轴向粗车循环G71(一) 指令功能:系统

3、根据精车轨迹、精车余量、进刀量、退刀量等数据自动计算粗加工路线,沿与Z轴平行的方向切削,通过多次进刀切削退刀的切削循环完成工件的粗加工。G71的起点和终点相同。本指令适用于非成型毛坯(棒料)的成型粗车。(二) 指令格式、参数说明:G72 W(d) R(e) F S T ;G72 P(ns)Q(nf)U(u)W(w); N(ns) ;F ; S ; ;N(nf);给定粗车时的切削量、退刀量和切削速度、主轴转速、刀具功能定义精车轨迹的程序段区间、精车余量的程序段并执行粗车循环定义精车轨迹的若干连续的程序段,执行G71时,这些程序段仅用于计算粗车的轨迹,实际并未被执行粗车时X轴的切削量,单位:mm,

4、半径值,无符号粗车时X轴的退刀量,单位:mm,半径值,无符号切削用量Ns程序段只能是G0/G1指令;nsnf程序段中不能使用M98/M99指令ns:精车轨迹的第一个程序段的程序段号。 nf:精车轨迹的最后一个程序段的程序段号u:X轴精车余量,单位mm,直径值有符号;w:Z轴精车余量,单位mm,有符号;(三) 指令执行过程:(四) 注意事项:1. nsnf 程序段必须紧跟在G71程序段后编写。如果在G71程序段前编写,系统自动搜索到nsnf程序段并执行,执行完成后,按顺序执行nf 程序段的下一程序,因此会引起重复执行nsnf 程序段。2. 执行G71时,nsnf 程序段仅用于计算粗车轮廓,程序段

5、并未被执行。nsnf 程序段中的F、S、T指令在执行G71循环时无效,此时G71程序段的F、S、T指令有效;执行G70精加工循环时,nsnf程序段中的F、S、T指令有效。3. ns 程序段只能是不含Z(W)指令字的G00、G01指令,否则报警。4. 精车轨迹(nsnf 程序段),X轴、Z轴的尺寸都必须是单调变化(一直增大或一直减小)。5. nsnf程序段中,只能有G功能:G00、G01、G02、G03、G04、G96、G97、G98、G99、G40、G41、G42指令;不能有子程序调用指令(如M98/M99)。6. G96、G97、G98、G99、G40、G41、G42指令在执行G71循环中无

6、效,执行G70精加工循环时有效。7. 在G71指令执行过程中,可以停止自动运行并手动移动,但要再次执行G71循环时,必须返回到手动移动前的位置。如果不返回就继续执行,后面的运行轨迹将错位。(五) 编程练习:(六) 作业:径向粗车循环G72(六) 指令功能:系统根据精车轨迹、精车余量、进刀量、退刀量等数据自动计算粗加工路线,沿与X轴平行的方向切削,通过多次进刀切削退刀的切削循环完成工件的粗加工,G72的起点和终点相同。本指令适用于非成型毛坯(棒料)的成型粗车。(七) 指令格式、参数说明:G71 U(d) R(e) F S T ;G71 P(ns)Q(nf)U(u)W(w); N(ns) ;F ;

7、 S ; ;N(nf);给定粗车时的切削量、退刀量和切削速度、主轴转速、刀具功能定义精车轨迹的程序段区间、精车余量的程序段并执行粗车循环定义精车轨迹的若干连续的程序段,执行G72时,这些程序段仅用于计算粗车的轨迹,实际并未被执行粗车时Z轴的切削量,单位:mm,无符号粗车时Z轴的退刀量,单位:mm,无符号切削用量Ns程序段只能是G0/G1指令;nsnf程序段中不能使用M98/M99指令ns:精车轨迹的第一个程序段的程序段号。 nf:精车轨迹的最后一个程序段的程序段号u:X轴精车余量,单位mm,直径值有符号;w:Z轴精车余量,单位mm,有符号;(八) 指令执行过程:(九) 注意事项:1. nsnf

8、 程序段必须紧跟在G72程序后编写。如果在G72程序段前编写,系统自动搜索到nsnf程序段并执行,执行完成后,按顺序执行nf 程序段的下一程序,因此会引起重复执行nsnf 程序段。2. 执行G72时,nsnf 程序段仅用于计算粗车轮廓,程序段并未被执行。nsnf 程序段中的F、S、T指令在执行G72循环时无效,此时G72程序段的F、S、T指令有效。执行G70精加工循环时,nsnf程序段中的F、S、T指令有效。3. ns 程序段只能是不含X(U)指令字的G00、G01指令,否则报警。4. 精车轨迹(nsnf程序段),X轴、Z轴的尺寸都必须是单调变化(一直增大或一直减小);5. nsnf程序段中,

9、只能有G功能:G00、G01、G02、G03、G04、G96、G97、G98、G99、G40、G41、G42指令;不能有子程序调用指令(如M98/M99)。6. G96、G97、G98、G99、G40、G41、G42指令在执行G71循环中无效,执行G70精加工循环时有效。7. 在G72指令执行过程中,可以停止自动运行并手动移动,但要再次执行G72循环时,必须返回到手动移动前的位置。如果不返回就继续执行,后面的运行轨迹将错位;8. 执行进给保持、单程序段的操作,在运行完当前轨迹的终点后程序暂停;(十) 编程练习:(十一) 作业:封闭切削循环G73(一) 指令功能:系统根据精车余量、退刀量、切削次

10、数等数据自动计算粗车偏移量、粗车的单次进刀量和粗车轨迹,每次切削的轨迹都是精车轨迹的偏移,切削轨迹逐步靠近精车轨迹,最后一次切削轨迹为按精车余量偏移的精车轨迹。G73的起点和终点相同,本指令适用于成型毛坯的粗车。(二) 指令格式、参数说明:G73 U(i) W(k) R(d) F S T ;G73 P(ns)Q(nf)U(u)W(w); N(ns) ;F ; S ; ;N(nf);给定退刀量、切削次数和切削速度、主轴转速、刀具功能的程序段定义精车轨迹的程序段区间、精车余量的程序段并执行粗车循环定义精车轨迹的若干连续的程序段,执行G73时,这些程序段仅用于计算粗车的轨迹,实际并未被执行X轴粗车退

11、刀量(X轴总切削量,单位mm,半径值有符号)Z轴粗车退刀量(Z轴总切削量,单位mm,半径值有符号)切削次数Ns程序段只能是G0/G1/G2/G3指令;nsnf程序段中不能使用M98/M99指令ns:精车轨迹的第一个程序段的程序段号。 nf:精车轨迹的最后一个程序段的程序段号u:X轴精车余量,单位mm,直径值有符号;w:Z轴精车余量,单位mm,有符号;(三) 指令执行过程:(四) 注意事项:1. nsnf 程序段必须紧跟在G73程序段后编写。nsnf 程序段如果在G73程序段前编写,系统能自动搜索到nsnf程序段并执行,执行完成后,按顺序执行nf 程序段的下一程序,因此会引起重复执行nsnf 程

12、序段。2. 执行G73时,nsnf程序段仅用于计算粗车轮廓,程序段并未被执行。nsnf程序段中的F、S、T指令在执行G73时无效,此时G73程序段的F、S、T指令有效。执行G70精加工循环时,nsnf 程序段中的F、S、T指令有效。3. ns 程序段只能是G00、G01、G02、G03指令。4. nsnf 程序段中,只能有下列G功能:G00、G01、G02、G03、G04、G96、G97、G98、G99、G40、G41、G42指令;不能有下列M功能:子程序调用指令(如M98/M99)。 5. G96、G97、G98、G99、G40、G41、G42指令在执行G73循环中无效,执行G70精加工循环

13、时有效。6. 在G73指令执行过程中,可以停止自动运行并手动移动,但要再次执行G73循环时,必须返回到手动移动前的位置。如果不返回就继续执行,后面的运行轨迹将错位。 7. 执行进给保持、单程序段的操作,在运行完当前轨迹的终点后程序暂停。 8. i,u都用同一地址U指定,k,w都用同一地址W指定,其区分是根据该程序段有无指定P,Q指令字。 9. 在录入方式中不能执行G73指令,否则产生报警。10. 在同一程序中需要多次使用复合循环指令时,nsnf 不允许有相同程序段号。(五) 编程练习:(六) 作业:轴向切槽多重循环G74:(一) 指令功能:径向(X轴)进刀循环复合轴向断续切削循环:从起点轴向(

14、Z轴)进给、回退、再进给直至切削到与切削终点Z轴坐标相同的位置,然后径向退刀、轴向回退至与起点Z轴坐标相同的位置,完成一次轴向切削循环;径向再次进刀后,进行下一次轴向切削循环;切削到切削终点后,返回起点(G74的起点和终点相同),轴向切槽复合循环完成。G74的径向进刀和轴向进刀方向由切削终点X(U)、Z(W)与起点的相对位置决定 ,此指令用于在工件端面加工环形槽或中心深孔,轴向断续切削起到断屑、及时排屑的作用。(二) 指令格式、参数说明:G74 R(e);G74 X(U) Z(W) P(i) Q(k) R(d) F ;每次轴向(Z轴)进刀后的轴向退刀量,取值范围099.999(单位:mm),无

15、符号单次轴向切削循环的径向(X轴)切削量,取值范围09999999(单位:0.001mm,半径值),无符号。轴向(Z轴)切削时,Z轴断续进刀的进刀量,取值范围09999999(单位:0.001mm),无符号。切削至轴向切削终点后,径向(X轴)的退刀量, 取值范围099.999(单位:mm,半径值),无符号,省略R(d)时,系统默认轴向切削终点后,径向(X轴)的退刀量为0。 省略X(U)和P(i)指令字时,默认往正方向退刀。切削终点坐标值(三) 指令执行过程:(四) 注意事项:1. 循环动作是由含Z(W)和P(k)的G74程序段进行的,如果仅执行“G74 R(e);”程序段,循环动作不进行;2.

16、 d 和e 均用同一地址R指定,其区别是根据程序段中有无Z(W)和P(k)指令字;3. 在G74指令执行过程中,可以停止自动运行并手动移动,但要再次执行G74循环时,必须返回到手动移动前的位置。如果不返回就继续执行,后面的运行轨迹将错位。4. 执行进给保持、单程序段的操作,在运行完当前轨迹的终点后程序暂停。5. 进行盲孔切削时,必须省略R(d)指令字,因在切削至轴向切削终点无退刀距离。(五) 编程练习:(六) 作业: 径向切槽多重循环G75:(一) 指令功能:轴向(Z轴)进刀循环复合径向断续切削循环:从起点径向(X轴)进给、回退、再进给直至切削到与切削终点X轴坐标相同的位置,然后轴向退刀、径向

17、回退至与起点X轴坐标相同的位置,完成一次径向切削循环;轴向再次进刀后,进行下一次径向切削循环;切削到切削终点后,返回起点(G75的起点和终点相同),径向切槽复合循环完成。G75的轴向进刀和径向进刀方向由切削终点X(U)Z(W)与起点的相对位置决定 ,此指令用于加工径向环形槽或圆柱面,径向断续切削起到断屑、及时排屑的作用。(二) 指令格式、参数说明:注意:进行切槽循环时,必须省略R(d)指令字,因在切削至径向切削终点无退刀距离。G75 R(e);G75 X(U) Z(W) P(i) Q(k) R(d) F ;每次径向(X轴)进刀后的径向退刀量,取值范围099.999(单位:mm),无符号单次径向

18、切削循环的轴向(Z轴)切削量,取值范围09999999(单位:0.001mm,半径值),无符号。径向(X轴)切削时,X轴断续进刀的进刀量,取值范围09999999(单位:0.001mm),无符号。R(d):切削至径向切削终点后,轴向(Z轴)的退刀量,取值范围099.999(单位:mm),无符号。 省略R(d)时,系统默认径向切削终点后,轴向(Z轴)的退刀量为0。 省略Z(W)和Q(k),默认往正方向退刀。切削终点坐标值(三) 指令执行过程:(四) 注意事项:1. 循环动作是由含X(U)和P(i)的G75程序段进行的,如果仅执行“G75 R(e);”程序段,循环动作不进行;2. d 和e 均用同

19、一地址R指定,其区别是根据程序段中有无X(U)和P(i)指令字;3. 在G75指令执行过程中,可使自动运行停止并手动移动,但要再次执行G75循环时,必须返回到手动移动前的位置。如果不返回就再次执行,后面的运行轨迹将错位;4. 执行进给保持、单程序段的操作,在运行完当前轨迹的终点后程序暂停。5. 进行切槽循环时,必须省略R(d)指令字,因在切削至径向切削终点无退刀距离。(五) 编程练习: O0008;G00 X150 Z50 M3 S500; (启动主轴,置转速500)G0 X125 Z-20; (定位到加工起点)G75 R0.5 F150; (加工循环)G75 X40 Z-50 P6000 Q

20、3000; (X轴每次进刀6mm,退刀0.5mm,进给到终点(X40)后,快速返回到起点(X125),Z轴进刀3mm,循环以上步骤继续运行)G0 X150 Z50; (返回到加工起点)M30; (程序结束)(六) 作业:螺纹切削指令GSK980TD具有多种螺纹切削功能,可加工英制/公制的单头、多头、变螺距螺纹与攻牙循环,螺纹退尾长度、角度可变,多重循环螺纹切削可单边切削,保护刀具,提高表面光洁度。 螺纹功能包括:连续螺纹切削指令G32、变螺距螺纹切削指令G34、攻牙循环切削指令G33、螺纹循环切削指令G92、螺纹多重循环切削指令G76。使用螺纹切削功能机床必须安装主轴编码器,切削螺纹时,系统收

21、到主轴编码器一转信号才移动X轴或Z轴、开始螺纹加工,因此只要不改变主轴转速,可以分粗车、精车多次切削完成同一螺纹的加工。GSK980TD具有的多种螺纹切削功能可用于加工没有退刀槽的螺纹,但由于在螺纹切削的开始及结束部分X轴、Z轴有加减速过程,此时的螺距误差较大,因此仍需要在实际的螺纹起点与结束时留出螺纹引入长度与退刀的距离。在螺纹螺距确定的条件下,螺纹切削时X轴、Z轴的移动速度由主轴转速决定,与切削进给速度倍率无关。螺纹切削时主轴倍率控制有效,主轴转速发生变化时,由于X轴、Z轴加减速的原因会使螺距产生误差,因此,螺纹切削时不要进行主轴转速调整,更不要停止主轴,主轴停止将导致刀具和工件损坏。等螺

22、距螺纹切削指令G32:G32 X(U)_ Z(W)_ F(I)_ J_ K_ Q_Q:起始角,指主轴一转信号与螺纹切削起点的偏移角度。取值范围0360000(单位:0.001度)。Q值是非模态参数,每次使用都必须指定,如果不指定就认为是0度。J:螺纹退尾时在短轴方向的移动量(退尾量),取值范围-9999.9999999.999(单位:mm),带正负方向;如果短轴是X轴,该值为半径指定;J值是模态参数。K:螺纹退尾时在长轴方向的长度。取值范围09999.999(单位:mm),如果长轴是X轴,则该值为半径指定;不带方向;K值是模态参数。F:公制螺纹螺距,为主轴转一圈长轴的移动量,取值范围0.001

23、500 mm,F指令值执行后保持有效,直至再次执行给定螺纹螺距的F指令字。I:每英寸螺纹的牙数,为长轴方向1英寸(25.4 mm)长度上螺纹的牙数,也可理解为长轴移动1英寸(25.4 mm)时主轴旋转的圈数。取值范围0.0625400牙/英寸,I指令值执行后保持有效,直至再次执行给定螺纹螺距的I指令字。指令功能:刀具的运动轨迹是从起点到终点的一条直线,从起点到终点位移量(X轴按半径值)较大的坐标轴称为长轴,另一个坐标轴称为短轴,运动过程中主轴每转一圈长轴移动一个导程,短轴与长轴作直线插补,刀具切削工件时,在工件表面形成一条等螺距的螺旋切槽,实现等螺距螺纹的加工。F、I指令字分别用于给定公制、英

24、制螺纹的螺距,执行G32指令可以加工公制或英制等螺距的直螺纹、锥螺纹和端面螺纹和连续的多段螺纹加工 G32为模态G指令; 螺纹的螺距是指主轴转一圈长轴的位移量(X轴位移量则按半径值); 起点和终点的X坐标值相同(不输入X或U)时,进行直螺纹切削; 起点和终点的Z坐标值相同(不输入Z或W)时,进行端面螺纹切削; 起点和终点X、Z坐标值都不相同时,进行锥螺纹切削。Z轴攻丝循环G33: 指令格式:G33 Z(W)_ F(I)_ L_ ; 指令功能:刀具的运动轨迹是从起点到终点,再从终点回到起点。运动过程中主轴每转一圈Z轴移动一个螺距,与丝锥的螺距始终保持一致,在工件内孔形成一条螺旋切槽,可一次切削完

25、成内孔的螺纹加工。 指令说明:G33为模态G指令; Z(W):不输入Z或W时,起点和终点的Z坐标值相同,不进行螺纹切削; F:公制螺纹螺距,取值范围0.001500 mm; I:每英寸螺纹的牙数,取值范围0.0625400牙/英寸; L:多头螺纹的头数,取值范围199,省略L时默认为1头。 循环过程: Z轴进刀攻牙(G33指令前必须指定主轴开); 到达编程指定的Z轴坐标终点后,M05信号输出; 检测主轴完全停止后; 主轴反转信号输出(与原来主轴旋转的方向相反); Z轴退刀到起点; M05信号输出,主轴停转; 如为多头螺纹,重复步骤。 程序示例:图3-37,螺纹M101.5螺纹切削循环G92:G

26、92 X(U)_ Z(W)_ R_ F(I)_ J_ K_ L_螺纹切削终点坐标值,单位mm切削起点与切削终点X轴绝对坐标的差值(半径值),当R与U的符号不一致时,要求RU/2,单位:mmL:多头螺纹的头数,该值的范围是:199,模态参数。(省略L时默认为单头螺纹)F公制螺纹螺距,取值范围0.001500 mm,F指令值执行后保持,可省略输入; I英制螺纹每英寸牙数,取值范围0.0625400牙/英寸J:螺纹退尾时在短轴方向的移动量,取值范围09999.999(单位:mm),不带方向(根据程序起点位置自动确定退尾方向),模态参数,如果短轴是X轴,则该值为半径指定;K:螺纹退尾时在长轴方向的长度

27、,取值范围09999.999(单位:mm),不带方向,模态参数,如长轴是X轴,该值为半径指定指令功能:从切削起点开始,进行径向(X轴)进刀、轴向(Z轴或X、Z轴同时)切削,实现等螺距的直螺纹、锥螺纹切削循环。执行G92指令,在螺纹加工未端有螺纹退尾过程:在距离螺纹切削终点固定长度(称为螺纹的退尾长度)处,在Z轴继续进行螺纹插补的同时,X轴沿退刀方向指数或线性(由参数设置)加速退出,Z轴到达切削终点后,X轴再以快速移动速度退刀。G92指令可以分多次进刀完成一个螺纹的加工,但不能实现2个连续螺纹的加工,也不能加工端面螺纹。G92指令螺纹螺距的定义与G32一致,螺距是指主轴转一圈长轴的位移量(X轴位

28、移量按半径值)。 锥螺纹的螺距是指主轴转一圈长轴的位移量(X轴位移量按半径值),B点与C点Z轴坐标差的绝对值大于X轴(半径值)坐标差的绝对值时,Z轴为长轴;反之,X轴为长轴。多重螺纹切削循环G76:指令功能:通过多次螺纹粗车、螺纹精车完成规定牙高(总切深)的螺纹加工,如果定义的螺纹角度不为0,螺纹粗车的切入点由螺纹牙顶逐步移至螺纹牙底,使得相邻两牙螺纹的夹角为规定的螺纹角度。G76指令可加工带螺纹退尾的直螺纹和锥螺纹,可实现单侧刀刃螺纹切削,吃刀量逐渐减少,有利于保护刀具、提高螺纹精度。G76指令不能加工端面螺纹。加工轨迹如图所示。G76 P(m)(r)(a) Q(dmin) R(d);G76

29、 X(U) Z(W) R(i) P(k) Q(d) F(I) 螺纹终点坐标(单位:mm)螺纹锥度,螺纹起点与螺纹终点X轴绝对坐标的差值, 取值范围为-99999999999999(单位:mm,半径值)螺纹牙高,螺纹总切削深度, 取值范围为19999999(单位:0.001mm,半径值、无符号)。未输入P(k)时,系统报警第一次螺纹切削深度, 取值范围为19999999(单位:0.001mm,半径值、无符号)。未输入d时,系统报警;螺纹退尾长度0099(单位:0.1L,L为螺纹螺距)相邻两牙螺纹的夹角,取值范围为0099,单位:度()螺纹粗车时的最小切削量,取值范围为0099999,(单位:0.

30、001mm,无符号,半径值)螺纹精车次数0099 (单位:次)螺纹精车的切削量,取值范围为0099.999,(单位:mm,无符号,半径值)第五章 宏程序编程 第一节 用户宏程序简介用户宏程序是FANUC数控系统及类似产品中的特殊编程功能。用户宏程序的实质与子程序相似,它也是把一组实现某种功能的指令,以子程序的形式预先存储在系统存储器中,通过宏程序调用指令执行这一功能。在主程序中,只要编入相应的调用指令就能实现这些功能。一组以子程序的形式存储并带有变量的程序称为用户宏科序,简称宏程序;调用宏程序的指令称为“用户宏程序指令”或宏程序调用指令(简称宏指令)。 宏程序与普通程序相比较,普通程序的程序字

31、为常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。而在用户宏程序的本体中,可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理。通过使用宏程序能执行一些有规律变化(如非圆二次曲线轮廓)的动作。 用户宏程序分为A、B两类。通常情况下,FANUC 0TD系统采用A类宏程序,而FANUC 0i系统则采用B类宏程序。 第二节 A类宏程序一、变量 在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址,为了使程序更加具有通用性、灵活性,故在宏程序中设置了变量。 1、 变量的表示 一个变量由符号“#”和变量序号组成,如:# i (i=l,2,3,)。 2、变量的引用 将跟随在

32、地址符后的数值用变量来代替的过程称为引用变量。例G01 X#100 Y-#101 F#102; 当#100 = 100.0 、#101 =50.0 、#102 =80时, 上面这句程序即表示为G01 X100.0 Y-50.0 F80; 3、变量的种类 变量分为局部变量、公共变量(全局变量) 和系统变量三种。在A、B类宏程序中,其分类均相同。1) 局部变量。局部变量(#1#33)是在宏程序中局部使用的变量。当宏程序1调用宏程序2而且都有变量#1时,由于变量#1服务于不同的局部,所以1中的#1与2 中的#1不是同一个变量,因此可以赋于不同的值,且互不影响。 2) 公共变量。公共变量(#100#1

33、49、#500#549)贯穿于整个程序过程。同样,当宏程序1调用宏程序2而且都有变量#100时,由于#100是全局变量,所以1中的#100与2中的#100是同一个变量。 3) 系统变量。系统变量是指有固定用途的变量,它的值决定系统的状态。系统变量包括刀具偏置值变量、接口输入与接口输出信号变量及位置信号变量等。二、用户宏程序的格式及调用 1、宏程序格式 用户宏程序与子程序相似。以程序号O及后面的4位数字组成,以M99指令作为结束标记。 O0060; G65 H01 P#100 Q100;将值100赋给#100 G00 X#100 Y;M99;宏程序结束 2、宏程序的调用 宏程序的调用有两种形式:

34、一种与子程序调用方法相间,即用M98进行调用。另一种用指令G65进行调用, 如: G65 P0070 L5 X100.0 Y100.0 Z-30.0; 此处的X、Y、Z并不代表坐标功能字其中, G65为调用宏程序指令,该指令必须写在句首;P0070表示宏程序的程序号为O0070;L5表示调用次数为5次;X100.0 Y100.0 Z-30.0变量引数,引数为有小数点的正、负数。 3、 宏程序的运算和转移指令(表5-1) 表5-1 宏程序的运算和转移指令指令H码功能定义G65H01定义、赋值或替换#i =#jG65H02加#i =#j+#kG65H03减#i =#j-#kG65H04乘#i =#

35、j#kG65H05除#i=#j#kG65H11逻辑或#i =#j OR #kG65H12逻辑与#i =#j AND #kG65H13异或#i =#j XOR #kG65H21平方根#i =G65H22绝对值#i=|#j|G65H23求余#i =#j trunc(#j#k)#kG65H24十进制码变为二进制码#i = BIN(#j)G65H25二进制码变为十进制码#i =BCD(#j )G65H26复合乘/除#i=(#i#j)#kG65H27复合平方根l#i =G65H28复合平方根2#i =G65H31正弦#i =#jsin(#k)G65H32余弦#i =#j cos(#k)G65H33正切#

36、i =#j tan(#k)G65H34反正切#i = arctan(#j /#k)G65H80无条件转移GOTO nG65H81条件转移1(EQ)IF#j =#k, GOTO nG65H82条件转移2(NE)IF#j#k, GOTO nG65H83条件转移3(GT)IF#j#k, GOTO nG65H84条件转移4(LT)IF#j#k, GOTO nG65H85条件转移5(CE)IF#j#k, GOTO nG65H86条件转移6(LE)IF#j#k, GOTO nG65H99产生P/S报警P/S报警号500 + n出现(1) 宏程序的运算指令 宏程序的运算指令通过G65的不同表达形式实现,其指

37、令的一般形式为: G65 H(m) P(#i) Q(#j) R(#k); 其中,m可以是0199中的任何一个整数,表示表5-1中运算指令或转移指令的功能; # i表示存放运算结果的变量; # j为需要运算的变量1; # k为需要运算的变量2;,变量1和变量2也可以是常数,常数可以直接表示,不带“#”。指令所代表的意义为:#i = #j#k;代表运算符号,它由H(m)指定。例1 G65 H02 P#100 Q#101 R #102 ;表示#100 = #101 +#102G65 H03 P#100 Q#101 R15;表示#100 = #101-15G65 H04 P#100 Q-100 R#1

38、02;表示#100= -100#102 G65 H05 P#100 Q-100 R#102;表示#100 =-100#102 变量值是不含小数点的数值,它以系统的最小输入单位为其值的单位。例如,当#100 = 10时, X#100代表0.01mm。当运算结果出现小数点后的数值时,其值将被舍去。另外,用G65指定的H代码,对选择刀具长度补偿的偏置号没有任何影响。 例2 若#100 = 37,#101 = 10执行如下指令,其运算结果如下: #110 = #100#101;结果为3;小数点后的数值被舍去。 在使用宏程序运算指令中,当变量以角度形式指定时,其单位是0.0010。在各运算中,当必要的Q

39、、R没有指定时,系统自动将其值作为“0”参加运算。而且运算、转移指令中的H、P、Q、R 都必须写在G65之后,因此在G65以前的地址符只能有O、N。 (2) 宏程序的转移指令 宏程序的转移指令与运算指令相似,即通过指令G65的不同表达形式实现。A类宏程序的转移指令格式见表5-1,分为无条件转移和条件转移两类。 1) 无条件转移指令。指令格式: G65 H80 Pn; “n”为目标程序段号 例G65 H80 P120;执行该程序段时,将无条件转移到N120程序段。 2) 条件转移指令。指令格式: G65 H8-Pn Q#j R#k; H81 H86 例G65 H83 P1000 Q#201 R#

40、202;当#201 #202时,转移到 N1000程序段,当#201#202时,程序继续执行。 三、A类宏程序编程示例 示例1 试用A类宏程序编写如图5-1所示的椭圆加工的数控车床加工程序。 课题分析:本例以Z为自变量,每次增量为-0.1mm。X为应变量(注意公式中的X为半径量) ,直径量X=2=。编写该工件宏程序时,使用以下变量进行操作运算。 #101:曲线上各点的Z坐标。#102:曲线上各点的X坐标。曲线精加工程序如下: 图5-1 A类宏程序编程示例O0501;主程序 程序开始部分G00 X0.0 Z2.0; 宏程序起点 G65 H01 P#101 Q0; Z坐标赋初值 G65 H01 P

41、#102 Q0; X坐标赋初值 N100 G01 X#102 Z#101 F100; G65 H03 P#101 Q#101 R100; Z坐标每次减0.lmm,请注意算式中数值单位G65 H04 P#100 Q#101 R-64000; 注意R值为-64000,而不能用-64 G65 H21 P#102 Q#100; X坐标值G65 H86 P100 Q#102 R32000; 如果X坐标小于32mm,则返回N100 G01 X42.0; C00 X100.0 Z100.0; M30; 第三节 B类宏程序在FANUC OMD等老型号的系统面板上没有“+”、“-”、“*”、“/”、“=”、“

42、”等符号,故不能进行这些符号输入,也不能用这些符号进行赋值及数学运算。所以,在这类系统中只能按A类宏程序进行编程。而在FANUC 0i及其后(如FANUC 18i等) 的系统中,则可以输入这些符号,并运用这些符号进行赋值及数学运算,故按B类宏程序进行编程。 一、变量 B类宏程序的变量与A类宏程序的变量基本相似,主要区别有以下几个方面。 (1)变量的表示 B类宏程序除可采用A类宏程序的变量表示方法外,还可以用表达式进行表示,但其表达式必须全部写人方括号“ ”中。程序中的圆括号“( )”仅用于注释。 例 # #1+#2+10 当#1= 10,#2=100时,该变量表示#120。 (2)变量的引用

43、引用变量也可以采用表达式。 例G01 X #100-30.0 Y-#101 F #101 +#103 当#100 = 100.0 、#101 = 50.0 、#103 = 80.0时,上面语句即表示 为G01 X70.0 Y-50.0 F130。 二、变量的赋值 (1)直接赋值 变量可以在操作面板上用MDI方式直接赋值,也可以在程序中以等式方式赋值,但等号左边不能用表达式。 例 #100 = 100.0; #100 =30.0 +20.0; (2)引数赋值 宏程序以子程序方式出现,所用的变量可在宏程序调用时赋值。例 G65 P1000 X100.0 Y30.0 Z20.0 F100.0; 该处

44、的X、Y、Z不代表坐标字,F也不代表进给字,而是对应于宏程序中的变量号,变量的具体数值由引数后的数值决定。引数宏程序体中的变量对应关系有两种(见表5-2及表5-3) ,这两种方法可以混用,其中G、L、N、O、P不能作为引数代替变量赋值。表5-2 变量引数赋值方法I引数变量引数变量引数变量引数变量A#1I3#10I6#19I9#28B#2J3#11J6#20J9#29C#3K3#12K6#21K9#30I1#4I4#13I7#22I10#31J1#5J4#14J7#23J10#32K1#6K4#15K7#24K10#33I2#7I5#16I8#25J2#8J5#17J8#26K2#9K5#18K

45、8#27表5-3 变量引数赋值方法II引数变量引数变量引数变量引数变量A#1H#11R#18X#24B#2I#4S#19Y#25C#3J#5T#20Z#26D#7K#6U#21E#8M#13V#22F#9Q#17W#23例1变量引数赋值方法I G65 P0030 A50.0 I40.0 J100.0 K0 I20.0 J10.0 K40.0; 经赋值后#1 =50.0, #4 =40.0,#5=100.0,#6=0,#7 =20.0,#8=10.0,#9=40.0。程序中第一次出现的“I”为I1,第二次出现的“I”为I2,依次类推。例2 变量引数赋值方法II G65 P0020 A50.0 X

46、40.0 F100.0; 经赋值后#1=50.0,#24=40.0,#9=100.0。 例3 变量引数赋值方法I和II混合使用 G65 P0030 A50.0 D40.0 I100.0 K0 I20.0; 经赋值后,I20.0与D40.0同时分配给变量#7,则后一个#7有效,所以变量#7=20.0,其余同上。 实例 采用变量赋值后,图5-3实例的A类精加工宏程序可改成如下形式: O0503;主程序 G65 P0504 A12.5 B25.0 C0.0 D126.86 F100.0;赋值后,x向半轴长#1=12.5,Z向半轴长#2 =25.0,角度起始角#3=0.0,角度终止角#7= 126.8

47、6,进给速度#9=100.0O0504; 精加工宏程序 N1000 #4=#1*SIN #3; 注意B类宏程序中运算指令的书写格式以及方括号“ ”的运用 #5=#2*COS #3; #6=#4*2; #8=#5-#2; G01 X#6 Z#8 F#9;#3 =#3+0.01; IF #3 LE #7 GOTO 1000; M99; 三、运算指令 B类宏程序的运算指令与A类宏程序的运算指令有很大的区别,它的运算类似于数学运算,仍用各种数学符号来表示。常用运算指令见表5-4。 1) 函数SIN、COS等的角度单位是,和要换算成。如9030应表示为90.5, 3018应表示为30.3。 2) 宏程序

48、数学计算的次序依次为:函数运算(SIN、COS、 ATAN等) ,乘和除运算(*、/、AND等) ,加和减运算(+、-、OR、XOR等)。 例#1= #2 +#3*SIN #4; 运算次序为:函数SIN #4 乘和除运算#3*SIN #4 加和减运算#2 +#3*SIN #4。 3) 函数中的括号用于改变运算次序,并且允许嵌套使用,但最多只允许嵌套5层。 例#1 = SIN #2 + #3 *4+ #5 / #6 4) 宏程序中的上、下取整运算 CNC处理数值运算时,若操作产生的整数大于原数时为上取整,反之则为下取整。表5-4 B类宏程序变量的各种运算功能格式备注与示例定义、转换#i =#j#

49、100=#1, #100=30.0加法#i =#j +#k#100 =#1 +#2减法#i =#j-#k#100 = 100.0-#2乘法#i=#j*#k#100=#1*#2除法#i = #j/#k#100 =#1/30正弦#i = SIN #j#100=SIN #1 #100=COS36.3+#2 #100=ATAN #1/#2反正弦#i = ASIN #j余弦#i =COS #j反余弦#i = ACOS #j正切#i = TAN #j反正切#i = ATAN #j / #k平方根#i = SQRT #j#100=EXP #1 #100= SQRT #1 * #1-100绝对值#i = AB

50、S #j舍入#i = ROUND #j上取整#i = FIX #j下取整#i = FUP #j自然对数#i=LN #j指数函数#i = EXP #j或#i =#j OR #k逻辑运算一位一位地按二进制执行异或#i =#j XOR #k与#i =#j AND #kBCD转BIN#i = BIN #j用于与PMC的信号交换BIN转BCD#i = BCD #j例 设#1 = 1.2,#2 = -1.2 执行#3 = FUP#1时,2.0赋给#3 执行#3 = FIX #1时,1.0赋给#3 执行#3 = FUP#2时,-2.0赋给#3 执行#3 = FIX #2时,-1.0赋给#3四、控制指令 控制

51、指令起到控制程序流向的作用。表5-5 B类宏程序条件表达式的种类条件意义示例#i EQ #j等于()IF #5 EQ #6 GOTO100#i NE #j不等于()IF #5 NE100 GOTO100#i GT #j大于()IF #5 GT #6 GOTO100#i GE #j大于等于()IF #5 GE 100 GOTO100#i LT #j小于()IF #5 LT #6 GOTO100#i LE #j小于等于()IF #5 LE100 GOTO100(1)分支语句 格式一 GOTO n; 例GOTO 1000 该例为无条件转移。当执行该程序段时,将无条件转移到N1000程序段执行。 格式二 IF 条件表达式 GOTO n 例IF #1 GT #100 GOTO 1000 该例为有条件转移语句。如果条件成立,则转移到N1000程序段执行;如果条件不成立,则执行下一程序段。条件表达式的种类见表5-5。 (2)循环指令 循环指令格式为:WHILE 条件表达式 DO m (m = 1、2、3) ;END m ; 当条件满足时,就

温馨提示

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

评论

0/150

提交评论