FANUC用户宏程序_第1页
FANUC用户宏程序_第2页
FANUC用户宏程序_第3页
FANUC用户宏程序_第4页
FANUC用户宏程序_第5页
已阅读5页,还剩276页未读 继续免费阅读

下载本文档

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

文档简介

1、用户宏程序用户宏程序1一、变量的使用二、系统变量三、运算命令四、循环语句五、程序案例六、宏程序的调用七、宏语句的处理八、中断宏程序九、格式数据输入主要内容:用户宏程序用户宏程序2单元一、概述用户宏程序用户宏程序3主程序宏程序一、用户宏程序用途用户宏程序用户宏程序4 形状类似但大小不同(圆、方及其它) 其它 自动化功能(刀具长度测量)换刀功能 特殊形状(椭圆、球等) 大小相同但位置不同(组孔、阵列等)二、宏程序的适用范围加工程序编程生产管理PMC强电控制用户宏程序用户宏程序5宏程序子程序使用变量可使用变量不可以使用变量调用方式G65 P_ L _ ;M98 P_ _;程序结束M99;M99;嵌套

2、4重0i-D:5重4重三、宏程序与子程序的比较注释:为0i-D、30i系列的新增功能用户宏程序用户宏程序6四、宏程序相关的参数#5(SBM) 用户宏程序语句中, 0: 单程序段不停止 1: 单程序段停止#6(CCV) 复位(Reset)后,公共变量#100#1990: 清空1: 不清空#7(CLV) 复位(Reset)后,局部变量#1#33 0: 清空1: 不清空0i-D没有6001#7设置用户宏程序用户宏程序7#4(NE9) 编辑程序号为90009999的程序0: 不禁止1: 禁止#6(NPE) 程序登录时,对含有M02,M99,M30的程序段0: 视为登录结束1: 不视为登录结束NE8五、

3、宏程序的保护1、参数设置用户宏程序用户宏程序83210密码锁3210密码锁设置时须谨慎,若使用G10可编程数据输入时,则出现PS0231#报警3211密码钥匙 设定值后不显示,断电后为0参数6001#5设为1 T代码调用宏程序2、密码保护、密码保护用户宏程序用户宏程序9 变量的表示 变量的种类 变量的显示与设定 变量的使用 未定义变量 公共变量名称 单元二、变量用户宏程序用户宏程序10第二章第二章 变量变量用户宏程序用户宏程序11一、变量的表示 例:#10, #1005 表达式也可以用于指定变量号,但需封闭在括号内 例:#2-1,#500/2 可在程序段结尾加注释说明变量内容,但需用括号封闭

4、例: #2=#3-1(TOOL NUMBER)变量符号(#)+ 变量号变量的表示方法用户宏程序用户宏程序12变量号变量类型用 途#0、#3100空变量总为空,不能写,只能读#1#33局部变量只能用在当前用户宏程序中存储变量断电/复位后数据初始化#100#199#500#999公共变量在不同的程序中意义相同,各用户宏程序公用.断电后:#100#199初始化为空, 500#999数据保存#1000系统变量可用于读写CNC运行时的各种数据二、变量的种类用户宏程序用户宏程序13三、局部变量、公共变量、系统变量的用途和特性局部变量:#1#33,初始状态为,自变量输入可用程序或MDI方式输入,可以自由使用

5、,属性READ/WRTIE.公共变量:#100#199、#500#999,共600个,在主程序或调用的各子程序以及各个宏之间的通用.公共变量的用途没有在系统中确定,用户可自由使用.#100#199断电不保护,#500#999断电保护,属性READ/WRTIE.公共变量的写保护:参数60316032 对#500#999进行保护,属性为READ,以防止输入/全清的误操作.系统变量:在系统中固定,属性有只读、只写、可读可写三种.系统常量:其值不变的常量,属性只读.用户宏程序用户宏程序14四、变量的显示与设定四、变量的显示与设定变量的显示变量的显示1).按下MDI面板上的功能键OFFSETSETTIN

6、G2).按几次 键,直至 出现用户宏程序用户宏程序153).按下 显示宏程序变量值用户宏程序用户宏程序164).按 、 显示局部和公共变量值用户宏程序用户宏程序17公共变量的设定1.找到显示公共变量的画面。2.将光标移至欲设定的变量号上。 键入变量号并按 键 或按换页键 、 和光标 键将光标移至欲设定的变量号上3.键入数据并按用户宏程序用户宏程序18五、变量的使用 将计算结果赋值给对应的变量号常数、变量、函数和运算符的组合表示方法#1= #2 + 100 ;#1= #2 + #18 SIN#5 ;用户宏程序用户宏程序19当在程序中定义变量值时,小数点可以省略#1 = 123;#1123.000

