欢迎来到天天文库
浏览记录
ID:56049757
大小:68.51 KB
页数:7页
时间:2020-06-19
《宏程序的基本概念.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、数控铣削宏程序编程(一)一、宏程序的基本概念1、宏程序的定义以一组子程序的形式存储并带有变量的程序称为用户宏程序,简称宏程序;调用宏程序的指令称为“用户宏程序指令”,或宏程序调用指令(简称宏指令)。宏程序与普通程序相比较,普通的程序字为常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。而在用户宏程序的本体中,可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理。通过使用宏程序能执行一些有规律变化(如非圆二次曲线轮廓)的动作。宏程序分A类和B类两种,FANUCi系统采用B类宏程
2、序进行编程。2、宏程序中的变量在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址,为了使程序更加具有通用性、灵活性,故在宏程序中设置了变量。1)、变量的表示:一个变量由符号“#”和变量序号组成,如:#I(I=1,2,……)。此外,变量还可以用表达式进行表示,但其表达式必须全部写入方括号“[]”中。例:#100,#500,#5,#[#1+#2+#10];2)、变量的引用:将跟随在地址符后的数值用变量来代替的过程称为引用变量。同样,引用变量也可以用表达式。例G01X#100Y—#101F[#10
3、1+#103];当#100=100.0、#101=50.0、#103=80.0时,上例即表示为G01X100.0Y50.0F130;3)、变量的种类:变量分为局部变量、公共变量(全局变量)和系统变量三种。在A、B类宏程序中,其分类均相同。A、局部变量(#1~#33)是在宏程序中局部使用的变量。当宏程序C调用宏程序D而且都有变量#1时,由于变量#1服务于不同的局部,所以C中的#1与D中的#1不是同一个变量,因此可以赋予不同得不偿失值,且互不影响。关闭电源时,局部变量被初始化成“空”。宏调用时,自变量分
4、配给局部变量。B、公共变量(#100~#149/#199;#500~#549/#599)贯穿于整个程序过程。他可以在不同的宏程序间共享,当宏程序C调用宏程序D而且都有变量#100时,由于#100是全局变量,所以C中的#100与D中的#100是同一个变量。关闭电源时变量#100~#149被初始化成“空”,而变量#500~#531保持数据。公共变量#150~#199和#532~#999也可以选用,但是当这些变量被使用时,纸带长度减少了8.5米。C、系统变量(#1000~)是指有固定用途的变量,它的值决定
5、系统的状态。系统变量用于读写各种NC数据项,如当前位置、刀具补偿值。系统变量包括刀具偏置值变量,接口输入与接口输出信号变量及位置信号变量等。二、宏程序编程1、变量的赋值变量的赋值方法有两种,即直接赋值和引数赋值,其中直接赋值的方法较为直观,方便,其书写格式如下:[例]:#100=100.0#101=30.0+20.0;2、宏程序运算指令宏程序的运算类似于数学运算与逻辑运算,用各种数学符号来表示。常用运算指令表如下:变量的各种运算功能格式备注与具体示例定义,转换/赋值#i=#j#100=#1,#100
6、=30.0加法#i=#j+#k#100=#1+#2#100=#100.0-#2#100=#1*#2#100=#1/30减法#i=#j-#k乘法#i=#j*#k除法#i=#j*#k正弦#i=SIN[#j]#100=SIN[#1]#100=COS[36.3+#2]#100=ATAN[#1]/[#2]反正弦#i=ASIN[#J]余弦#i=COS[#J]反余弦#i=ACOS[#j]正切#i=TAN[#j]反正切#i=ATAB[#j]/[#K]平方根#i=SQRT[#j]#100SQRT[#1*#1-100]
7、#100=EXP[#1]绝对值#i=ABS[#j]舍入#i=ROUND[#j]上取整/上进位#i=FIX[#j]下取整/下进位#i=FUP[#j]自然对数#i=LN[#j]指数函数#i=EXP[#j]或#i=#jOR#k用二进制数按位进行逻辑操作异或#i=#jXOR#K与#i=#jAND#K将BCD码转换成BIN码#i=BIN[#j]用于与PMC间信号的交换将BIN码转换成BCD码#i=BCD[#j]宏程序计算说明如下:①、角单位:在SIN,COS,TAN,ATAN中所用的角度单位是度,分和秒要换算
8、成带小数点的度。如90°30′表示90.5°,而30°18′表示30.3°。①、ATAN功能:在ATANT之后的两个变量用“/”分开,结果在0°和360°之间。如当#1=ATANT[1]/[—1]时,#1=135.0。②、ROUND功能:当ROUND功能包含在算术或逻辑操作、IF语句、WHILE语句中时,将保留小数点后一位,其余位进行四舍五入。例:#1=ROUND[#2];其中#2=1.2345,则#1=1.0当ROUND出现在NC语句地址中时,进位功能根据地址的最小
此文档下载收益归作者所有