重庆科创学院-宏程序的编制_第1页
重庆科创学院-宏程序的编制_第2页
重庆科创学院-宏程序的编制_第3页
重庆科创学院-宏程序的编制_第4页
重庆科创学院-宏程序的编制_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

重庆科创职业学院项目十九宏程序的编制[学习目标]

1.学会数控车床用户宏程序的编制。

2.学会数控车床用R参数编制程序。[学习重点] 编程中变量使用、赋值、运算、转移[学习难点] 编程中变量使用、赋值、运算、转移一、基本知识学习

FANUC0i-MATE-TC系统具备宏程序功能。宏程序通过编辑其本体变量来改变刀具路径和刀具位置,特别适合图形一样,只是尺寸不同的系列零件的编程和工艺路径一样,只是位置数据不同的系列零件的编程,还能用于抛物线、椭圆、双曲线等没有插补指令的曲线的编程。宏程序的使用不仅使得手工编程效率大大提高,更是拓宽了机床的使用范围,使数控手工编程更加灵活。在SIMENS802D系统中具有R参数编程功能,其作用与FANUC0i-MATE-TC系统的宏程序类似。(一)FANUC0i-MATE-TC系统的用户宏程序含有变量的子程序叫做用户宏程序,在程序中调用用户宏程序的那条指令叫用户宏指令(G65)。

1.变量用一个可赋值的代号代替具体的坐标值,这个代号就称为变量。变量又分为系统变量、公共变量和局部变量三类,它们的性质和用途各不相同。

(1)系统变量这是固定用途的变量,它的值决定了系统的状态。FANUC中的系统变量为#1000~#1015、#1032、#3000等。

(2)公共变量是指在主程序内和由主程序调用的各用户宏程序内公用的变量。FANUC中共有600个公共变量,它们分两组,一组是#100~#199;另一组是#500~#999.当断电时,变量#100-#199初始化为空,变量#500-#999的数据保存,即使断电也不丢失.

(3)局部变量指局限于在用户宏程序内使用的变量。同一个局部变量在不同的宏程序内其值是不通用的。FANUC系统有33局部变量,分别为#1-#33。FANUC局部变量赋值(部分)对照表见表1-19-1。2.变量的演算

(1)加减型运算加减型运算包括加、减、逻辑加和排它的逻辑加。分别用以下四个形式表达:

#i=#j+#k#i=#j-#k#i=#jOR#k#i=#jXOR#k式中,i、j、k为变量;+、一、OR、XOR称为演算子。

(2)乘除型运算乘除型运算包括乘、除和逻辑乘。分别用以下形式表达:#i=#j*#k#i=#j/#k#i=#jAND#k3.变量的函数表1-19-2列出FANUC一些常用的函数。表1-19-1FANUC系统局部变量赋值对照表表1-19-2FANUC宏程序常用计算功能

4.变量的赋值由于系统变量的赋值情况比较复杂,这里只介绍公共变量和局部变量的赋值。变量的赋值方式可分为直接和间接两种。

(1)直接赋值例:#2=116(表示将数值116赋值于#2变量)#103=#2(表示将变量#2的即时值赋于变量#103)

(2)间接赋值间接赋值就是用演算式赋值,即把演算式内演算的结果赋给某个变量。图5.18是一个椭圆,欲车削1/4椭圆(图中粗线部分)的回转轮廓线,要求在数控程序中用任意一点D的z值(用2号变量)来表达该点的x值(用5号变量)。

转为变量表达式为:5号变量=(1号变量+1号变量)*

间接赋值情况为:N5#1=50:N10#3=80:N15#5=[#1+#1]*SQRT[1-#2*#2/#3/#3]图1-19-1椭圆变量设置图1-19-1所示椭圆的方程为:X2/a2+Z2/b2=1(X值为半径值)即X=2(X值为直径值)

(3)在用户宏指令中为用户宏程序内的局部变量赋值以单层宏程序为例,欲车削图1-19-1中从A点到B点的四分之一椭圆回转零件,采用直线逼近(也叫拟合),在z向分段,以1mm为一个步距,并把z作为自变量。为了适应不同的椭圆(即不同的长短轴)、不同的起始点和不同的步距,我们可以编制一个只用变量不用具体数据的宏程序,然后在主程序中调用该宏程序的用户宏指令段为上述变量赋值。这样,对于不同的椭圆、不同的起始点和不同的步距,不必更改宏程序,而只要修改主程序中用户宏指令段内的赋值数据就可以了。以#6变量代表步距,以80赋于#2代表起始点A的z坐标值。

例1

用户宏指令局部变量。主程序 宏程序

O1012 01013N5… N5#5=[#1+#1]*SQRT[1-#2*#2/#3/#3];

… N10G1X#5Z#2F60;N××G65P1013 N15#2=#2-#6;