7、变量的引用 跟在地址后面的数值可用变量来代替。G01 X10.0 F#1;F把#1值作为F的指令值G01 X-#1+#2 F#1;把表达式放在括号中变量的赋值用户宏程序用户宏程序20 变量用于地址数据时,被引用变量的值根据地址的最小设定单位自动地四舍五入例: G01 X#1;当#1赋值为12.3456时,实际指令值为G01 X12.346;设定单位1/1000mm(IS-B) 改变引用变量的值的符号时,要把负号放在#的前面例: G00 X-#1;用户宏程序用户宏程序21 当引用未定义的变量时,变量及地址字都被忽略例: G00 X#1 Y#2;当#1=0,#2为空时 实际指令为G00 X0; 程

8、序号、顺序号和任选程序段跳转号不能使用变量.以下表述是错误的.O#1;N#3 Y200.0;/#2 G00 X10.;用户宏程序用户宏程序22参数6008#0为0时,最大值 , 最小值参数6008#0为1时,最大值 , 最小值超出范围出现PS0111#报警变量的范围角度单位为度角度单位为度( ),最小指令单位0.001用户宏程序用户宏程序23六、未定义变量当变量值未定义时,这样的变量成为变量变量#0 总是空变量,它不能写只能读未定义变量的引用当引用一个未定义的变量时,地址本身也被忽略当#1=时当#1=0时G90 X100 Y#1 G90 X100G90 X100 Y#1 G90 X100 Y0

9、用户宏程序用户宏程序24系统变量与常量可通过变量号指定,也可通过事先准备的系统变量(常量)名称来指定. 1.系统变量 它由(下划线)开始8个英文字母、数字构成.对轴和刀具补偿,作为名称的标号,可用n(n为整数),n可用即运算格式指定.七、系统变量与常量的名称用户宏程序用户宏程序25注意:当n指定整数以外的数值时,n小数则按四舍五入处理.2.系统常量 属性R例# -ABSIO1.4999999:假定此值为# -ABSIO1,也即#5001例# -ABSIO1.5000000:假定此值为# -ABSIO2,也即#5002常量常量名称内容#0、#3100#-EMPTY空值#3101 #-PI圆周率=

10、3.14159265.#3102 #-E自然对数e=2.71828182.用户宏程序用户宏程序26八、公共变量的名称由SETVN指定设定变量名称,即可读取或写入.指令格式如#VAR500,必须以#公共变量名称的格式指定.公共变量名称设定和指令时,可赋值#500#549,共50个,公共变量8个字符,开头必须是字母,断电不消失.例如:SETVN nAVR500,AVR501,AVR502,.;变量号n、n+1 、 n+2的变量名称:各字符串之间以 “, ”隔开.字符除了控制出、控制入、 、EOB用户宏程序用户宏程序27九、设定和指令用户宏程序用户宏程序28单元三、系统变量用户宏程序用户宏程序29

11、接口信号 刀具补偿 坐标系偏移(T) CNC报警 时钟和零件数 时间信息 自动运行控制 设定单元三、系统变量用户宏程序用户宏程序30 模态信息 位置信息 刀具长度补偿值 伺服位置、手轮中断、剩余运动量 工件原点偏移 系统变量读取CNC内部信息数据,如模态信息、坐标位置、刀具补偿等,系统变量对自动化程序和通用程序十分重要.系统变量及常量.n表示标号,属性R表示只读、W表示只写、R/W表示可读/可写.用户宏程序用户宏程序31一、接口信号 用户宏程序用户宏程序32用户宏程序用户宏程序33用户宏程序用户宏程序34用户宏程序用户宏程序35用户宏程序用户宏程序36用户宏程序用户宏程序37举例用户宏程序用户

12、宏程序38用户宏程序用户宏程序39二、刀具补偿量(M)用户宏程序用户宏程序40用户宏程序用户宏程序41刀具补偿(M)刀具补偿存储器A,参数8136#6 为0i-D 适用用户宏程序用户宏程序42刀补补偿存储器C,参数8136#6=0;6000#3=0 用户宏程序用户宏程序43刀补补偿存储器C刀补补偿存储器C,参数8136#6=0;6000#3=1用户宏程序用户宏程序44无刀具形状/磨损补偿器,参数8136#6=1 刀具补偿个数小于等于64个刀具补偿(T)用户宏程序用户宏程序45刀具形状/磨损补偿器,参数8136#6=0刀具补偿(T)用户宏程序用户宏程序46刀补C长度补偿参数8136#6=0, 补

