宏程序的基本概念_第1页
宏程序的基本概念_第2页
宏程序的基本概念_第3页
宏程序的基本概念_第4页
宏程序的基本概念_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、数控铣削宏程序编程(一)一、宏程序的基本概念1、宏程序的定义以一组子程序的形式存储并带有变量的程序称为用户宏程序, 简 称宏程序; 调用宏程序的指令称为 “用户宏程序指令”,或宏程序调用 指令(简称宏指令)。宏程序与普通程序相比较, 普通的程序字为常量, 一个程序只能 描述一个几何形状,所以缺乏灵活性和适用性。而在用户宏程序的本 体中,可以使用变量进行编程, 还可以用宏指令对这些变量进行赋值、 运算等处理。通过使用宏程序能执行一些有规律变化(如非圆二次曲 线轮廓)的动作。宏程序分 A 类和 B 类两种, FANUCi 系统采用 B 类宏程序进行编程。2、宏程序中的变量在常规的主程序和子程序内,

2、 总是将一个具体的数值赋给一个地 址,为了使程序更加具有通用性、 灵活性, 故在宏程序中设置了变量。1)、变量的表示:一个变量由符号“ #”和变量序号组成,如:#1 (1=1 , 2,)。此外,变量还可以用表达式进行表示,但其表达式必须全部写入方括号“ ”中。例:#100, #500, #5, #1+#2+#10;2)、变量的引用:将跟随在地址符后的数值用变量来代替的过程称为引用变量。同样,引用变量也可以用表达式。例 G01X#100 Y#101F #101+#103; 当#100=100.0、#101=50.0、#103=80.0 时,上例即表示为 G01 X100.0 Y50.0 F130

