收藏 分销(赏)

宏程序的基本概念.doc

上传人:w****g 文档编号:10974245 上传时间:2025-06-24 格式:DOC 页数:8 大小:72KB 下载积分:6 金币
下载 相关 举报
宏程序的基本概念.doc_第1页
第1页 / 共8页
宏程序的基本概念.doc_第2页
第2页 / 共8页


点击查看更多>>
资源描述
宏程序的基本概念 数控铣削宏程序编程(一) 一、宏程序的基本概念 1、宏程序的定义 以一组子程序的形式存储并带有变量的程序称为用户宏程序,简称宏程序;调用宏程序的指令称为“用户宏程序指令”,或宏程序调用指令(简称宏指令)。 宏程序与普通程序相比较,普通的程序字为常量,一个程序只能描述一个几何形状,所以缺乏灵活性和适用性。而在用户宏程序的本体中,可以使用变量进行编程,还可以用宏指令对这些变量进行赋值、运算等处理。通过使用宏程序能执行一些有规律变化(如非圆二次曲线轮廓)的动作。 宏程序分A类和B类两种,FANUCi系统采用B类宏程序进行编程。 2、宏程序中的变量 在常规的主程序和子程序内,总是将一个具体的数值赋给一个地址,为了使程序更加具有通用性、灵活性,故在宏程序中设置了变量。 1)、变量的表示: 一个变量由符号“#”和变量序号组成,如:#I(I=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)、变量的种类:变量分为局部变量、公共变量(全局变量)和系统变量三种。在A、B类宏程序中,其分类均相同。 A、局部变量(#1~#33)是在宏程序中局部使用的变量。当宏程序C调用宏程序D而且都有变量#1时,由于变量#1服务于不同的局部,所以C中的#1与D中的#1不是同一个变量,因此可以赋予不同得不偿失值,且互不影响。关闭电源时,局部变量被初始化成“空”。宏调用时,自变量分配给局部变量。 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~ )是指有固定用途的变量,它的值决定系统的状态。系统变量用于读写各种NC数据项,如当前位置、刀具补偿值。系统变量包括刀具偏置值变量,接口输入与接口输出信号变量与位置信号变量等。 二、 宏程序编程 1、变量的赋值 变量的赋值方法有两种,即直接赋值和引数赋值,其中直接赋值的方法较为直观,方便,其书写格式如下: [例] :#100=100.0 #101=30.0+20.0; 2、宏程序运算指令 宏程序的运算类似于数学运算与逻辑运算,用各种数学符号来表示。常用运算指令表如下: 变量的各种运算 功能 格式 备注与具体示例 定义,转换/赋值 #i=#j #100=#1,#100=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] #100=EXP[#1] 绝对值 #i=ABS[#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 #K 将BCD码转换成BIN码 #i=BIN[#j] 用于与PMC间信号的交换 将BIN码转换成BCD码 #i=BCD[#j] 宏程序计算说明如下: ① 、角单位:在SIN,COS,TAN,ATAN中所用的角度单位是度,分和秒要换算成带小数点的度。 如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语句地址中时,进位功能根据地址的最小输入增量四舍五入指定的值。 例:编一个程序,根据变量#1、#2的值进行切削,然后返回到初始点。假定增量系统是1/1000mm,#1=1.2345,#2=2.3456则 G00 G91 X—#1;移动1.235mm G01 X—#2 F300;移动2.346mm G00 X[#1+#2]; 因为1.2345+2.3456=3.5801移动3.580mm刀具此时不能返回到加工的初始位置。而换成G00X[ROUND[#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.0 ⑤ 、算术和逻辑操作的缩写方式: 取功能块名的前两个字符,例:ROUNDàRO。 ⑥ 、宏程序数学计算的次序依次为:函数运算(SIN,COS,ATAN等),乘和除运算(*,/,AND等),加和减运算(+,—,OR,XOR等)。 ⑦ 、函数中的括号。括号用于改变运算次序,函数中的括号允许嵌套使用,但最多只允许嵌套5级。 [例] #1=SIN[[[#2+#3]*4+#5]/#6]; 注意:在加工程序中,方括号用于封闭表达式,圆括号用于注释。 3、宏程序转移指令 控制指令起到控制程序流向的作用。在一个程序中,控制程序流向可以用GOTO、IF语句改变。有三种分支循环语句如下: GOTO语句(无条件分支); IF语句(条件分支:if...,then...); WHILE语句(循环语句while...)。 ① 、分支语句 格式一 :GOTO n; [例] GOTO 1000; 无条件转移语句,当执行该程序时,无条件转移到N1000程序段执行,顺序号可以用表达式。 格式二 : IF [条件表达方式] GOTO n; [例] IF[#1GT#100]GOTO 100; 有条件转移语句,如果条件成立,则转到N程序段执行,如果条件不成立,则执行下一句程序。 一个条件表达式一定要有一个操作符,这个操作符插在两个变量或一个变量和一个常数之间,并且要用方括号括起来,即:[表达式 操作符 表达式]。条件式的种类如下表: 表达式种类 条件式 意义 具体示例 #i EQ #j 等于(=) IF[#5EQ#6]GOT100; #i NE #j 不等于(≠) IF[#5NE100]GOT100; #i GT #j 大于(>) IF[#5GT#6]GOT100; #i GE #j 大于等于(≥) IF[#5GE100]GOT100; #i LT #j 小于(<) IF[#5LT#6]GOT100; #i LE #j 小于等于(≤) IF[#5LE100]GOT100; ② 、循环指令 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 m~END m的内部可以用GOTO n转移到外部,但不可以从外部用GOTO n转移到DO m~END m的内部; E、 从DO m~END m内部可以调用用户宏程序或子程序。DO m~END m可以在用户宏程序或子程序中嵌套三重; F、 用跳转语句和重复语句编程时,一般重复语句执行的时间比较短。 三、 编程练习 试用B类用户宏程序编制如下图工件的精加工程序 图(1) 注:切深1mm/次 图(2) 注:Z向深5mm,1mm/次 8 / 8
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服