13、偿个数小于等于200个,参数6000#3=0.长度补偿参数6000#3=1,补偿个数小于等于200个.长度补偿(F10/F11)用户宏程序用户宏程序47刀具半径补偿参数8136#6=0 ,补偿个数小于等于200个,参数6000#3=1 6004#5=1(F10/F11)半径补偿用户宏程序用户宏程序48补偿个数为400个(小于等于200个也可使用#2001#2800)参数6000#3=0用户宏程序用户宏程序49参数参数6000#3=1用户宏程序用户宏程序50长度补偿举例写入读取用户宏程序用户宏程序51范围:#20012964、#10001#19200(属性R/W)无刀具形状和磨损补偿器:8136

14、#6=1 ,补偿个数小于等于64个刀具补偿量(T)用户宏程序用户宏程序52用户宏程序用户宏程序53补偿个数200个,补偿个数小于等于64个,也可使用#2001#2499.用户宏程序用户宏程序54有刀具形状和磨损补偿器:8136#6=1,刀补个数小于等于64个磨损补偿用户宏程序用户宏程序55几何补偿用户宏程序用户宏程序56补偿个数200个,补偿个数小于等于64个,也可使用#2001#2964.用户宏程序用户宏程序57工件坐标系偏移工件坐标系偏移(T)三、工件坐标系偏移(T)可以利用系统变量 #2501 读取X 轴的工件坐标系偏移量的值,利用#2601 读取Z轴的工件坐标系偏移量的值。此外,将值代

15、入系统变量,可以改变X 轴和Z 轴的工件原点坐标系偏移量。#2501、#2601(属性:R/W)工件坐标系偏移量用户宏程序用户宏程序58工件坐标系偏移量读取写入用户宏程序用户宏程序59四、CNC报警参数6008#1=0表达式后为不超过26个字符的报警信息屏幕上显示报警号和报警信息,报警号为#3000的值加上3000#3000=1 (WRONG DATA INPUT);屏幕显示: 3001 WRONG DATA INPUT例:注释:用户宏程序用户宏程序60CNC报警有以下两种使用情况:参数MCA(No.6008#1)=0时#3000 = n (ALARM MESSAGE) ; ( n: 0200

16、 )将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”。用户宏程序用户宏程序61 时钟控制 例如:2009年1月20日 下午4时17分5秒 #3011=20090112

17、 #3012=161705五、时钟和零件数用户宏程序用户宏程序62 零件数 刀补存储器(M)#3980 主程序号用户宏程序用户宏程序63六、时间信息变量号单位功 能赋值#3001毫秒计时器。电源接通时复位为0。可以#3002小时计时器。循环启动灯亮时开始计时。即使在断电时也保存该值可以计时器地址 #3001、#3002 (属性:R/W)用户宏程序用户宏程序64用户宏程序用户宏程序65七、自动运行控制#3000#3008时钟 计时器用户宏程序用户宏程序66自动运行控制当电源接通时复位,#3003的值为0.当单程序段停止无效时,即使操作面板上的单程序段开关设为ON, 也不执行单程序段停止.当不指定

18、等待辅助功能(M 、S 和T 功能)完成信号时,在辅助功能完成之前程序执行到下列程序段,而且分配完成信号DEN不输出.注意不要在没有等待完成信号下指令下一个辅助指令.#3003(属性R/W)用户宏程序用户宏程序67可通过变量名称实现个别控制.例钻孔循环(增量编程)宏程序调用指令(相当于G81)用户宏程序用户宏程序68准确停止方式G09G61#3004(属性R/W)复位被清除用户宏程序用户宏程序69变量名称指令变量名称指令用户宏程序用户宏程序70变量名称指令用户宏程序用户宏程序71当电源接通时,#3003和#3004的值为0.当进给暂停无效时.1 当进给暂停按钮被按下时,机床在单段停止方式停止,

19、但是当用 变量#3003使单程序段方式无效时,单程序段停止不执行.2 当进给暂停按钮压下又松开时,进给暂停灯亮但是机床不停止, 程序继续执行,并且机床停在进给暂停有效的第一个程序段.当进给速度倍率无效时,总是100%的倍率,而不管机床操作面板上 的进给速度倍率开关的设置如何.#3003=1#3004=1时的运行情况用户宏程序用户宏程序72攻丝案例攻丝宏程序用户宏程序用户宏程序73八、SETTING值变量号功能赋值#3005设定数据可以#3005(属性:R/W)处理的数值为将二进制转换成十进制的数值用户宏程序用户宏程序74伴随信息同时停止 #3006(属性W)宏指令发出#3006=1(MESSA