A50B80C80K1;

… N20GOTO5:

N××M30; N25M99;% %

5.转向语句转向语句分为无条件转向语句和条件转向语句两种。

(1)无条件转向语句 程序段格式为:GOTON

其中N为程序段号例:GOTO85表示无条件转向执行N85的程序段,而不论N85程序段在转向语句之前还是其后。

(2)条件转向语句 条件转向语句一般由条件式和转向目标两部分构成。程序段格式为:IF[aGTb]GOTOc

表示为“如果a>b,那么转向执行NC程序段”。a和b可以是数值、变量或含有数值及变量的算式,c是转向目标的程序段。大于、等于、大于等于、小于,小于等于分别用GT、EQ、GE、LT,LE表示。条件转向语句在宏程序内使用比较广泛。使用条件转向语句,能编出准确的用户宏程序。对于图5.18中的椭圆,我们在前述的基础上加一个用#7变量代表切削终点B的z坐标值(在该例中,#7等于零),它可以在宏指令中用D赋值。

例2

用户宏指令用转向语句。主程序 宏程序

01014 01015N5… N5#5=[#1+#1]*SQRT[1-#2*#2/#3/#3];

… N10G1X#5Z#2F60:

N××G65P1015 N15#2=#2-#6;A50B80C80DOK1;