3、;3)、变量的种类:变量分为局部变量、公共变量(全局变量)和 系统变量三种。在 A 、B 类宏程序中,其分类均相同。A、局部变量(#1#33)是在宏程序中局部使用的变量。当宏 程序 C 调用宏程序 D 而且都有变量 #1 时,由于变量 #1 服务于不同的 局部,所以 C 中的#1 与 D 中的 #1 不是同一个变量,因此可以赋予不 同得不偿失值, 且互不影响。 关闭电源时,局部变量被初始化成 “空”。 宏调用时,自变量分配给局部变量。B 、公共变量( #100 # 1 49/# 1 99;#500 #549/#599)贯穿于整 个程序过程。他可以在不同的宏程序间共享,当宏程序 C 调用宏程序

4、D 而且都有变量 #100 时,由于 #100是全局变量,所以 C 中的#100 与 D 中的 #100 是同一个变量。关闭电源时变量 #100#149 被初始化成 “空”,而变量 #500#531 保持数据。 公共变量 #150#199 和#532#999 也可以选用,但是当这些变量被使用时,纸带长度减少了8.5米。C、系统变量(#1000)是指有固定用途的变量,它的值决定 系统的状态。系统变量用于读写各种 NC 数据项,如当前位置、刀具 补偿值。系统变量包括刀具偏置值变量,接口输入与接口输出信号变 量及位置信号变量等。二、宏程序编程1 、变量的赋值变量的赋值方法有两种, 即直接赋值和引数赋

5、值, 其中直接赋值的方法较为直观,方便,其书写格式如下:例:#100=100.0#10 仁30.0+20.0;2、宏程序运算指令宏程序的运算类似于数学运算与逻辑运算,用各种数学符号来表示。常用运算指令表如下:变量的各种运算功能格式备注与具体示例定义,转换/赋值#i=#j#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反正弦#i=ASIN#J#100=SIN#1#100=C0S36.3+#2 #100=ATAN#1/#2

6、余弦#i=COS#J反余弦#i=ACOS#j正切#i=TAN#j反正切#i=ATAB#j/#K平方根#i=SQRT#j绝对值#i=ABS#j舍入#i=ROUND#j#100SQRT#1*#1-100#100=EXP#1上取整/上进位#i=FIX#j下取整/下进位#i=FUP#j自然对数#i=LN#j指数函数#i=EXP#j或#i=#j OR #k用二进制数按位进行逻 辑操作异或#i=#j XOR #K与#i=#j AND #K将BCD码转换成BIN码#i=BIN#j用于与PMC间信号的交换将BIN码转换成BCD码#i=BCD#j宏程序计算说明如下 、角单位:在SIN,COS, TAN,ATAN

7、中所用的角度单位是度,分和秒要换算成带小数点的度。如90 30表示905,而3018 表示 30.3 、 ATAN 功能:在 ATANT 之后的两个变量用“ /”分开,结果在 0和 360之间。如当 #1=ATANT1/ 1时,#1=135.0。 、 ROUND 功能:当 ROUND 功能包含在算术或逻辑操作、 IF 语 句、WHILE语句中时,将保留小数点后一位,其余位进行四舍五 入。例: # 1 =ROUND#2 ;其中 #2=1.2345,则#1=1.0当 ROUND 出现在 NC 语句地址中时, 进位功能根据地址的最小输入 增量四舍五入指定的值。例:编一个程序,根据变量 #1、 #2的

8、值进行切削,然后返回到初始点。假定增量系统是 1/1000mm, #1=1.2345, #2=2.3456则G00 G91 X#1;移动 1.235mm G01 X#2 F300;移动 2.346mmG00 X#1+#2; 因为 1.2345+2.3456=3.5801 移动3.580mm 刀具此时 不能返回到加工的初始位 置。而换成 G00XROUND#1+ROUND#2 时能返回到初始点。 、上进位和下进位成整数:例:#1=1.2、 #2=1.2贝卩:#3二FUP#1,结果#3=2.0 #3二FIX#1,结果#3=1.0 #3二FUP#2,结果#3=2.0#3=FIX#2,结果#3= 1.

9、0 、算术和逻辑操作的缩写方式:取功能块名的前两个字符,例: ROUND RO。 、宏程序数学计算的次序依次为:函数运算( SIN, COS, ATAN 等),乘和除运算( *,/,AND 等),加和减运算( +, OR, XOR 等)。 、函数中的括号。括号用于改变运算次序,函数中的括号允许嵌 套使用,但最多只允许嵌套 5 级。 例 #1=SIN#2+#3*4+#5/#6 ; 注意:在加工程序中,方括号用于封闭表达式,圆括号用于注释。3、宏程序转移指令 控制指令起到控制程序流向的作用。 在一个程序中, 控制程序流向可 以用 GOTO、IF 语句改变。有三种分支循环语句如下:GOTO 语句(无

10、条件分支);IF 语句(条件分支 :if. ,then.);WHILE 语句 (循环语句 while.)。 、分支语句格式一 :GOTO n;例 GOTO 1000; 无条件转移语句,当执行该程序时,无条件转移到 N1000 程序 段执行,顺序号可以用表达式。格式二 : IF 条件表达方式 GOTO n; 例 IF#1GT#100GOTO 100 ; 有条件转移语句,如果条件成立,则转到 N 程序段执行,如果 条件不成立, 则执行下一句程序。 一个条件表达式一定要有一个操作符,这个操作符插在两个变量或一个变量和一个常数之间,并且要用 方括号括起来,即:表达式 操作符 表达式。条件式的种类如下表

11、表达式种类条件式意义具体示例#i EQ #j等于(=)P IF#5EQ#6GOT100;#i NE #j不等于(工)IF#5NE100GOT100;#i GT #j大于()P IF#5GT#6GOT100;#i GE #j大于等于()IF#5GE100GOT100;#i LT #j小于()r IF#5LT#6G0T100;#i LE #j小于等于()IF#5LE100GOT100; 、循环指令WHILE 条件式DO m(m=1,2,3,);END m;当条件式满足时,就循环执行 WHILE与END之间的程序段m次, 当条件不满足时,就执行ENDm ;的下一个程序段。 、宏程序的嵌套A、WHILE 条件式DO m和END m必须成对使用,并且,DO m 一定要在END m之前指定,用 m来识别;B、同一识别号 m可以在一个程序中多次使用,但 DO m与END m必须成对使用;C、在一个程序中DO的范围不能够交叉,DO可以嵌套三重;D、在DO mEN

温馨提示

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

评论

0/150

提交评论