20、GE),程序即可在一个程序段停止, 控制输入输出字符26个字符以内,并使用括弧括起来.用户宏程序用户宏程序75镜像状态#3007(属性:R)镜像的状态通过读取#3007,即可得知每个轴在该时刻的镜像(设定或DI)的状态轴与二进制显示时的各位(bit)对应:用户宏程序用户宏程序76变量号功能赋值#3007使用外部开关或SETTING 操作设置的各轴镜像状态可以通过输出信号,镜像检测信号读出不可用户宏程序用户宏程序779、模态信息1.#4001#4130 程序段前指定的模态信息2.#4201#4330 当前正在执行的程序段的模态信息3.#4401#4530 被中断型用户宏程序中断的程序段之前指定的

21、模态信息 用户宏程序用户宏程序78模态信息(M)用户宏程序用户宏程序79模态信息用户宏程序用户宏程序80模态信息(M)用户宏程序用户宏程序81模态信息(M)用户宏程序用户宏程序82模态信息(T)用户宏程序用户宏程序83用户宏程序用户宏程序84模态信息分类(M)分类:之前的程序段、执行中的程序段、被中断的程序段用户宏程序用户宏程序85用户宏程序用户宏程序86模态信息分类(T)分类:之前的程序段、执行中的程序段、被中断的程序段用户宏程序用户宏程序87用户宏程序用户宏程序88例如用户宏程序用户宏程序89十、位置信息用户宏程序用户宏程序90位置信息#5001#5065(属性:R)位置信息包括程序段的终

22、点位置、当前位置(机械坐标系、工件坐标系)、跳过信号位置用户宏程序用户宏程序91用户宏程序用户宏程序92位置信息例:读取X轴的位置信息 程序指令X轴坐标位置变量地址号用户宏程序用户宏程序93十一、刀具长度补偿(M)用户宏程序用户宏程序94刀具长度补偿(M)#5081#5085(属性:R)当前正在执行的程序段中的刀具长度补偿量用户宏程序用户宏程序95刀具长度补偿刀具长度补偿例:使用刀具长度补偿(M)用户宏程序用户宏程序96刀具位置偏置(T)用户宏程序用户宏程序97刀具位置偏置(T)#5081#5085(属性:R)用户宏程序用户宏程序98刀具位置偏置(T)#5081#5085,#5121#5125

23、(属性:R)用户宏程序用户宏程序99用户宏程序用户宏程序100刀补C 几何补偿磨损补偿用户宏程序用户宏程序101伺服位置偏差#5101#5105(属性:R)伺服位置偏差值十二、伺服位置手轮中断剩余移动用户宏程序用户宏程序102手轮中断 #5121#5125(属性R) 手轮中断值 (T)用户宏程序用户宏程序103剩余移动量 剩余移动量#5181#5185(属性R) 用户宏程序用户宏程序104十三、工件原点偏移(基本)M系列/T系列用户宏程序用户宏程序105工件原点偏移#5201#5325(属性:R/W)工件原点偏移用户宏程序用户宏程序106工件原点偏移(M/T)写入读出用户宏程序用户宏程序107

24、 (M)用户宏程序用户宏程序108用户宏程序用户宏程序109 (T)用户宏程序用户宏程序110用户宏程序用户宏程序111附加坐标系(M)用户宏程序用户宏程序112附加坐标系(M) #7001#7945 (属性属性R/W)附加坐标系附加坐标系 系统变量号系统变量号=7000+(坐标系号坐标系号-1) 20+轴号轴号用户宏程序用户宏程序113系统变量号=14000+(坐标系号-1) 20+轴号工件坐标系组数追加48组,设定为有效参数N0.8136#2=0有效#14001#14945 附加坐标系用户宏程序用户宏程序114用户宏程序用户宏程序115单元四、运算指令 表达式 运算命令的种类 运算顺序 关

25、于加工精度 宏语句与NC语句的区别 用户宏程序用户宏程序116运算指令右边的可以是常量、变量、函数或算符的组合表达式中使用不带小数点的常量一、表达式用户宏程序用户宏程序117种 类符 号格 式加法+#i = #j + #k 减法-#i = #j - #k乘法#i = #j#k除法/#i = #j / #k二、运算命令的种类加减乘除用户宏程序用户宏程序118种 类符 号格 式结果正弦SIN#i=SINc/a余弦COS#i=COSb/a正切TAN#i=TANc/b反正弦ASIN#i=ASINc/a反余弦ACOS#i=ACOSb/a反正切ATAN#i=ATANc/b注:三角函数的角度单位为度( )。