… N20IF[#2GE#7]GOTO5;

N××M30; N25M99;% %

(二)宏程序转移和循环在程序中,使用G0TO语句和IF语句可以改变控制的流向。有三种转移和循环操作可供使用:无条件转移:GOTO语句 条件转移:IF语句(IF…THEN…)循环:WHILE语句1.无条件转移(GOTO语句)转移到标有顺序号n的程序段。GOTOn;n:顺序号(1~99999)例:GOT01;可用表达式指定顺序号。GOTO#10;2、条件转移(IF语句)IF之后指定条件表达式。IF[<条件表达式>]GOTOn如果指定的条件表达式满足时,转移到标有顺序号n的程序段。如果指定的条件表达式不满足,执行下个程序段。

如果变量#1的值大于10,转移到顺序号N2的程序段.(1)IF<条件表达式>]THEN

如果条件表达式满足,执行预先决定的宏程序语句。只执行一个宏程序语句。 如果#1和#2的值,0赋给#3.(2)IF[#1EQ#2]THEN#3=0;

说明: 1.条件表达式必须包括算符。算符插在两个变量中间或变量和常数中间,并且用括号([,])封闭。表达式可以替代变量。

2.运算符由2个字母组成.用于两个值的比较,以决定它们是相等还是一个值小于或大于另一个值。注意,不能使用不等符号。3.循环(WHILE语句)

在WHILE后指定一个条件表达式,当指定条件满足时,执行从DO到END之间的程序。否则,转到END后的程序段。

说明:

1.当指定的条件满足时,执行WHILE从DO到END之间的程序.否则,转而执行END之后的程序段。这种指令格式适用于IF语句。D0后的号和END后的号是指定程序执行范围的标号,标号值为1,2.3。

2.嵌套:在DO-END循环中的标号(1到3)可根据需要多次使用。但是,当程序有交叉重复循环(DO范围的重叠)时,出现P/S报警No.124。

3.无限循环:当指定DO而没有指定WHILE语句时,产生从DO到END的无限循环。

4.处理时间:当在GOTO语句中有标号转移的语句时,进行顺序号检索。反向检索的时间要比正向检索长。用WHILE语句实现循环可减少处理时间。

5.未定义的变量:在使用EQ或NE的条件表达式中,<空>和零有不同的效果。在其它形式的条件表达式中,<空>被当作零。

(三)SIMENS802D系统的R参数编程1.计算参数R

功能要使一个NC程序不仅仅适用于特定数值下的一次加工,或者必须要计算出数值,这两种情况均可以使用计算参数。你可以在程序运行时由控制器计算或设定所需要的数值;也可以通过操作面板设定参数数值。如果参数已经赋值,则它们可以在程序中对由变量确定的地址进行赋值。 编程R0=…到R299=…

赋值你可以在以下数值范围内给计算参数赋值:±(0.0000001…99999999) (8位,带符号和小数点)在取整数值时可以去除小数点。正号可以一直省去。

举例:

R0=3.5678R1=-37.3R2=2R3=-7R4=-45678.123

用指数表示法可以赋值更大的数值范围:

±(10-300…10+300)。指数值写在EX符号之后;最大符号数:10(包括符号和小数点)。

EX值范围:-300到+300举例:R0=-0.1EX-5;意义:R0=-0.000001R1=1.874EX8;意义:R1=187400000注释:一个程序段中可以有多个赋值语句;也可以用计算表达式赋值。给其它的地址赋值通过给其它的NC地址分配计算参数或参数表达式,可以增加NC程序的通用性。可以用数值、算术表达式或R参数对任意NC地址赋值。但对地址N、G和L例外。赋值时在地址符之后写入符号“=”。赋值语句也可以赋值一负号。给坐标轴地址(运行指令)赋值时,要求有一独立的程序段。

举例:N10G0X=R2;给X轴赋值参数的计算在计算参数时也遵循通常的数学运算规则。园括号内的运算优先进行。另外,乘法和除法运算优先于加法和减法运算。角度计算单位为度。允许的计算功能参见章节“指令表”。 编程举例:R参数N10R1=R1+1;由原来的R1加上1后得到新的R1N20R1=R2+R3R4=R5-R6R7=R8*R9R10=R11/R12N30R13=SIN(25.3);R13等于正弦25.3度N40R14=R1*R2+R3;乘法和除法运算优先于加法和减法运算R14=(R1*R2)+R3N50R14=R3+R2*R1;与N40一样N60R15=SQRT(R1*R1+R2*R2); 意义:R15=R12+R22

编程举例:坐标轴赋值N10G1G91X=R1Z=R2F3N20Z=R3N30X=-R4N40Z=-R5…

(四)SIMENS802D系统的程序跳转1.标记符—程序跳转目标功能标记符或程序段号用于标记程序中所跳转的目标程序段,用跳转功能可以实现程序运行分支。标记符可以自由选取,但必须由2-8个字母或数字组成,其中开始两个符号必须是字母或下划线。跳转目标程序段中标记符后面必须为冒号。标记符位于程序段段首。如果程序段有段号,则标记符紧跟着段号。在一个程序段中,标记符不能含有其它意义。程序举例N10MARKE1:G1X20;MARKE1为标记符,跳转目标程序段…TR789:G0X10Z20;TR789为标记符,跳转目标程序段没有段号N100…;程序段号可以是跳转目标

2.绝对跳转功能NC程序在运行时以写入时的顺序执行程序段。程序在运行时可以通过插入程序跳转指令改变执行顺序。跳转目标只能是有标记符或一个程序段号的程序段。此程序段必须位于该程序之内。绝对跳转指令必须占用一个独立的程序段。编程GOTOFLabel;向前跳转(向程序结束的方向)GOTOBLabel;向后跳转(向程序开始的方向)说明GOTOF向前跳转(向程序结束的方向跳转)GOTOB向后跳转(向程序开始的方向跳转)Label所选的字符串用于标记符或程序段号

编程N10...N20GOTOFMARKE0...N50MARKE0:R1=R2+R3N51;jumptolabelMARKE1...;jumptolabelMARKE0GOTOFMARKE1程序执行G0X...Z......MARKE2:X...Z...N100M2;endofprogramMARKE1:X...Z...N150GOTOBMARKE2;jumptolabelMARKE2

3.有条件跳转功能用IF-条件语句表示有条件跳转。如果满足跳转条件(也就是值不等于零),则进行跳转。跳转目标只能是有标记符或程序段号的程序段。该程序段必须在此程序之内。有条件跳转指令要求一个独立的程序段。在一个程序段中可以有许多个条件跳转指令。使用了条件跳转后有时会使程序得到明显的简化。编程IF条件GOTOFLabel;向前跳转IF条件GOTOBLabel;向后跳转AWL说明GOTOF向前跳转(向程序结束的方向跳转)GOTOB向后跳转(向程序开始的方向跳转)Label所选的字符串用于标记符或程序段号IF跳转条件导入符条件作为条件的计算参数,计算表达式表1-19-3SIMENS系统的跳转功能说明

表1-19-4SIMENS系统的比较运算功能说明运算符意义==等于<>不等>大于<小于>=大于或等于<=小于或等于二、实践训练1.实践内容:利用宏指令编程加工2.具体要求:完成图示零件编程加工

3.基本工艺(1)变量使用#1:短半轴长度(20)#2:长半轴长度(30)#3:椭圆上要加工点的X方向坐标值(在宏程序中由#4计算,是直径值)#4:椭圆上加工点的Z坐标(初值为0,在本题中变化范围为0~-23)

(2)变量运算思路 采用直线逼近(也叫拟合),以Z坐标作为自变量,在Z向以0.1mm为每一个步距来分段。假设以椭圆中心作为坐标轴则(X0/2)2/202+Z02/302=1。但在本题中编程坐标原点与椭圆中心存在一个偏距,椭圆中心在编程坐标系中的坐标值为(X80,Z-5),即所有计算出的拟合点坐标都应该加上相应的X和Z偏差值 即#3=X0+80#4=-5+Z0Z0=#4+5

将Z0=#4+5代入上式得

温馨提示

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

评论

0/150

提交评论