《FANUC用户宏程序》由会员分享,可在线阅读,更多相关《FANUC用户宏程序(281页珍藏版)》请在金锄头文库上搜索。
1、BEIJINGBEIJING- -FANUCFANUC一、变量的使用二、系统变量三、运算命令四、循环语句五、程序案例六、宏程序的调用七、宏语句的处理八、中断宏程序九、格式数据输入主要内容:1用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元一、概述2用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC主程序宏程序一、用户宏程序用途3用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC 形状类似但大小不同(圆、方及其它) 其它 自动化功能(刀具长度测量)换刀功能 特殊形状(椭圆、球等) 大小相同但位置不同(组孔、阵列等)二、
2、宏程序的适用范围加工程序编程生产管理PMC强电控制4用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC宏程序子程序使用变量可使用变量不可以使用变量调用方式G65 P_ L _ ;M98 P_ _;程序结束M99;M99;嵌套4重0i-D:5重4重三、宏程序与子程序的比较注释:为0i-D、30i系列的新增功能5用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC四、宏程序相关的参数#5(SBM) 用户宏程序语句中, 0: 单程序段不停止 1: 单程序段停止#6(CCV) 复位(Reset)后,公共变量#100#1990: 清空1: 不清空#7(CLV
3、) 复位(Reset)后,局部变量#1#33 0: 清空1: 不清空0i-D没有6001#7设置6用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC#4(NE9) 编辑程序号为90009999的程序0: 不禁止1: 禁止#6(NPE) 程序登录时,对含有M02,M99,M30的程序段0: 视为登录结束1: 不视为登录结束NE8五、宏程序的保护1、参数设置7用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC3210密码锁3210密码锁设置时须谨慎,若使用G10可编程数据输入时,则出现PS0231#报警3211密码钥匙 设定值后不显示,断电后为0参数
4、6001#5设为1 T代码调用宏程序2、密码保护、密码保护8用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC 变量的表示 变量的种类 变量的显示与设定 变量的使用 未定义变量 公共变量名称 单元二、变量9用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC第二章第二章 变量变量10用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC一、变量的表示 例:#10, #1005表达式也可以用于指定变量号,但需封闭在括号内 例:#2-1,#500/2可在程序段结尾加注释说明变量内容,但需用括号封闭 例: #2=#3-1(TOOL N
5、UMBER)变量符号(#)+ 变量号变量的表示方法11用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC变量号变量类型用 途#0、#3100空变量总为空,不能写,只能读#1#33局部变量只能用在当前用户宏程序中存储变量断电/复位后数据初始化#100#199#500#999公共变量在不同的程序中意义相同,各用户宏程序公用.断电后:#100#199初始化为空, 500#999数据保存#1000系统变量可用于读写CNC运行时的各种数据二、变量的种类12用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC三、局部变量、公共变量、系统变量的用途和特性局部变量
6、:#1#33,初始状态为,自变量输入可用程序或MDI方式输入,可以自由使用,属性READ/WRTIE.公共变量:#100#199、#500#999,共600个,在主程序或调用的各子程序以及各个宏之间的通用.公共变量的用途没有在系统中确定,用户可自由使用.#100#199断电不保护,#500#999断电保护,属性READ/WRTIE.公共变量的写保护:参数60316032 对#500#999进行保护,属性为READ,以防止输入/全清的误操作.系统变量:在系统中固定,属性有只读、只写、可读可写三种.系统常量:其值不变的常量,属性只读.13用户宏程序用户宏程序BEIJINGBEIJING- -FAN
7、UCFANUC四、变量的显示与设定四、变量的显示与设定变量的显示变量的显示1).按下MDI面板上的功能键OFFSETSETTING2).按几次 键,直至 出现14用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC3).按下 显示宏程序变量值15用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC4).按 、 显示局部和公共变量值16用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC公共变量的设定1.找到显示公共变量的画面。2.将光标移至欲设定的变量号上。键入变量号并按 键或按换页键 、 和光标 键将光标移至欲设定的变量号上3
8、.键入数据并按17用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC五、变量的使用 # i = # i = 将计算结果赋值给对应的变量号常数、变量、函数和运算符的组合表示方法#1= #2 + 100 ;#1= #2 + #18 SIN#5 ;18用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC当在程序中定义变量值时,小数点可以省略#1 = 123;#1123.000变量的引用 跟在地址后面的数值可用变量来代替。G01 X10.0 F#1;F把#1值作为F的指令值G01 X-#1+#2 F#1;把表达式放在括号中变量的赋值19用户宏程序用户宏程序
9、BEIJINGBEIJING- -FANUCFANUC变量用于地址数据时,被引用变量的值根据地址的最小设定单位自动地四舍五入例: G01 X#1;当#1赋值为12.3456时,实际指令值为G01 X12.346;设定单位1/1000mm(IS-B)改变引用变量的值的符号时,要把负号放在#的前面例: G00 X-#1;20用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC当引用未定义的变量时,变量及地址字都被忽略例: G00 X#1 Y#2;当#1=0,#2为空时 实际指令为G00 X0; 程序号、顺序号和任选程序段跳转号不能使用变量.以下表述是错误的.O#1;N#3 Y
10、200.0;/#2 G00 X10.;21用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC参数6008#0为0时,最大值 , 最小值参数6008#0为1时,最大值 , 最小值超出范围出现PS0111#报警变量的范围角度单位为度角度单位为度( ),最小指令单位0.00122用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC六、未定义变量当变量值未定义时,这样的变量成为变量变量#0 总是空变量,它不能写只能读未定义变量的引用当引用一个未定义的变量时,地址本身也被忽略当#1=时当#1=0时G90 X100 Y#1 G90 X100G90 X100 Y
11、#1 G90 X100 Y023用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC系统变量与常量可通过变量号指定,也可通过事先准备的系统变量(常量)名称来指定. 1.系统变量 它由(下划线)开始8个英文字母、数字构成.对轴和刀具补偿,作为名称的标号,可用n(n为整数),n可用即运算格式指定.七、系统变量与常量的名称24用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC注意:当n指定整数以外的数值时,n小数则按四舍五入处理.2.系统常量 属性R例# -ABSIO1.4999999:假定此值为# -ABSIO1,也即#5001例# -ABSIO1.5
12、000000:假定此值为# -ABSIO2,也即#5002常量常量名称内容#0、#3100#-EMPTY空值#3101 #-PI圆周率=3.14159265.#3102 #-E自然对数e=2.71828182.25用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC八、公共变量的名称由SETVN指定设定变量名称,即可读取或写入.指令格式如#VAR500,必须以#公共变量名称的格式指定.公共变量名称设定和指令时,可赋值#500#549,共50个,公共变量8个字符,开头必须是字母,断电不消失.例如:SETVN nAVR500,AVR501,AVR502,.;变量号n、n+1
13、、 n+2的变量名称:各字符串之间以 “, ”隔开.字符除了控制出、控制入、 、EOB26用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC九、设定和指令27用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元三、系统变量28用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC接口信号刀具补偿 坐标系偏移(T)CNC报警时钟和零件数时间信息自动运行控制 设定单元三、系统变量29用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC模态信息位置信息刀具长度补偿值伺服位置、手轮中断、剩余运动量工件原点偏移
14、系统变量读取CNC内部信息数据,如模态信息、坐标位置、刀具补偿等,系统变量对自动化程序和通用程序十分重要.系统变量及常量.n表示标号,属性R表示只读、W表示只写、R/W表示可读/可写.30用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC一、接口信号 31用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC32用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC33用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC34用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC35用户宏程
15、序用户宏程序BEIJINGBEIJING- -FANUCFANUC36用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC举例37用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC38用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC1 1. .变量范围变量范围: #2001#2800: #2001#2800、#10001#13400(#10001#13400(属性属性R/W)R/W)2.2.刀补刀补A: A: 参数参数8136#68136#6为为1 1 3.3.刀补小于等于刀补小于等于200200个个, ,变量使用范围变量
16、使用范围#2001#2200#2001#2200二、刀具补偿量(M)39用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC 4.4.刀补刀补400400个个: :补偿个数为补偿个数为400, #10001#10400400, #10001#1040040用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀具补偿(M)刀具补偿存储器A,参数8136#6 为0i-D 适用41用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀补补偿存储器C,参数8136#6=0;6000#3=0 42用户宏程序用户宏程序BEIJINGBEIJ
17、ING- -FANUCFANUC刀补补偿存储器C刀补补偿存储器C,参数8136#6=0;6000#3=143用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC无刀具形状/磨损补偿器,参数8136#6=1 刀具补偿个数小于等于64个刀具补偿(T)44用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀具形状/磨损补偿器,参数8136#6=0刀具补偿(T)45用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀补C长度补偿参数8136#6=0, 补偿个数小于等于200个,参数6000#3=0.长度补偿参数6000#3=1,补偿
18、个数小于等于200个.长度补偿(F10/F11)46用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀具半径补偿参数8136#6=0 ,补偿个数小于等于200个,参数6000#3=1 6004#5=1(F10/F11)半径补偿47用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC补偿个数为400个(小于等于200个也可使用#2001#2800)参数6000#3=048用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC参数参数6000#3=149用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC长度
19、补偿举例写入读取50用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC范围:#20012964、#10001#19200(属性R/W)无刀具形状和磨损补偿器:8136#6=1 ,补偿个数小于等于64个刀具补偿量(T)51用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC52用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC补偿个数200个,补偿个数小于等于64个,也可使用#2001#2499.53用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC有刀具形状和磨损补偿器:8136#6=1,刀补个数小于
20、等于64个磨损补偿54用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC几何补偿55用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC补偿个数200个,补偿个数小于等于64个,也可使用#2001#2964.56用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC工件坐标系偏移工件坐标系偏移(T)三、工件坐标系偏移(T)可以利用系统变量 #2501 读取X 轴的工件坐标系偏移量的值,利用#2601 读取Z轴的工件坐标系偏移量的值。此外,将值代入系统变量,可以改变X 轴和Z 轴的工件原点坐标系偏移量。#2501、#2601(属性
21、:R/W)工件坐标系偏移量57用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC工件坐标系偏移量读取写入58用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC四、CNC报警参数6008#1=0表达式后为不超过26个字符的报警信息屏幕上显示报警号和报警信息,报警号为#3000的值加上3000#3000=1 (WRONG DATA INPUT);屏幕显示: 3001 WRONG DATA INPUT例:注释:59用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCCNC报警有以下两种使用情况:参数MCA(No.6008#1)=0
22、时#3000 = n (ALARM MESSAGE) ; ( n: 0200 )将3000 与变量#3000 的值相加的报警号和报警信息一起在画面上显示出来。(例) #3000=1 (ALARM MESSAGE);报警画面上显示出“3001 ALARM MESSAGE”。参数MCA(No.6008#1)=1时#3000 = n (ALARM MESSAGE) ; ( n: 04095 ),继MC 后,画面上显示出#3000 报警号和报警信息。(例) #3000=1 (ALARM MESSAGE);报警画面上显示出“MC0001 ALARM MESSAGE”。60用户宏程序用户宏程序BEIJIN
23、GBEIJING- -FANUCFANUC时钟控制 例如:2009年1月20日 下午4时17分5秒 #3011=20090112 #3012=161705五、时钟和零件数61用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC零件数刀补存储器(M)#3980 主程序号主程序号主程序号#4000(#4000(属性属性:R):R) ,MDI ,MDI及及DNCDNC方式方式#4000#4000的值就改变为此时指定的值就改变为此时指定 的的0 0号号.#4000.#4000不管出在哪个层次的子程序内不管出在哪个层次的子程序内, ,始终读取主程序号始终读取主程序号62用户宏程序用
24、户宏程序BEIJINGBEIJING- -FANUCFANUC六、时间信息变量号单位功 能赋值#3001毫秒计时器。电源接通时复位为0。可以#3002小时计时器。循环启动灯亮时开始计时。即使在断电时也保存该值可以计时器地址 #3001、#3002 (属性:R/W)63用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC64用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC七、自动运行控制#3000#3008时钟 计时器65用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC自动运行控制当电源接通时复位,#3003的值为0.当单
25、程序段停止无效时,即使操作面板上的单程序段开关设为ON, 也不执行单程序段停止.当不指定等待辅助功能(M 、S 和T 功能)完成信号时,在辅助功能完成之前程序执行到下列程序段,而且分配完成信号DEN不输出.注意不要在没有等待完成信号下指令下一个辅助指令.#3003(属性R/W)66用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC可通过变量名称实现个别控制.例钻孔循环(增量编程)宏程序调用指令(相当于G81)67用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC准确停止方式G09G61#3004(属性R/W)复位被清除68用户宏程序用户宏程序BE
26、IJINGBEIJING- -FANUCFANUC变量名称指令变量名称指令69用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC变量名称指令70用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC当电源接通时,#3003和#3004的值为0.当进给暂停无效时.1 当进给暂停按钮被按下时,机床在单段停止方式停止,但是当用 变量#3003使单程序段方式无效时,单程序段停止不执行.2 当进给暂停按钮压下又松开时,进给暂停灯亮但是机床不停止, 程序继续执行,并且机床停在进给暂停有效的第一个程序段.当进给速度倍率无效时,总是100%的倍率,而不管机床操作面板
27、上 的进给速度倍率开关的设置如何.#3003=1#3004=1时的运行情况71用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC攻丝案例攻丝宏程序72用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC八、SETTING值变量号功能赋值#3005设定数据可以#3005(属性:R/W)处理的数值为将二进制转换成十进制的数值73用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC伴随信息同时停止#3006(属性W)宏指令发出#3006=1(MESSAGE),程序即可在一个程序段停止, 控制输入输出字符26个字符以内,并使用括弧括起
28、来.74用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC镜像状态#3007(属性:R)镜像的状态通过读取#3007,即可得知每个轴在该时刻的镜像(设定或DI)的状态轴与二进制显示时的各位(bit)对应:75用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC变量号功能赋值#3007使用外部开关或SETTING 操作设置的各轴镜像状态可以通过输出信号,镜像检测信号读出不可76用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC9、模态信息1.#4001#4130 程序段前指定的模态信息2.#4201#4330 当前正在执行的程
29、序段的模态信息3.#4401#4530 被中断型用户宏程序中断的程序段之前指定的模态信息 77用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC模态信息(M)78用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC模态信息79用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC模态信息(M)80用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC模态信息(M)81用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC模态信息(T)82用户宏程序用户宏程序BEIJINGBEIJING-
30、-FANUCFANUC83用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC模态信息分类(M)分类:之前的程序段、执行中的程序段、被中断的程序段84用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC85用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC模态信息分类(T)分类:之前的程序段、执行中的程序段、被中断的程序段86用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC87用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC例如88用户宏程序用户宏程序BEIJINGBEIJI
31、NG- -FANUCFANUC十、位置信息89用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC位置信息#5001#5065(属性:R)位置信息包括程序段的终点位置、当前位置(机械坐标系、工件坐标系)、跳过信号位置90用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC91用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC位置信息例:读取X轴的位置信息 程序指令X轴坐标位置变量地址号92用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC十一、刀具长度补偿(M)93用户宏程序用户宏程序BEIJINGBE
32、IJING- -FANUCFANUC刀具长度补偿(M)#5081#5085(属性:R)当前正在执行的程序段中的刀具长度补偿量94用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀具长度补偿刀具长度补偿例:使用刀具长度补偿(M)95用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀具位置偏置(T)96用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀具位置偏置(T)#5081#5085(属性:R)97用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀具位置偏置(T)#5081#5085,#51
33、21#5125(属性:R)98用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC99用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC刀补C 几何补偿磨损补偿100用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC伺服位置偏差#5101#5105(属性:R)伺服位置偏差值十二、伺服位置手轮中断剩余移动101用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC手轮中断#5121#5125(属性R) 手轮中断值(T)102用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC剩余移动量
34、剩余移动量#5181#5185(属性R) 103用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC十三、工件原点偏移(基本)M系列/T系列104用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC工件原点偏移#5201#5325(属性:R/W)工件原点偏移105用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC工件原点偏移(M/T)写入读出106用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC(M)107用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC108用户宏程序用户宏
35、程序BEIJINGBEIJING- -FANUCFANUC(T)109用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC110用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC附加坐标系(M)111用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC附加坐标系(M)#7001#7945 (属性属性R/W)附加坐标系附加坐标系系统变量号系统变量号=7000+(坐标系号坐标系号-1) 20+轴号轴号112用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC系统变量号=14000+(坐标系号-1) 20+轴号
36、工件坐标系组数追加48组,设定为有效参数N0.8136#2=0有效#14001#14945 附加坐标系113用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC114用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元四、运算指令表达式运算命令的种类运算顺序关于加工精度宏语句与NC语句的区别 115用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC运算指令右边的可以是常量、变量、函数或算符的组合表达式中使用不带小数点的常量一、表达式116用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC种 类符 号
37、格 式加法+#i = #j + #k 减法-#i = #j - #k乘法#i = #j#k除法/#i = #j / #k二、运算命令的种类加减乘除117用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC种 类符 号格 式结果正弦SIN#i=SINc/a余弦COS#i=COSb/a正切TAN#i=TANc/b反正弦ASIN#i=ASINc/a反余弦ACOS#i=ACOSb/a反正切ATAN#i=ATANc/b注:三角函数的角度单位为度( )。如:9030表示为90.5三角函数118用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC反三角函数的取值范
38、围函 数No.6004#0=0No.6004#0=1ATAN0360-180+180ASIN27090-9090ACOS1800#1=SIN90;#1=COS90;#1=TAN45;#1=ATAN1/1;#1=ATAN-1/-1;10145225#1#1#1#1#1反三角函数119用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC种 类函数名格 式平方根SQRT#i = SQRT #k 自然对数LN#i = LN #k 指数函数幂EXPPOW #i =EXP #k #i=POW#i,#j #2=2;#1=SQRT#2;1.414#1其它函数120用户宏程序用户宏程序BE
39、IJINGBEIJING- -FANUCFANUC种 类函数名格 式下取整FIX#i = FIX #k 上取整FUP#i = FUP #k 四舍五入ROUND#i =ROUND #k 绝对值ABS#i =ABS #k 下取整(FIX): 舍去小数点以下部分上取整(FUP): 将小数后部分进位到整数部分 ROUND函数:在算术运算或逻辑运算指令中使用时,在第1个小数位置 四舍五入 在NC语句地址中使用时,根据地址的最小设定单位将指 定值四舍五入数据处理函数121用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC运算指令#2=1.2346时#2=-1.6794时#1= FI
40、X #2 #1= FUP #2 #1=ROUND #2 #1=ABS #2 G01 XROUND#2;G01X1.235G1X-1.6791.02.0-1.0-2.01.01.2346-2.01.6794计算相应的变量值#1下取整(FIX):舍去小数点以下部分上取整(FUP):将小数后部分进位到整数部分122用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC三、 运算顺序 函数 乘除运算( ,/,AND ) 加减运算(+, - , OR , XOR )#1=#2 + #3 SIN#4;123用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC 可以
41、利用 来改变运算顺序,可嵌套5次 可以使用函数名前面的两个字母来指定该函数。ROUNDRO FIXFI注意124用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC四、关于加工精度参数6008#0=0 需要注意的是,当绝对值被减掉时,不能将相对误差控 制在 低于10-15,原因在于用户宏程序变量只有10进制15位的控制精度.加减法的运算 EQNEGTLTGELE基本上与加减法运算相同,需要注意其误差.逻辑关系 例如: IF#1EQ#2 IFABS#1-#2LT0.1,必须评价此 时的误差,如果#1和#2的差在该误差的范围内,则可以认为其值相等.三角函数 在三角函数运算后进
42、行乘法除法运算时需要引起注意.注意事项125用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCFIX函数 FIX 函数也要同样注意其精度. N1#1=0.002; N2#2=#1*1000; N3#3=FIX#2; 此时#3不见得就成为2,为了预防此情况,应按照如下指定 N3#3=FIX#2+0.001126用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC127用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC注意:误差还会来自使用6个条件表达式 例 IF#1EQ#2受#1和#2的误差影响,可能导致判断错误.因此, 如I
43、FABS#1-#2LT0.001所示,求出两个变量之差,如果该差值不超过允许 值(例子中为0.001),则可以这两变量的值相等. 对一个数值进行只舍不入时,应十分小心 例#1=0.001 计算#2=#1*1000;时,#2的结果不正好是2,而是1.99999997.此时,如果指定 #3=FIX#2;变量#3的结果不正是2.0而是1.0.在这种情况下,进行误差修正 之后,对该值应进行只舍不入或四舍五入,使结果大于预期的整数值. #3=FIX#2+0.001; #3=ROUND#2;128用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC表达式括号的使用在表达式中使用的括号
44、为方括号 , 注意圆括号( )用于程序注释.除法运算中分母为”0”时,则会出现(PS0112#报警).当指定超出控制轴数时,则会出现(PS0115#报警变量号超限).括号的嵌套超过5位,则会出现(PS0118#报警).自然对数,当逆对数(#j)小于等于0时,则会出现(PS0119#报警).指数函数,运算结果溢出时,则会出现(PS0119#报警).129用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC五、用户宏程序的特点 含运算指令(=)的程序段含控制指令(如GOTODOEND)的程序段含宏指令(由G65G66G67G代码或M代码的宏指令的程序段。除宏语句以外的程序段称
45、为NC语句.即使在单程序段方式,机床也不会停止,但是,当参数SBM(N0.6000#5)设为1时,在单程序运行方式中机床停止。在刀具半径补偿方式中, 宏程序语句段不作为不移动程序段处理。130用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC含有子程序调用指令(例如用M98 或其它M代码或用T代码调用子程序)但没有除O, N 或L 地址之外的其它地址指令的NC 语句其性质与宏程序相同不包含除O、N、P 或L 以外的指令地址的程序段,其性质与宏程序语句相同与宏程序语句有相同性质的NC语句131用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元五
46、、控制指令l无条件转移(GOTO 语句)l条件转移(IF 语句)l条件表达式l循环(WHILE 语句)l限制 132用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC改变流程1 在程序中,可以使用GOTO语句和IF语句等来改变程序的流程.2 转移和重复有下列三种133用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC一、无条件转移(GOTO 语句) GOTO n; n:程序段号(1- 99999)该语句使程序无条件地转移到程序段n去。例如n也可用变量或表达式来代替 例如GOTO #10;当顺序号在199999范围以外,就会出现(PS1128#报警
47、)警告:不可在一个程序中指定多个相同顺序号的程序段,若是这样,利用GOTO语句转移时,转移目的地不确定,这样十分危险.GOTO 10;134用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC 顺序号存储型GOTO在执行控制指令GOTO语句时,对于以前执行并存储的顺序号,高速地进行顺序号检索,以前执行并存储的顺序号,指就所执行的顺序号在相同程序内没有重复的顺序号以及子程序调用的顺序号,CNC对此进行存储135用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC存储的顺序号在下列情况下将被取消 通电、复位、程序的登录和编辑(含后台及MDI的程序编辑)时
48、, 请勿在一个程序中指定多个相同的程序段号。这样十分危险。136用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC IF GOTO n;若满足,则下步操作转移到程序段号为n的程序段去若不满足,执行下个程序段。二、 条件转移(IF语句) IF THEN ;若满足,执行THEN后的宏程序语句,只执行一个语句。例:IF#1 EQ #2 THEN #3=0;137用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC条件表达式条件不满足时执行的操作条条件件满满足足时时是是否否IFGOTO138用户宏程序用户宏程序BEIJINGBEIJING- -FANUCF
49、ANUC139用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC表 达 式含 义英 文#j EQ #k#j #kEQual#j NE #k#j #kNot Equal#j GT #k#j #kGreater Than#j LT #k#j #kLess Than#j GE #k#j #kGreater or Equal#j LE #k#j #kLess or Equal注:#j 和 #k 也可用来代替。三、条件表达式140用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序例子141用户宏程序用户宏程序BEIJINGBEIJING- -FANUC
50、FANUC四、循环(WHILE语句) WHILE DO m; (m=1,2,3)条件成立时执行的程序 END m;DO m和 END m必须成对使用,并以 其中的m作为识别号相互识别。m的范围为1,2,3。可以根据需要多次使用。142用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC143用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC识别号( 1,2, 3)可多次使用WHILE DO 1;程序END1;WHILE DO 1;程序END1;当重复的循环相互交叉时,会发出PS0124#报警144用户宏程序用户宏程序BEIJINGBEIJING-
51、-FANUCFANUCDO的区域不能交叉下列表达是错误的WHILE DO 1;程序WHILE DO 2;END1;程序END2;DO 一定要在END之前规定下列表达是错误的END1;程序WHILE DO 1;145用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCDO 循环可以嵌套3级WHILE DO 1; WHILE DO 2; WHILE DO 3; 程序 END3; END2; END1;146用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC可以从DO区域的内部向外部转移,例如WHILE DO 1;程序IF GOTO n;END1;程序N
52、n ;不可以从DO区域的外部向内部转移,例如下列表达是错误的IF GOTO n; WHILE DO 1;程序Nn ;END1;147用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC常用格式(当前值)=(初值);WHILE (当前值)比较(目标值) DO m;(执行循环操作);(当前值)=(当前值)1;ENDm;148用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC五、控制语句的使用限制无限循环:当指定DOm而省略WHILE语句时,程序则在DO到END之间 无限循环。处理时间:当要转移到GOTO语句中指定的顺序号时,程序先检索顺序号,反向处理数
53、据比正向要用较长的时间,为了缩短处理时间,作为重复指令,请使用WHILE语句。未定义的变量:在使用EQ、NE的条件表达式中,空值和0(零)有不 同的效果,在别的条件表达式中,空值被看成0。149用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序例子求110之和150用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCG00 G91 X100.0;Y100.0;要求:对以上动作重复执行三次。设#1为动作执行次数,初始值为零。#1=0; G00 G91 X100.0; Y100.0;#1=1; G00 G91 X100.0; Y100.0;#1=2
54、; G00 G91 X100.0; Y100.0;#1=3;#1=0;WHILE#1 LT 3 DO 1; G00 G91 X100.0; Y100.0; #1=#1+1;END1;计数器累加重复执行的动作计数器复位151用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元六、程序案例粗铣圆内腔粗车外圆自动设定坐标系152用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC一、粗铣圆内腔#5:圆半径的增量#18:最终圆弧半径O9999; #5= 10.0; #18= 45.0; #1= 0; #2= 0; WHILE#1 LT #18 DO 1;
55、 #1= #1+ #5; IF#1 LE #18 GOTO1; #1= #18; G01 G91 Y#1- #2 F300; G02 J-#1; #2= #1; END1;M30;N1当次圆弧半径当次圆弧半径前次圆弧半径前次圆弧半径153用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序案例O0099G00G90G54X0Y0G43Z5.H1S1500M3G1Z-5F300#5=10#18=45#1=0#2=0WHILE#1LT#18DO1#1=#1+#5IF#1LT#18GOTO1#1=#18N1G1G91Y#1-#2F300G2J-#1#2=#1END1G00Z
56、100M5M30154用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC二、粗车外圆WHILE#26 GT 0 DO1; #26=#26- #6; IF#26 GE 0 GOTO 1; #6=#6 + #26; G00 W-#6+#4; G01 U-#24 F#9; #4=#3; G00 U#4*2 W#4; U#24- #4*2;END1;M30;O9999; #3=1.0; #4=0; #6=10.0; #9=300.0; #24=20.0; #26=48.0;#26#3#6#24#3: 空程量#6: 每次切削量#9: 切削速度#24: X方向切削量#26: Z方向
57、切削量N1155用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序案例O0202T0101G00X50.Z0G98S2000M3#3=1.#4=0#6=10.#9=300.#24=20.#26=48.WHILE#26GT0DO1#26=#26-#6IF#26GE0GOTO1#6=#6+#26N1G00W-#6+#4G1U-#24F#9#4=#3G00U#4*2W#4U#24-#4*2END1G00X50.Z0M5M30156用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO1210O1210G00 G54 G90 X0 Y0G00 G54
58、G90 X0 Y0G31G31 X100. X100. F200 F200 #500 = #5061 #500 = #5061 G00 X0G00 X0G31G31 X-100. X-100. F200F200#501 = #5061 #501 = #5061 #502 = #500+#501/2 #502 = #500+#501/2 G10G10 G91 L2G91 L2 P1 X#502 P1 X#502M30M30 三、自动设定坐标系157用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO9999 IF#4111 EQ 0GOTO 9; #1= #5043; G
59、00 G90 G43 Z50.0; M00; #11000+#4111= #5043; G00 G49 Z#1; M30;N9 #3000=9(OFFSET # ERROR);操作步骤操作步骤#2200+#4111手动刀具长度测量158用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC159用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC160用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元七、用户宏程序调用非模态调用G65两种形式的自变量赋值规定系统变量的存储模态调用G66G、M代码调用宏程序M、T代码调用子程序
60、使用M代码计算刀具使用时间利用特定代码的子程序161用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC一、宏程序调用限制162用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO9999;#21=90.0;#22=120.0;N1 G01 G91 X#21 F300;N2 Y#22;N3 X- #21;N4 Y- #22;M30;简单的四边形铣削163用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC简单的四边形铣削O0001;M98 P9999;M30;O9999;#21=90.0;#22=120.0;N1 G01 G9
61、1 X#21 F300;N2 Y#22;N3 X-#21;N4 Y-#22;M99;O0001;#21=90.0;#22=120.0;M98 P9999;M30;O9999;N1 G01 G91 X#21 F300;N2 Y#22;N3 X-#21;N4 Y-#22;M99;O0001;M98 P9999 #21=90.0 #22=120.0;M30;O0001;G65 P9999 U90.0 V120.0;M30;UV164用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC G65 Pp Ll 自变量赋值;要调用的程序号重复次数用G65指令,把由P指令的宏程序体调用L
62、次指定的重复次数的范围为1999999999,L的缺省值为1按照自变量赋值的规定,将自变量的实际数值调到相应的程序体中宏程序调用有2类:宏程序调用和子程序调用,MDI方式也有效二、非模态调用G65165用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO0001; G65 P9010 L2 A1.0 B2.0; M30;O9010;#3=#1+#2;IF#3 GT 360 GOTO 9;G00G90 X#3;N9 M99;指定重复次数时,在地址L后,指定重复次数(1999999999)的范围简单调用(G65)166用户宏程序用户宏程序BEIJINGBEIJING- -F
63、ANUCFANUC 三、自变量赋值规定自变量赋值自变量赋值167用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC自变量赋值地址变量号地址变量号地址变量号A#1I#4T#20B#2J#5U#21C#3K#6V#22D#7M#13W#23E#8Q#17X#24F#9R#18Y#25H#11S#19Z#26168用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC 对字母A-Z后加数值来赋值,但G,L,N,O,P除外 I,J,K须按字母顺序指定169用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCG65 P9003 X30.
64、Y45. Z-3. F300;#9= 300;#24= 30.0;#25= 45.0;#26= -3.0;170用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC自变量赋值地址变量号地址变量号地址变量号地址变量号A#1I3#10I6#19I9#28B#2J3#11J6#20J9#29C#3K3#12K6#21K9#30I1#4I4#13I7#22I10#31J1#5J4#14J7#23J10#32K1#6K4#15K7#24K10#33I2#7I5#16I8#25-J2#8J5#17J8#26-K2#9K5#18K8#27-注意:I,J,K的下标下标代表自变量赋值的顺序
65、,在实际编程中不写171用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC限制172用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCG65 A1.0 B2.0 I-3.0 I4.0 D5.0 P1000;CNC 内部自动识别自变量赋值和自变量赋值。如果自变量赋值和自变量赋值混合指定的话, 后指定的自变量类型有效自变量指定的混合注意:MDI方式运行程序同样可以调用程序173用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC四、系统变量的存储O0001;N10 G00 G90 X100.0 Y50.0;N11 G65 P99
66、99 U90.0 V120.0;N12 X200.0 Y100.0;M30;O9999;N1 G01 G91 X#21 F300;N2 Y#22;N3 X-#21;N4 Y-#22;M99;O9999;#30=#4001;#31=#4003;#32=#4109;N1 G01 G91 X#21 F300;N2 Y#22;N3 X-#21;N4 Y-#22;G#30 G#31 F#32;M99;174用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC例:倾斜的四边形加工Yx#21(U)#22(V)#1(A)aaCOSa SIN O0001;G92 X0 Y0;G00 G90
67、 X100.0 Y50.0;G65 P9999 U100.0 V50.0 A30.0;M30;175用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO9999;#30= #4001;#31= #4003;#32= #4109;#10= #21 * COS#1;#11= #21 * SIN#1;#12= #22 * COS90 + #1;#13= #22 * SIN90 + #1;N1 G01 G91 X#10 Y#11 F300;N2 X#12 Y#13;N3 X-#10 Y-#11;N4 X-#12 Y-#13;G#30 G#31 F#32;M99;176用户宏程序
68、用户宏程序BEIJINGBEIJING- -FANUCFANUC 例:深孔钻削O0001;G00 G90 Z50.0;G65 P9999 Z-25.0 R3.0 Q-10.0 F300;M30;O9999;#1= #18;#2= #18;#3= 0;WHILE#1 GT #26 DO1; #1= #1+ #17; IF#1 GE #26 GOTO1; #1= #26; G00 G90 Z#2+#3; G01 Z#1 F300; G00 Z#18; #2= #1; #3= 1.0;END1;M30;N1177用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC例:内圆铣削X
69、YRO9999;#30= #4001;#31= #4003;#32= #4109;#1=#13000+#7;#2=#18 - #1;IF #2 LE 0 GOTO9;#3=#2/2;N1 G01 G91 X#3 Y#3 F#9;N2 G02 G17 X#3 Y-#3 R#3;N3 I-#2;N4 X -#3 Y-#3 R #3;N5 G01 X -#3 Y #3;G#30 G#31 G#32;M99;N9 #3000=1(OFFSET ERROR);O0001;G92 X0 Y0 Z0;G65 P9999 R50.0 D1 F300;M30;R:圆半径(#18)D:刀具半径补偿号(#7)F:进
70、给速度(#9)178用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC179用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC例:圆周上等距钻孔BBBX:圆心坐标(#24)Y:圆心坐标(#25)Z:孔的深度(#26)R:钻孔初始高度坐标(#18)U:圆弧半径(#21)A:起始角度(#1)B:角度增量值(#2)H:孔的个数(#11)F:进给速度(#9)180用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC调用格式181用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC调用的宏程序O0002G0G90
71、G54X0Y0G65P9100X100Y50R30Z-50F500I100A0B45H5M30182用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC183用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC例:程序案例184用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO0001;G92 X0 Y0;G65 P9999 U100.0 R80.0 A1.0 F300;M30;例:椭圆插补O9999;#30=#4001;#31=#4003;#32=#4109;#5=#1;#24= #5001;#25= #5002;WHIL
72、E #5 LE 360 DO1;#2= #24 + #21*COS#5;#3= #25 + #18*SIN#5;G01 G90 X#2 Y#3 F#9;#5=#5+#1;END1;G#30 G#31 F#32;M99;185用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO9999; #30= #4001; #31= #4003; #32= #4109; #1= 300; #2= 100; G28 G91 Z0; #4= #5003;例:自动刀具长度测量G00 G90 G53 X200.0 Y150.0;G91 G43 Z- #1 H#11;#5= #5003 - #
73、2;G31 Z-#2*2 F300;G00 G90 G49 Z#4;#6= #5063 - #11000 + #11;IF #6 LE #5 - #2 GOTO 9;#11000+#11 = #5063 - #5;G#30 G#31 F#32;M99;N9 #3000=1(CAN NOT MEASURE);186用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO9500;#1= #4001;#3= #4003;#9= #4019;G28 G91 Z0;G28 X0 Y0;G53 G90 X100.0 Y50.0;G31 G91 Z-200.0 F200;#5= #50
74、63; #2000 + #11= #5;G53 G90 G49 G00 Z0; IF #5 EQ 200.0 GOTO 9;G28 G91 Z0;G28 X0 Y0;G#1 G#3 F#9;M99;N9 #3000=1;187用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC例:车床钻孔宏程序调用宏程序O0002T0101;G98G0X0Z102S1000M3G65P9100Z50K20F150G0X100Z200M5M30188用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC189用户宏程序用户宏程序BEIJINGBEIJING- -FANU
75、CFANUC五、模态调用G66G66 Pp Ll 自变量赋值; ; ;G67;轴每移动一次,调用一次用户宏程序p:要调用的宏程序号l:重复次数(默认值为1)G67:取消模态调用指令190用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCO0001;G66 P9100 L2 A1.0 B2.0;G00 G90 X100.0;Y200.0;X150.0 Y300.0;G67; M30;O9100;G00 Z-#1;G01 Z-#2 F300;M99;程序案例191用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC限制192用户宏程序用户宏程序BEIJ
76、INGBEIJING- -FANUCFANUC193用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC194用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC例:车床切槽使用G66调用宏指令的程序宏指令(被调用的程序)195用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCG指令调用六、G、M指令进行宏程序方式调用G65 P9010 X100. Y20. R3. Z-20. F300;G81 X100. Y20. R3. Z-20. F300;将宏程序调用指令G65 P901用G 来代替宏程序号901与G代码之间的对应关系
77、由参数指定在被调用的宏程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作为普通的G、M代码处理变量赋值196用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC宏程序调用指令钻孔循环主程序宏程序如果设定了负的G代码,成为模态调用(相当于G66)用户不必改变加工程序即可调用用户宏程序创建的固定程序与简单调用一样,两类自变量指定:第一类自变量指定和第二类自变量指定,类型根据所用地址自动识别197用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序号参数号O90106050O90116051O90126052O90136053O9014605
78、4O90156055O90166056O90176057O90186058O90196059将参数No.6050设为81G代码调用宏程序时程序和参数对应关系198用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC199用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC利用G代码进行的宏程序调用(多个指定) 200用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC201用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC用M指令调用用户宏程序G65 P9020 A1.0 B2.0;M50 A1.0 B2
79、.0;将宏程序调用指令G65 P902用M 来代替宏程序号902与M代码之间的对应关系由参数指定在被调用的宏程序中不能再使用M、G代码调用宏程序,程序体中的M、G代码作为普通的M、G代码处理变量赋值202用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC利用M代码调用宏程序注释:调用方法与G65调用相同。自变量指定方法与简单调用一样,两类自变量指定方法:第一类自 变量指定法和第二类自变量指定法的类型根据所用地址自动识别。203用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC限制用来调用宏指令的M代码必须指定在程序的开头。由M代码调用的程序中调用
80、其他程序时可以使用G65、G66、M98指令。参数6008#6=1时,可由M代码调用的程序中执行利用G代码的调用。204用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序号参数号O90206080O90216081O90226082O90236083O90246084O90256085O90266086O90276087O90286088O90296089将参数No.6080设为50M代码调用宏程序时205用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC利用M代码调用宏程序206用户宏程序用户宏程序BEIJINGBEIJING- -FANU
81、CFANUC207用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC用G代码模态调用宏程序208用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCM指令调用七、M、T指令进行子程序方式调用M98 P9001;M03;将子程序调用指令M98 P900用M 来代替宏程序号900与M代码之间的对应关系由参数指定在被调用的子程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作为普通的G、M代码处理不能进行变量赋值注释:209用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序号参数号O90016071O90026072O
82、90036073O90046074O90056075O90066076O90076077O90086078O90096079将参数No.6071设为03M代码调用子程序时210用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC 子程序调用指令辅助功能当参数No.6071设为06时211用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC利用M代码调用多个子程序212用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC213用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC用T指令调用子程序当参数No.6
83、001#5设为1时,使用T代码可调用O9000程序,T代码所指定的数值自动赋值给变量#149214用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC限制通常在由T代码调用的程序中调用其他程序时可以使用G65、G66、M98指令。参数6008#6=1时,可以在由T代码调用的程序中执行G代码的调用。215用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC八、使用M代码计算刀具使用时间条件注释216用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC参数的设定:参数6071=3,参数6072=5变量值的设定;变量#501#505中
84、事先设定为0调用宏指令的程序O0001T01M06M03M05#501发生变化T05M06M03M05 #505发生变化M30217用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC218用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC计算刀具T1T5 使用时间的程序O9001;IF#4120 LE 0 GOTO 9;IF#4120 GT 5 GOTO 9;#3002= 0;N9 M03;M99;O9002;IF#4120 LE 0 GOTO 9;IF#4120 GT 5 GOTO 9;#500 + #4120 = #500 + #4120 +
85、 #3002;N9 M05;M99;参数No. 6071设为 03参数No.6072设为 05219用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC九、利用特定地址调用子程序220用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCM系列的特定地址注:在设置地址L时,不可指定重复次数221用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCT系列的特定地址注:在设置地址L时,不可指定重复次数222用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC参数号、程序号和公共变量对应关系如下所示 注意:不允许自
86、变量指定限制通常在由特定地址调用的程序中调用其他程序时可以使用G65、G66、M98指令。参数6008#6=1时,可在由特定地址调用的程序中执行利用G代码的调用。223用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC加工工件数量O9003;M01;#1100=0;#501=#501+1;IF#501 LT #500 GOTO 9;#1100=1;N9 M30;No.6073参数设为30O0001;G04 X5.;M30;224用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元八、处理宏语句不缓冲的程序段不含刀具半径补偿缓冲的程序段含刀具半径
87、补偿外部输出命令225用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC处理宏语句为了平稳加工,CNC要预读下一步要执行的NC语句。这种操作称为缓冲。在AI先行控制/AI轮廓控制方式的插补前加/减速中,可进行多次缓冲。在M系列的刀具半径补偿方式(G41、G42)中,即使没有处在插补前加/减速中,至少预读3个程序段的NC语句,并进行交点的计算。但是,运算式子和条件转移的宏语句一旦被缓冲,即可被处理。因此,执行宏语句的时机并不一定按照所指定的顺序。 M00、M01、M02、M30和参数34113420;34213432中的缓冲的M代码、或者用来控制G31、G53等缓冲的G代
88、码的程序段中,则不能进行预读。因此,在执行完这些M代码、G代码之前,可以确保不执行后面的宏语句226用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC一、不缓冲的程序段控制缓冲的有M代码和G31指令227用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC二、不含刀具半径补偿缓冲的程序段非刀具半径补偿(G41、G42)方式在执行N1程序段的同时,将下一个NC语句N4读入缓冲器。在执行N1程序段的过程中,处理夹在其间的的宏语句(N2、N3)程序段。注释228用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC三、含刀具半径补偿缓
89、冲的程序段M系列:刀具半径补偿(G41、G42)方式时229用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC注释在执行N1程序段的同时,将后3个NC语句(N7)读入缓冲器中。在执行N1程序段的过程中处理夹在其间的宏语句(N2、N4、N6)程序段。230用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC四、登录用户宏程序231用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC五、外部输出命令除指定标准的用户宏程序指令外,还可使用以下宏指令。称之为外部输出指令如:BPRNT、DPRNT、POPEN、PCLOS这些指令通过阅读
90、机/穿孔机接口输出变量的数值和字符232用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC233用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC234用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC235用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC236用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC237用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC238用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC239
91、用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC240用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC241用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC限制242用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCM系列系列EDIT方式方式243用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC244用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元九、中断型用户宏程序中断型用户宏程序功能的适应控制应用条件指定功能细节用户宏程序中断NC语句
92、使用用户宏程序中断信号有效/无效的条件用户宏程序中断信号(UNIT)从用户宏程序中断返回用户宏程序中断和模态信息245用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC当一个程序正在执行时,从机床输入一个中断信号(UINT),就可以调用另外一个程序。这一功能称为中断型用户宏程序功能(1)通过外部信号启动刀具异常检测时的处理。(2)在一连串的加工过程中,不用取消当前执行之中的加工来中断其他加工。(3)以一定的间隔读当前正在进行的加工信息。注释246用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC一、中断型用户宏程序功能的适应控制应用当在程序中指定
93、M96Pxxxx时输入中断信号(UINT),则中断后续程序的执行,而执行指定为Pxxxx的程序。中断程序执行中以及M97以后的中断信号(如图所示)的UINT*以及UINT*将被忽略。247用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC二、条件指定指定方法 用户宏程序中断即可在程序执行中利用1. 选择存储器运行、DNC运行或MDI运行时2. 当STL(启动指示灯)被接通时3. 没有处在用户宏程序中断处理的状态4. 手动运行中不可指定用户宏程序中断248用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC指定格式249用户宏程序用户宏程序BEIJI
94、NGBEIJING- -FANUCFANUC250用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC注释251用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC三、功能细节子程序型中断和宏指令型中断252用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC用于用户宏程序中断控制的M代码253用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC四、用户宏程序中断和NC语句254用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC类型 在程序段执行中中断255用户宏程序用户宏程序BEI
95、JINGBEIJING- -FANUCFANUC256用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC类型 在程序段的结尾执行中断时257用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC258用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCM系列注释正在执行循环操作的程序时,不管参数6003#2设置如何,执行中断类型.循环操作具有如下所示功能1. 自动返回参考点2. 刀具半径补偿(从刀具绕外边以锐角旋转的一个程序段生成多个程序段)3. 固定循环4. 刀具长度自动测定5. 法线方向控制259用户宏程序用户宏程序BEIJ
96、INGBEIJING- -FANUCFANUCT系列注释正在执行循环操作的程序时,不管参数6003#2设置如何,执行中断类型.循环操作具有如下所示功能1. 自动返回参考点2. 刀尖半径补偿(从刀具绕外边以锐角旋转的一个程序段生成多个程序段)3. 固定循环(但是,正在执行复合车削固定循环时,不可使用中断型用户宏程序)4. 自动刀具补偿5. 倒角/拐角R260用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC五、用户宏程序中断信号(UINT)261用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC采用状态触发方式时,中断进行4次;当采用边沿触发方式时
97、,中断只进行1次262用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC六、从用户宏程序中断返回263用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC七、用户宏程序中断和模态信息因此,应根据需要采取下列应对措施1)中断程序提供控制返回后的模态信息。2)重新指定控制返回目的地所需的模态信息。264用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC265用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC以M99返回时的模态信息:中断前存在的模态信息继续有效,在中断程序中改变过的新模态信息无效。以M99
98、Pxxxx模态信息:即使在控制返回后,中断程序改变过的新模态信息仍然保持有效。266用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCT系列被中断的程序段的模态信息系列被中断的程序段的模态信息M系列被中断的程序段的模态信息通过用户宏程序的系统变量,可以读取被中断的程序段的模态信息267用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCT系列被中断的程序段的模态信息通过用户宏程序的系统变量,可以读取被中断的程序段的模态信息268用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC中断程序的系统变量(位置信息)269用户宏程序用
99、户宏程序BEIJINGBEIJING- -FANUCFANUC270用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCM系列271用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUCT系列272用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC磨床案例参考点273用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序格式程序中指令M96/M97,以控制中断有效/无效274用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC单元十、格式数据输入通常,给用户宏程序赋值的数据是在加工程
100、序中作为自变量指定的。此外还有一种方法,就是在显示菜单画面,利用把加工数据直接写入宏变量的功能,称为格式数据输入。写在程序O95009510显示格式菜单宏变量输入画面执行操作过程275用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC一、显示格式菜单276用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序O9500N1G65H90P072079Q076069R032080I065084J084069K082078 孔图形N2G65H91P1Q066079R076084I032072J079076K069032 螺栓孔N3G65H91P2Q07
101、1082R073068 网格孔N4G65H91P3Q076073R078069I032065J078071K076069 斜线孔N5G65H91P4Q084065R080080I073078J071032 攻丝N6G65H91P5Q068082R073076I076073J078071 钻孔N7G65H91P6Q066079R082073I078071 镗孔N8G65H91P7Q080079R067075I069084 型腔N9G65H91P8Q080069R067075 深孔 N10G65H91P9Q084069R083084I032080J065084K082078 测试图形N11G65H
102、91P10Q066065R067075 反镗 M99277用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC二、宏变量输入画面278用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC程序O9501N1G65H92P066079Q076084R032072I079076J069032 变量:螺栓孔 N2G65H93P500Q084079R079076 #500 刀具N3G65H93P501Q075073R074085I078032J088032 #501 KIJUN XN4G65H93P502Q075073R074085I078032J089032
103、 #502 KIJUN Y N5G65H93P503Q082065R068073I085083 #503 半径N6G65H93P504Q083046R032065I078071J076032 #504 起始角 N7G65H93P505Q072079R076069I083032J078079K046032 #505 孔数 N8G65H94 注释 N9G65H94P042066Q079076R084032I072079J076069 螺栓孔N10G65H94R032067I073082J067076K069042 圆周N11G65H94P083069Q084032R080065I084084J06
104、9082K078032 设定图形数据N12G65H94P068065Q084065R032084I079032J086065K082046 变量号N13G65H94P078079Q046053R048048I045053J048053K046032 No500505N14M99 279用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC格式数据输入功能的宏指令格式数据输入功能中的系统变量280用户宏程序用户宏程序BEIJINGBEIJING- -FANUCFANUC三、执行操作过程1.首先把执行各菜单的宏程序,登录在存储器中,O8001O80102.编辑主程序O8000;M98P8000+#5900;-调用与菜单对应的宏程序M30;3.按机床操作面板 即可 注:在菜单画面选择的菜单号(110)写入到#5900系统变量中循环启动281用户宏程序用户宏程序