26、如:9030表示为90.5三角函数用户宏程序用户宏程序119反三角函数的取值范围函 数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反三角函数用户宏程序用户宏程序120种 类函数名格 式平方根SQRT#i = SQRT #k 自然对数LN#i = LN #k 指数函数幂EXPPOW #i =EXP #k #i=POW#i,#j #2=2;#1=SQRT#2;1.414#1其它函数用户宏

27、程序用户宏程序121种 类函数名格 式下取整FIX#i = FIX #k 上取整FUP#i = FUP #k 四舍五入ROUND#i =ROUND #k 绝对值ABS#i =ABS #k 下取整(FIX): 舍去小数点以下部分上取整(FUP): 将小数后部分进位到整数部分 ROUND函数:在算术运算或逻辑运算指令中使用时,在第1个小数位置 四舍五入 在NC语句地址中使用时,根据地址的最小设定单位将指 定值四舍五入数据处理函数用户宏程序用户宏程序122运算指令#2=1.2346时#2=-1.6794时#1= FIX #2 #1= FUP #2 #1=ROUND #2 #1=ABS #2 G01

28、XROUND#2;G01X1.235G1X-1.6791.02.0-1.0-2.01.01.2346-2.01.6794计算相应的变量值#1下取整(FIX):舍去小数点以下部分上取整(FUP):将小数后部分进位到整数部分用户宏程序用户宏程序123三、 运算顺序 函数 乘除运算( ,/,AND ) 加减运算(+, - , OR , XOR )#1=#2 + #3 SIN#4;用户宏程序用户宏程序124 可以利用 来改变运算顺序,可嵌套5次 可以使用函数名前面的两个字母来指定该函数。ROUNDRO FIXFI注意用户宏程序用户宏程序125四、关于加工精度参数6008#0=0 需要注意的是,当绝对值

29、被减掉时,不能将相对误差控 制在 低于10-15,原因在于用户宏程序变量只有10进制15位的控制精度.加减法的运算 EQNEGTLTGELE基本上与加减法运算相同,需要注意其误差.逻辑关系 例如: IF#1EQ#2 IFABS#1-#2LT0.1,必须评价此 时的误差,如果#1和#2的差在该误差的范围内,则可以认为其值相等.三角函数 在三角函数运算后进行乘法除法运算时需要引起注意.注意事项用户宏程序用户宏程序126FIX函数 FIX 函数也要同样注意其精度. N1#1=0.002; N2#2=#1*1000; N3#3=FIX#2; 此时#3不见得就成为2,为了预防此情况,应按照如下指定 N3

30、#3=FIX#2+0.001用户宏程序用户宏程序127用户宏程序用户宏程序128注意:误差还会来自使用6个条件表达式 例 IF#1EQ#2受#1和#2的误差影响,可能导致判断错误.因此, 如IFABS#1-#2LT0.001所示,求出两个变量之差,如果该差值不超过允许 值(例子中为0.001),则可以这两变量的值相等. 对一个数值进行只舍不入时,应十分小心 例#1=0.001 计算#2=#1*1000;时,#2的结果不正好是2,而是1.99999997.此时,如果指定 #3=FIX#2;变量#3的结果不正是2.0而是1.0.在这种情况下,进行误差修正 之后,对该值应进行只舍不入或四舍五入,使结

31、果大于预期的整数值. #3=FIX#2+0.001; #3=ROUND#2;用户宏程序用户宏程序129表达式括号的使用在表达式中使用的括号为方括号 , 注意圆括号( )用于程序注释.除法运算中分母为”0”时,则会出现(PS0112#报警).当指定超出控制轴数时,则会出现(PS0115#报警变量号超限).括号的嵌套超过5位,则会出现(PS0118#报警).自然对数,当逆对数(#j)小于等于0时,则会出现(PS0119#报警).指数函数,运算结果溢出时,则会出现(PS0119#报警).用户宏程序用户宏程序130五、用户宏程序的特点 含运算指令(=)的程序段含控制指令(如GOTODOEND)的程序段

