用户宏程序解析课件.ppt
《用户宏程序解析课件.ppt》由会员分享,可在线阅读,更多相关《用户宏程序解析课件.ppt(112页珍藏版)》请在三一办公上搜索。
1、高级数控加工程序编制:FANUC用户宏程序SIEMENS参数编程机电学院数控技术研究室2011年11月,用户宏程序编程一、宏程序应用概述(一)宏程序与普通程序的对比 一般意义上的数控编程(普通程序),是使用数控系统给定的指令代码进行编程。每个代码的功能固定,只要按规定使用即可。为了扩展编程功能,FANUC数控系统厂家在一般指令代码功能基础上,又提供了用户宏程序功能,简称宏程序。区别如下:普通程序使用常量,常量之间不能运算,程序只能顺序执行 不能跳转,程序没有通用性;宏程序可以使用变量(可以赋值),变量之间可以运算,程 序运行可以跳转,程序具有通用性。,(二)宏程序与CAD/CAM软件生成的程序
2、对比 宏程序短小精悍,任何数控加工只要能够用宏程序完整表达,即使再复杂,其程序也比较精炼篇幅小,优化后的宏程序段数很少超过60行,这对于一般数控装置的程序存储空间为128KB、256KB标准配置来说,都能容纳下任何复杂的宏程序。不需要考虑因程序较长进行在线加工时,数控系统与外部电脑的传输率不够问题。CAD/CAM软件生成的程序通常都比较大,因为其生成刀具轨迹的原理采用直线(微线段)逼近曲线曲面,所以不但程序长,而且存在逼近误差。(三)用户宏程序与一般子程序对比 子程序可用于同一操作的重复执行,用户宏程序具有此功能,还允许使用变量、算术和逻辑操作、条件转移等,也可以扩展 一般程序,如凹槽循环和用
3、户定义的循环。加工程序可以调用 带有简单命令的用户宏程序。,FANUC 数控系统具有用户宏程序功能。定义:用户宏程序是具有某种功能的一组命令,象子程序一样存储在内存中。存储的这组命令也称为用户宏程序主体(简称宏程序),用户宏程序可以被“调用宏程序的指令”调用。也可以作主程序适用 用户宏程序见图11。,图11 用户宏程序,宏程序的最大特点:在宏程序中,除了使用通常的CNC指令外,还可以使用带变量 的CNC指令,进行变量运算,使用跳转、循环指令等。根据宏程序功能范围的不同分为:用户宏程序A 用户宏程序B 现代FANUC系统已不分“用户宏程序A”和“用户宏程序B”,取消了宏程序A,统称为用户宏程序。
4、二、基础理论2.1 变量概念 普通加工程序用数值指定G代码和位移距离 例如:G01和X100.0。使用宏程序时,数值可以直接指定,而且可用变量指定代 码和位移等,变量值可以用程序或用MDI方式设定或修改。例如:#1=#2+100;G01 X#1 F500;,2.2 变量的表示 一般计算机程序语言允许使用变量名,用户宏程序则不行。用户宏程序的变量需用变量符号“#”和其后的变量号指定,变量号可以直接用数值或表达式表示,其格式为:i(i=1、2、3、)。例如,#12,102,1006等。用表达式指定变量号时,表达式必须放在括号内。例如,#1+#2-12。变量可以代替宏程序中地址后面的数值,变量的值可
5、由调用用户宏程序的指令给宏程序主体赋值,或者在执行宏程序主体时由得出的计算值决定。使用复数个变量时,可由变量号决定。2.2.1 变量的引用 1.变量可被引用为代替宏程序中地址后面的数值 如 F103,表示进给速度由变量103的值指定,当103=1.5时,与F1.5指令的相同。又如,G130,当130=3时,与G03指令相同;,2.变量可被引用为指定位移 如G00Z-100,表示刀具在-Z方向快速定位到变量100指定的位置,当100=250时,与G00Z-250.0指令的相同;此外,用变量j代替变量号码i时,不能用j表示,而用9j。当110=120(110为j,120为变量号码),120=500
6、时,则为9110=500。地址O,N不能引用变量,即不能使用O100,N120。变量值可以显示,可以用MDI键设定。3.自变量赋值(指定)在宏程序中给使用的变量所赋予的实际值叫做自变量赋值。自变量由地址和后面的数字指定。除O之外的地址均可指定自变量,自变量的地址和变量号必须一一对应。例如自变量的地址I、J、K与宏程序内的变量一一对应 赋值:直接指定、调用宏程序指令传送、表达式指定 此外自变量还有标志号,如指定自变量标志为1,否则为0。自变量被指定,变为指定值,否则变为下述情况:参照CNC指令,指定的自变量地址无效。参照运算指令和转移指令。,2.2.2 变量的类型 按变量号、使用范围和功能,变量
7、分为四种类型,见表1。表1 变量类型,注:公共变量#150 到#199 及#532 到#999 是随意的(可选择)2.2.3 变量值的范围 局部变量和公共变量的值可以是0或以下范围中的值:-1047-1029 0+10-29+1047 如果计算结果超出有效范围,则触发程序错误P/S,报警NO.111。2.2.4 小数点的省略 当在程序中定义变量值时,整数值的小数点可以省略。例如:#1=123,变量#1的实际值是123.000。,2.2.5 变量使用时注意的问题 在程序中使用变量时,应指定变量号地址。当用表达式指定变量时,必须把表达式放在括号中,例如:G01 X#11+#22 F#3。被引用变量
8、的值根据地址的最小设定单位自动的四舍五入。例如:当G00 X#11,以1/1000mm的单位执行赋值12.3456时,CNC把12.3456赋值给变量#11,实际指令值为G00X12.346。改变引用变量的值的符号,要把“-”号放在#的前面,例如:G00X-#11。当引用未定义的变量时,变量及地址都被忽略。例如:当变量#11的值是0,并且变量#22的值是空时,G00X#11Y#22的执行结果是G00X0。所谓“变量的值是0”与“变量的值是空”是二个完全不同的概念,可以这样理解:“变量的值是0”相当于“变量的数值等于0”,“变量的值是空”意味着“变量所对应的地址不存在,不生效”,未定义。,不能用
9、的变量地址符号有:程序号O,顺序号N,任选程序段挑转号/。例如以下情况不能使用变量:O#11;/O#22G00X100.0;N#33Y200.0;使用ISO代码编程时,用“#”代码表示变量,若用EIA代码,则应用“”代码代替“#”代码,因为EIA代码中没有“#”代码2.3 系统变量 空变量、局部变量和公共变量的意义见表1功能说明部分,不再赘述。下面介绍系统变量。系统变量用于读和写CNC内部数据,例如,刀具偏置值和当前位置数据。无论用户宏程序A或用户宏程序B,系统变量的用法都是固定的,而且某些系统变量为只读,用户必须严格按照规定使用。系统变量是自动控制和调用加工程序开发的基础。系统变量的内容见表
10、2。,表2 FANUC 0i系统变量一览表 变量号 含义#1000#1015,#1032 接口输入变量#1100#1115,#1132,#1133 接口输出变量#10001#10400,#11001#11400 刀具长度补偿值#12001#12400,#13001#13400 刀具半径补偿值#2001#2400 刀具长度与半径补偿值(位置组数 200时)#3000 报警#3001,#3002 时钟#3003,#3004 循环运行控制#3005 设定数据(SETTING值)#3006 停止和显示信息#3007 镜像#3011,#3012 日期和时间#3901,#3902 零件数#4001#412
11、0,#4130 模态信息#5001#5104 位置信息#5201#5324 工件坐标系补偿值(工件零点偏移值)#7001#7944 扩展工件坐标系补偿值(工件零点偏 移值),下面对系统变量进行说明2.3.1 接口(输入输出)信号接口信号是可编程机床控制器(PMC)和用户宏程序之间交换的信号,具体内容见表3。表3 FANUC 0i 接口信号的系统变量 变量号 功能#1000#1015 把16位信号从PMC送到用户宏程序。变量#1000#1032#1015用于按位读取信号;变量#1032用于一 次读取一个16位信号#1100#1115 输出:把16位信号从用户宏程序送到PMC。变量#1100#11
12、32#1115用于按位写信号;变量#1132用于一次 写一个16位信号#1133 变量#1133用于从用户宏程序一次写一个32位 信号送到PMC。#1133的值为从-99999999到+99999999注:只有使用FANUC PMC时,才能使用上表中的变量。在运算中,系统变量#1000#1015和#1032不能用作左边的项。,下面对系统变量进行说明2.3.1 接口(输入输出)信号接口信号是可编程机床控制器(PMC)和用户宏程序之间交换的信号,具体内容见表3。表3 FANUC 0i 接口信号的系统变量 变量号 功能#1000#1015 把16位信号从PMC送到用户宏程序。变量#1000#1032
13、#1015用于按位读取信号;变量#1032用于一 次读取一个16位信号#1100#1115 输出:把16位信号从用户宏程序送到PMC。变量#1100#1132#1115用于按位写信号;变量#1132用于一次 写一个16位信号#1133 变量#1133用于从用户宏程序一次写一个32位 信号送到PMC。#1133的值为从-99999999到+99999999注:只有使用FANUC PMC时,才能使用上表中的变量。在运算中,系统变量#1000#1015和#1032不能用作左边的项。,下面对系统变量进行说明2.3.1 接口(输入输出)信号接口信号是可编程机床控制器(PMC)和用户宏程序之间交换的信号,
14、具体内容见表3。表3 FANUC 0i 接口信号的系统变量 变量号 功能#1000#1015 把16位信号从PMC送到用户宏程序。变量#1000#1032#1015用于按位读取信号;变量#1032用于一 次读取一个16位信号#1100#1115 输出:把16位信号从用户宏程序送到PMC。变量#1100#1132#1115用于按位写信号;变量#1132用于一次 写一个16位信号#1133 变量#1133用于从用户宏程序一次写一个32位 信号送到PMC。#1133的值为从-99999999到+99999999注:只有使用FANUC PMC时,才能使用上表中的变量。在运算中,系统变量#1000#10
15、15和#1032不能用作左边的项。,2.3.2 刀具补偿值用系统变量可以读和写刀具补偿值。通过系统变量赋值,可以修改刀具补偿值,见表4。,表4 FANUC 0i刀具补偿存储器C的系统变量,刀具长度补偿:几何补偿(长度值)和磨损补偿 几何半径补偿:几何补偿(半径值)和磨损补偿 刀具补偿号:400个,即系统支持控制容量达400把刀的刀库。当刀具补偿号小于等于200个时,刀具长度补偿也可使用#2001#2400。例如:假设一把10mm的立铣刀,将其视为10号刀(若在加工中心上,是有非常明确和实在的含义,即应将此铣刀放置在刀库的10号刀位上);对于随机换刀的机床,刀号和刀库位置不一定对应;数控铣床上,
16、尽管只能人工换刀,但为了使刀具管理和工艺管理更合理、更有序,同样也可以效仿加工中心那样操作,即在系统中记录下相关的补偿号和刀具补偿值,唯一的差别不过是没有刀库和自动换刀功能,而需要人工换刀。刀具长度补偿包括二项补偿值(几何值-长度、磨损量)在 Z方向对刀完成后一般不再需要特别处理。刀具半径补偿包括二项补偿值(几何值-半径值、磨损量)几何补偿值=刀具半径 即#13010=5.0,可视为对刀具的识别;磨损补偿值(#12010)则视为对尺寸的控制。,在应用宏程序编写加工程序时,将会有以下的描述:#20=#13010:意义是:把刀具补偿号10(即10号刀,在此既是10mm的立铣刀)的半径5mm,作为几
17、何补偿值赋值给变量#20,#20=5.0。#22=#12010:意义是:把刀具补偿号10(即10号刀,在此既是10mm的立铣刀)的半径方向磨损值1.2mm,作为磨损补偿值赋值给变量#22,在这里,#20=1.2。2.3.3 模态信息 正在处理的当前程序段之前的模态信息可从系统变量中读出。FANUC 0i 系统的模态信息见表5。,表5 FANUC 0i 模态信息的系统变量变量号 功能#4001 G00,G01,G02,G03,G33(组01)#4002 G17,G18,G19(组02)#4003 G90,G91(组03)#4004(组04)#4005 G94,G95(组05)#4006 G20,
18、G21(组06)#4007 G40,G41,G42(组07)#4008 G43,G44,G49(组08)#4009 G73,G774,G76,G80G89(组09)#4010 G98,G99(组10)#4011 G50,G51(组11)#4012 G65,G66,G67(组12)#4013 G96,G9(组13)#4014 G54G59(组14)#4015 G61G64(组15)#4016 G68,G69(组16)#4022 待定(组22)#4102 B代码,#4107 D代码#4109 F代码#4111 H代码#4113 M代码#4114 顺序号#4115 程序号#4119 S代码#4120
19、 T代码#4130 P代码(现在选择的附加工件坐标系)注:1.P代码为当前选择的是附加工件坐标系。2.当执行#1=4002时,在#1中得到的值是17,18或19。3.系统变量#4001#4120不能用于运算指令左边的项。4.模态信息不能写,只能读。另外如果阅读模态信息指定的系统变量为 不能用得G代码时,系统则发出程序错误P/S报警2.3.4 当前位置信息当前位置信息不能写,只能读。当前位置信息的系统变量见表6。,表6 FANUC 0i当前位置信息的系统变量,注:1.ABSIO 工件坐标系中,前一程序段终点座标志。ABSMT 机床坐标系中,当前机床坐标位置。ABSOT 工件坐标系中,当前坐标位置
20、。ABSKP 工件坐标系中,G31程序段终中跳跃信号有效的位置。2.在G31(触发功能)程序段终中,当触发信号接通时的刀具位置存储在变量#5061#5064中,当G31程序段终中的触发信号不接通时,这些变量存储指定程 序段的终点值。3.变量#5081#5084所存储的刀具长度补偿值是当前的执行值(即当前正在执行 中的程序段的量),不是后面的程序段的处理量。4.移动期间不能读取是由于缓冲(豫读)功能的原因,不能读取目标指令值。2.3.5 工件坐标系补偿值(工件零点偏移值)用系统变量可以读和写工件零点偏移值,见表7。表7 FANUC 0i工件零点偏移值的系统变量,变量号,功能,#5201#5204
21、,第1轴外部零点偏移值 第4轴外部零点偏移值,2.4 算术和逻辑运算变量中可以进行运算等式右边的表达式:包含常量或由函数或由运算符组成的变量表达式中的变量#j 和#k 可以用常量赋值等式左边的变量也可以用表达式赋值。算术运算:加、减、乘、除函数,逻辑运算包括与、或、异或等表8 FANUC 0i 算术和逻辑运算一览表功能 功能 格式 备注 定 定义置换#i=#j 加法#i=#j+#k 减法#i=#j-#乘法#i=#j*#k 除法#i=#j/#k,以下是算术和逻辑运算的详细说明:1.反正弦运算#i=Asin#j 取值范围:当参数(No6004#0)NAT位设置为0时,在27090范围 取值。当参数
22、(No6004#0)NAT位设置为1时,在-9090范围取值。当#j超出-1到1的范围时,触发程序错误P/S报警No.111。常数可替代变量#j。2.反余弦运算#i=ACOS#j 取值范围:1800。当#j超出-1到1的范围时,触发程序错误P/S报警No.111。常数可替代变量#j。3.反正切运算#i=ATAN#j/#K 采用比值的书写方式(可理解为对边/邻边)。取值范围:当参数(No6004#0)NAT位设置为0时,取值范围为0 360。例如,当指定#1=ATAN-1/-1时,#1=225。当参数(No6004#0)NAT位设置为1时,取值范围为-180180。例如,当指定#1=ATAN-1
23、/-1时,#1=-135 常数可替代变量#j。4.自然对数运算#i=LN#j 相对误差可能大于10-8。当反对数(#j)为0或小于0时,触发程序错误P/S报警No.111。常数可替代变量#j。,5.指数函数#i=EXP#j 相对误差可能大于10-8。当运算结果超过3.651047(#j大约是110)时,出现溢出并触发程序错误P/S报警No.111。常数可替代变量#j。6.上取整#i=FIX#j和下取整#i=FUP#jCNC处理数值运算时,无条件的舍去小数部分,称为上取整,小数进位到整数称为下取整(注意与数学上的四舍五入对照)。对于负数的处理要特别小心。例如:假设#1=1.2,#2=-1.2 当
24、执行#3=FUP#1时,#3=2.0;当执行#3=FIX#1时,#3=1.0;当执行#3=FUP#2时,#3=-2.0;当执行#3=FIX#2时,#3=-1.0。7.算术与逻辑指令的缩写 程序中指令函数时,函数名的前二个字符可以用于指定该函数。例如:ROUNDRO;FIXFI.8.混合运算时的运算顺序 上述运算和函数可以混合运算,既涉及到运算的优先级,其运算顺序与一般数学 上的定义基本一致,优先级顺序从高到低依次为:函数运算、乘法除法和AND运算、加法减法及0R和XOR运算。例如:#1=#2+#3*COS#4,运算顺序为COS#4、乘法、加法。9.括号嵌套、运算顺序 括号优先,括号按先内括号、
25、中间括号、外括号次序进行,用“”可以改变运算顺序,最里层的优先运算,括号最多可以嵌套5级(包括函数内部使用的括号)。当超过5级时,触发程序错误P/S报警No.118。例如:#6=COS#5+#4*#3+#2*1为3重嵌套。10.逻辑运算说明 逻辑运算:表9 FANUC 0i系统运算 AND 与 逻辑乘 11=1 10=0 00=0;OR 或 逻辑加 1+1=1 1+0=1 0+0=0;XOR 异或 逻辑减 1-1=0 1-0=1 0-0=0 0-1=1;11.运算精度 用户宏程序运算时,必须考虑运算结果的精度。用户宏程序处理数据的浮点格式为:M=2E。每执行一次运算,产生一次误差,在重复计算的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 用户 程序 解析 课件
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2161516.html