32、含宏指令(由G65G66G67G代码或M代码的宏指令的程序段。除宏语句以外的程序段称为NC语句.即使在单程序段方式,机床也不会停止,但是,当参数SBM(N0.6000#5)设为1时,在单程序运行方式中机床停止。在刀具半径补偿方式中, 宏程序语句段不作为不移动程序段处理。用户宏程序用户宏程序131 含有子程序调用指令(例如用M98 或其它M代码或用T代码调用子程序)但没有除O, N 或L 地址之外的其它地址指令的NC 语句其性质与宏程序相同 不包含除O、N、P 或L 以外的指令地址的程序段,其性质与宏程序语句相同与宏程序语句有相同性质的NC语句用户宏程序用户宏程序132单元五、控制指令l无条件转

33、移(GOTO 语句)l条件转移(IF 语句)l条件表达式l循环(WHILE 语句)l限制 用户宏程序用户宏程序133改变流程1 在程序中,可以使用GOTO语句和IF语句等来改变程序的流程.2 转移和重复有下列三种用户宏程序用户宏程序134一、无条件转移(GOTO 语句) GOTO n; n:程序段号(1- 99999)该语句使程序无条件地转移到程序段n去。例如n也可用变量或表达式来代替 例如GOTO #10;当顺序号在199999范围以外,就会出现(PS1128#报警)警告:不可在一个程序中指定多个相同顺序号的程序段,若是这样,利用GOTO语句转移时,转移目的地不确定,这样十分危险.GOTO

34、10;用户宏程序用户宏程序135 顺序号存储型GOTO在执行控制指令GOTO语句时,对于以前执行并存储的顺序号,高速地进行顺序号检索,以前执行并存储的顺序号,指就所执行的顺序号在相同程序内没有重复的顺序号以及子程序调用的顺序号,CNC对此进行存储用户宏程序用户宏程序136存储的顺序号在下列情况下将被取消 通电、复位、程序的登录和编辑(含后台及MDI的程序编辑)时, 请勿在一个程序中指定多个相同的程序段号。这样十分危险。用户宏程序用户宏程序137 IF GOTO n; 若满足,则下步操作转移到程序段号为n的程序段去 若不满足,执行下个程序段。二、 条件转移(IF语句) IF THEN ; 若满足

35、,执行THEN后的宏程序语句,只执行一个语句。例:IF#1 EQ #2 THEN #3=0;用户宏程序用户宏程序138条件表达式条件不满足时执行的操作IFGOTO用户宏程序用户宏程序139用户宏程序用户宏程序140表 达 式含 义英 文#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 也可用来代替。三、条件表达式用户宏程序用户宏程序141程序例

36、子用户宏程序用户宏程序142四、循环(WHILE语句) WHILE DO m; (m=1,2,3)条件成立时执行的程序 END m; DO m和 END m必须成对使用,并以 其中的m作为识别号相互识别。 m的范围为1,2,3。可以根据需要多次使用。用户宏程序用户宏程序143用户宏程序用户宏程序144识别号( 1,2, 3)可多次使用WHILE DO 1;程序END1;WHILE DO 1;程序END1;当重复的循环相互交叉时,会发出PS0124#报警用户宏程序用户宏程序145DO的区域不能交叉下列表达是错误的WHILE DO 1;程序WHILE DO 2;END1;程序END2;DO 一定要

37、在END之前规定下列表达是错误的END1;程序WHILE DO 1;用户宏程序用户宏程序146 DO 循环可以嵌套3级WHILE DO 1; WHILE DO 2; WHILE DO 3; 程序 END3; END2; END1;用户宏程序用户宏程序147可以从DO区域的内部向外部转移,例如WHILE DO 1;程序IF GOTO n;END1;程序Nn ;不可以从DO区域的外部向内部转移,例如下列表达是错误的IF GOTO n; WHILE DO 1;程序Nn ;END1;用户宏程序用户宏程序148常用格式 (当前值)=(初值); WHILE (当前值)比较(目标值) DO m; (执行循环

38、操作); (当前值)=(当前值)1; ENDm;用户宏程序用户宏程序149五、控制语句的使用限制无限循环:当指定DOm而省略WHILE语句时,程序则在DO到END之间 无限循环。处理时间:当要转移到GOTO语句中指定的顺序号时,程序先检索顺序号,反向处理数据比正向要用较长的时间,为了缩短处理时间,作为重复指令,请使用WHILE语句。未定义的变量:在使用EQ、NE的条件表达式中,空值和0(零)有不 同的效果,在别的条件表达式中,空值被看成0。用户宏程序用户宏程序150程序例子求110之和用户宏程序用户宏程序151G00 G91 X100.0;Y100.0;要求:对以上动作重复执行三次。设#1为动

39、作执行次数,初始值为零。#1=0; G00 G91 X100.0; Y100.0;#1=1; G00 G91 X100.0; Y100.0;#1=2; 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;计数器累加重复执行的动作计数器复位用户宏程序用户宏程序152单元六、程序案例粗铣圆内腔粗车外圆自动设定坐标系用户宏程序用户宏程序153一、粗铣圆内腔#5:圆半径的增量#18:最终圆弧半径O9999; #5= 10.0; #18= 45.0; #1= 0; #2= 0;

40、WHILE#1 LT #18 DO 1; #1= #1+ #5; IF#1 LE #18 GOTO1; #1= #18; G01 G91 Y#1- #2 F300; G02 J-#1; #2= #1; END1;M30;N1当次圆弧半径当次圆弧半径前次圆弧半径前次圆弧半径用户宏程序用户宏程序154 程序案例O0099G00G90G54X0Y0G43Z5.H1S1500M3G1Z-5F300#5=10#18=45#1=0#2=0WHILE#1LT#18DO1#1=#1+#5IF#1LT#18GOTO1#1=#18N1G1G91Y#1-#2F300G2J-#1#2=#1END1G00Z100M5M

41、30用户宏程序用户宏程序155二、粗车外圆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方向切削量N1用户宏程序用户宏程序156 程序案例O0202T0101

42、G00X50.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.Z0M5M30用户宏程序用户宏程序157 三、自动设定坐标系用户宏程序用户宏程序158O9999 IF#4111 EQ 0GOTO 9; #1= #5043; G00 G90 G43 Z50.0; M00; #11000+#4111= #5043; G00 G49 Z#1; M30

43、;N9 #3000=9(OFFSET # ERROR);操作步骤操作步骤#2200+#4111手动刀具长度测量用户宏程序用户宏程序159用户宏程序用户宏程序160用户宏程序用户宏程序161单元七、用户宏程序调用非模态调用G65两种形式的自变量赋值规定系统变量的存储模态调用G66G、M代码调用宏程序M、T代码调用子程序使用M代码计算刀具使用时间利用特定代码的子程序用户宏程序用户宏程序162一、宏程序调用限制用户宏程序用户宏程序163O9999;#21=90.0;#22=120.0;N1 G01 G91 X#21 F300;N2 Y#22;N3 X- #21;N4 Y- #22;M30;简单的四边

44、形铣削用户宏程序用户宏程序164简单的四边形铣削O0001;M98 P9999;M30;O9999;#21=90.0;#22=120.0;N1 G01 G91 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;UV用户宏程序用户宏程序

45、165 G65 Pp Ll 自变量赋值;要调用的程序号重复次数 用G65指令,把由P指令的宏程序体调用L次 指定的重复次数的范围为1999999999,L的缺省值为1 按照自变量赋值的规定,将自变量的实际数值调到相应的程序体中 宏程序调用有2类:宏程序调用和子程序调用,MDI方式也有效二、非模态调用G65用户宏程序用户宏程序166O0001; 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)用户宏

46、程序用户宏程序167 三、自变量赋值规定自变量赋值自变量赋值用户宏程序用户宏程序168自变量赋值地址变量号地址变量号地址变量号A#1I#4T#20B#2J#5U#21C#3K#6V#22D#7M#13W#23E#8Q#17X#24F#9R#18Y#25H#11S#19Z#26用户宏程序用户宏程序169 对字母A-Z后加数值来赋值,但G,L,N,O,P除外 I,J,K须按字母顺序指定用户宏程序用户宏程序170G65 P9003 X30. Y45. Z-3. F300;#9= 300;#24= 30.0;#25= 45.0;#26= -3.0;用户宏程序用户宏程序171自变量赋值地址变量号地址变量

47、号地址变量号地址变量号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的代表自变量赋值的顺序,在实际编程中不写用户宏程序用户宏程序172 限制用户宏程序用户宏程序173G65 A1.0 B2.0 I-3.0 I4.0 D5.0 P1000;CNC 内部自动识别自变量赋值和自变量赋值。如果自变量赋值和自变量赋值混合

48、指定的话, 后指定的自变量类型有效自变量指定的混合注意:MDI方式运行程序同样可以调用程序用户宏程序用户宏程序174四、系统变量的存储O0001;N10 G00 G90 X100.0 Y50.0;N11 G65 P9999 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#3

49、2;M99;用户宏程序用户宏程序175例:倾斜的四边形加工Yx#21(U)#22(V)#1(A)aaCOSa SIN O0001;G92 X0 Y0;G00 G90 X100.0 Y50.0;G65 P9999 U100.0 V50.0 A30.0;M30;用户宏程序用户宏程序176 O9999; #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#

50、12 Y#13; N3 X-#10 Y-#11; N4 X-#12 Y-#13; G#30 G#31 F#32; M99;用户宏程序用户宏程序177 例:深孔钻削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;N1用户宏程序

51、用户宏程序178例:内圆铣削XYRO9999;#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

52、:刀具半径补偿号(#7)F:进给速度(#9)用户宏程序用户宏程序179用户宏程序用户宏程序180例:圆周上等距钻孔BBBX:圆心坐标(#24)Y:圆心坐标(#25)Z:孔的深度(#26)R:钻孔初始高度坐标(#18)U:圆弧半径(#21)A:起始角度(#1)B:角度增量值(#2)H:孔的个数(#11)F:进给速度(#9)用户宏程序用户宏程序181调用格式用户宏程序用户宏程序182调用的宏程序O0002G0G90G54X0Y0G65P9100X100Y50R30Z-50F500I100A0B45H5M30用户宏程序用户宏程序183用户宏程序用户宏程序184例:程序案例用户宏程序用户宏程序185O

53、0001;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;WHILE #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;用户宏程序用户宏程序186O9999; #30= #4001; #31= #4003; #32= #4109; #1= 300;

54、#2= 100; G28 G91 Z0; #4= #5003;例:自动刀具长度测量G00 G90 G53 X200.0 Y150.0;G91 G43 Z- #1 H#11;#5= #5003 - #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);用户宏程序用户宏程序187O9500;#1= #4001;#3= #4003;#9= #401

55、9;G28 G91 Z0;G28 X0 Y0;G53 G90 X100.0 Y50.0;G31 G91 Z-200.0 F200;#5= #5063; #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;用户宏程序用户宏程序188例:车床钻孔宏程序调用宏程序O0002T0101;G98G0X0Z102S1000M3G65P9100Z50K20F150G0X100Z200M5M30用户宏程序用户宏程序189用户宏程序用户宏程序190五、模

56、态调用G66G66 Pp Ll 自变量赋值; ; ;G67;轴每移动一次,调用一次用户宏程序p:要调用的宏程序号l:重复次数(默认值为1)G67:取消模态调用指令用户宏程序用户宏程序191O0001;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;程序案例用户宏程序用户宏程序192限制用户宏程序用户宏程序193用户宏程序用户宏程序194用户宏程序用户宏程序195例:车床切槽使用G66调用宏指令的程序宏指令(被调用的程序)用户宏程序用户宏程序1

57、96G指令调用六、G、M指令进行宏程序方式调用G65 P9010 X100. Y20. R3. Z-20. F300;G81 X100. Y20. R3. Z-20. F300; 将宏程序调用指令G65 P901用G 来代替 宏程序号901与G代码之间的对应关系由参数指定 在被调用的宏程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作为普通的G、M代码处理变量赋值用户宏程序用户宏程序197宏程序调用指令钻孔循环主程序宏程序如果设定了负的G代码,成为模态调用(相当于G66)用户不必改变加工程序即可调用用户宏程序创建的固定程序与简单调用一样,两类自变量指定:第一类自变量指定和第二类自变量

58、指定,类型根据所用地址自动识别用户宏程序用户宏程序198程序号参数号O90106050O90116051O90126052O90136053O90146054O90156055O90166056O90176057O90186058O90196059将参数No.6050设为81G代码调用宏程序时程序和参数对应关系用户宏程序用户宏程序199用户宏程序用户宏程序200利用G代码进行的宏程序调用(多个指定) 用户宏程序用户宏程序201用户宏程序用户宏程序202用M指令调用用户宏程序G65 P9020 A1.0 B2.0;M50 A1.0 B2.0; 将宏程序调用指令G65 P902用M 来代替 宏程序

59、号902与M代码之间的对应关系由参数指定 在被调用的宏程序中不能再使用M、G代码调用宏程序,程序体中的M、G代码作为普通的M、G代码处理变量赋值用户宏程序用户宏程序203利用M代码调用宏程序注释:调用方法与G65调用相同。自变量指定方法与简单调用一样,两类自变量指定方法:第一类自 变量指定法和第二类自变量指定法的类型根据所用地址自动识别。用户宏程序用户宏程序204限制用来调用宏指令的M代码必须指定在程序的开头。由M代码调用的程序中调用其他程序时可以使用G65、G66、M98指令。参数6008#6=1时,可由M代码调用的程序中执行利用G代码的调用。用户宏程序用户宏程序205程序号参数号O9020

60、6080O90216081O90226082O90236083O90246084O90256085O90266086O90276087O90286088O90296089将参数No.6080设为50M代码调用宏程序时用户宏程序用户宏程序206利用M代码调用宏程序用户宏程序用户宏程序207用户宏程序用户宏程序208用G代码模态调用宏程序用户宏程序用户宏程序209M指令调用七、M、T指令进行子程序方式调用M98 P9001;M03; 将子程序调用指令M98 P900用M 来代替 宏程序号900与M代码之间的对应关系由参数指定 在被调用的子程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作

温馨提示

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

最新文档

评论

0/150

提交评论