BEIJING-FANUC用户宏程序1一、变量的使用二、系统变量三、运算命令四、循环语句五、程序案例六、宏程序的调用七、宏语句的处理八、中断宏程序九、格式数据输入主要内容:BEIJING-FANUC用户宏程序2单元一、概述BEIJING-FANUC用户宏程序3主程序宏程序一、用户宏程序用途BEIJING-FANUC用户宏程序4形状类似但大小不同(圆、方及其它)其它自动化功能(刀具长度测量)换刀功能特殊形状(椭圆、球等)大小相同但位置不同(组孔、阵列等)二、宏程序的适用范围加工程序编程生产管理PMC强电控制BEIJING-FANUC用户宏程序5宏程序子程序使用变量可使用变量不可以使用变量调用方式G65P_L_自变量赋值;M98P__;程序结束M99;M99;嵌套4重0i-D:5重★4重三、宏程序与子程序的比较注释:★为0i-D、30i系列的新增功能BEIJING-FANUC用户宏程序6四、宏程序相关的参数#5(SBM)用户宏程序语句中,0:单程序段不停止1:单程序段停止#6(CCV)复位(Reset)后,公共变量#100~#1990:清空1:不清空#7(CLV)复位(Reset)后,局部变量#1~#330:清空1:不清空0i-D没有6001#7设置BEIJING-FANUC用户宏程序7#4(NE9)编辑程序号为9000~9999的程序0:不禁止1:禁止#6(NPE)程序登录时,对含有M02,M99,M30的程序段0:视为登录结束1:不视为登录结束NE8五、宏程序的保护1、参数设置BEIJING-FANUC用户宏程序83210密码锁3210密码锁设置时须谨慎,若使用G10可编程数据输入时,则出现PS0231#报警3211密码钥匙设定值后不显示,断电后为0参数6001#5设为1T代码调用宏程序2、密码保护BEIJING-FANUC用户宏程序9•变量的表示•变量的种类•变量的显示与设定•变量的使用•未定义变量•公共变量名称★单元二、变量BEIJING-FANUC用户宏程序10第二章变量BEIJING-FANUC用户宏程序11一、变量的表示例:#10,#1005表达式也可以用于指定变量号,但需封闭在括号内例:#[#2-1],#[#500/2]可在程序段结尾加注释说明变量内容,但需用括号封闭例:#2=#3-1(TOOLNUMBER)变量符号(#)+变量号变量的表示方法BEIJING-FANUC用户宏程序12变量号变量类型用途#0、#3100★空变量总为空,不能写,只能读#1~#33局部变量只能用在当前用户宏程序中存储变量断电/复位后数据初始化#100~#199#500~#999公共变量在不同的程序中意义相同,各用户宏程序公用.断电后:#100~#199初始化为空,500~#999数据保存#1000~系统变量可用于读写CNC运行时的各种数据二、变量的种类BEIJING-FANUC用户宏程序13三、局部变量、公共变量、系统变量的用途和特性•局部变量:#1~#33,初始状态为空,自变量输入可用程序或MDI方式输入★,可以自由使用,属性READ/WRTIE.•公共变量:#100~#199、#500~#999,共600个,在主程序或调用的各子程序以及各个宏之间的通用.公共变量的用途没有在系统中确定,用户可自由使用.#100~#199断电不保护,#500~#999断电保护,属性READ/WRTIE.•公共变量的写保护:参数6031~6032★对#500~#999进行保护,属性为READ,以防止输入/全清的误操作.•系统变量:在系统中固定,属性有只读、只写、可读可写三种.•系统常量:其值不变的常量,属性只读.BEIJING-FANUC用户宏程序14四、变量的显示与设定变量的显示1).按下MDI面板上的功能键OFFSETSETTING2).按几次键,直至出现BEIJING-FANUC用户宏程序153).按下显示宏程序变量值BEIJING-FANUC用户宏程序164).按、显示局部和公共变量值BEIJING-FANUC用户宏程序17公共变量的设定1.找到显示公共变量的画面。2.将光标移至欲设定的变量号上。•键入变量号并按键•或按换页键、和光标键将光标移至欲设定的变量号上3.键入数据并按BEIJING-FANUC用户宏程序18五、变量的使用#i=表达式将计算结果赋值给对应的变量号常数、变量、函数和运算符的组合表示方法#1=#2+100;#1=#2+#18SIN[#5];BEIJING-FANUC用户宏程序19•当在程序中定义变量值时,小数点可以省略#1=123;#1123.000变量的引用•跟在地址后面的数值可用变量来代替。G01X10.0F#1;F把#1值作为F的指令值G01X-[#1+#2]F#1;把表达式放在括号中变量的赋值BEIJING-FANUC用户宏程序20•变量用于地址数据时,被引用变量的值根据地址的最小设定单位自动地四舍五入例:G01X#1;当#1赋值为12.3456时,实际指令值为G01X12.346;设定单位1/1000mm(IS-B)•改变引用变量的值的符号时,要把负号放在#的前面例:G00X-#1;BEIJING-FANUC用户宏程序21•当引用未定义的变量时,变量及地址字都被忽略例:G00X#1Y#2;当#1=0,#2为空时实际指令为G00X0;•程序号、顺序号和任选程序段跳转号不能使用变量.以下表述是错误的.O#1;N#3Y200.0;/#2G00X10.;BEIJING-FANUC用户宏程序22•参数6008#0为0时,最大值±,最小值±•参数6008#0为1时,最大值±,最小值±•超出范围出现PS0111#报警变量的范围角度单位为度角度单位为度(°),最小指令单位0.001˚BEIJING-FANUC用户宏程序23六、未定义变量当变量值未定义时,这样的变量成为空变量•变量#0总是空变量,它不能写只能读未定义变量的引用当引用一个未定义的变量时,地址本身也被忽略当#1=空时当#1=0时G90X100Y#1↓G90X100G90X100Y#1↓G90X100Y0BEIJING-FANUC用户宏程序24•系统变量与常量可通过变量号指定,也可通过事先准备的系统变量(常量)名称来指定.1.系统变量它由_(下划线)开始8个英文字母、数字构成.对轴和刀具补偿,作为名称的标号,可用[n](n为整数),n可用表达式即运算格式指定.七、系统变量与常量的名称★BEIJING-FANUC用户宏程序25注意:当n指定整数以外的数值时,n小数则按四舍五入处理.2.系统常量属性R例[#-ABSIO[1.4999999]]:假定此值为[#-ABSIO[1]],也即#5001例[#-ABSIO[1.5000000]]:假定此值为[#-ABSIO[2]],也即#5002常量常量名称内容#0、#3100★[#-EMPTY]空值#3101★[#-PI]圆周率π=3.14159265……..#3102★[#-E]自然对数e=2.71828182…….BEIJING-FANUC用户宏程序26八、公共变量的名称★•由SETVN指定设定变量名称,即可读取或写入.指令格式如[#VAR500],必须以[#公共变量名称]的格式指定.•公共变量名称设定和指令时,可赋值#500~#549,共50个,公共变量8个字符,开头必须是字母,断电不消失.•例如:SETVNn[AVR500,AVR501,AVR502,…..];变量号n、n+1、n+2的变量名称:各字符串之间以“,”隔开.字符除了控制出、控制入、[、]、EOBBEIJING-FANUC用户宏程序27九、设定和指令BEIJING-FANUC用户宏程序28单元三、系统变量BEIJING-FANUC用户宏程序29•接口信号•刀具补偿•坐标系偏移(T)•CNC报警•时钟和零件数•时间信息•自动运行控制•设定单元三、系统变量BEIJING-FANUC用户宏程序30•模态信息•位置信息•刀具长度补偿值•伺服位置、手轮中断、剩余运动量•工件原点偏移系统变量读取CNC内部信息数据,如模态信息、坐标位置、刀具补偿等,系统变量对自动化程序和通用程序十分重要.系统变量及常量.n表示标号★,属性R表示只读、W表示只写、R/W表示可读/可写.BEIJING-FANUC用户宏程序31一、接口信号...BEIJING-FANUC用户宏程序32BEIJING-FANUC用户宏程序33BEIJING-FANUC用户宏程序34...BEIJING-FANUC用户宏程序35BEIJING-FANUC用户宏程序36BEIJING-FANUC用户宏程序37举例BEIJING-FANUC用户宏程序38BEIJING-FANUC用户宏程序391.变量范围:#2001~#2800、#10001~#13400(属性R/W)2.刀补A:参数8136#6为1★3.刀补小于等于200个,变量使用范围#2001~#2200二、刀具补偿量(M)BEIJING-FANUC用户宏程序40•4.刀补400个:补偿个数为400,#10001~#10400BEIJING-FANUC用户宏程序41刀具补偿(M)•刀具补偿存储器A,参数8136#6★★为0i-D适用BEIJING-FANUC用户宏程序42•刀补补偿存储器C,参数8136#6=0;6000#3=0★BEIJING-FANUC用户宏程序43刀补补偿存储器C•刀补补偿存储器C,参数8136#6=0;6000#3=1★BEIJING-FANUC用户宏程序44无刀具形状/磨损补偿器,参数8136#6=1★刀具补偿个数小于等于64个刀具补偿(T)BEIJING-FANUC用户宏程序45•刀具形状/磨损补偿器,参数8136#6=0★刀具补偿(T)BEIJING-FANUC用户宏程序46刀补C长度补偿•参数8136#6=0,★补偿个数小于等于200个,参数6000#3=0.长度补偿•参数6000#3=1,补偿个数小于等于200个.长度补偿(F10/F11)BEIJING-FANUC用户宏程序47刀具半径补偿•参数8136#6=0★,补偿个数小于等于200个,参数6000#3=16004#5=1(F10/F11)半径补偿BEIJING-FANUC用户宏程序48补偿个数为400个(小于等于200个也可使用#2001~#2800)•参数6000#3=0BEIJING-FANUC用户宏程序49•参数6000#3=1BEIJING-FANUC用户宏程序50长度补偿举例写入读取BEIJING-FANUC用户宏程序51•范围:#2001~2964、#10001~#19200(属性R/W)•无刀具形状和磨损补偿器:8136#6=1★,补偿个数小于等于64个刀具补偿量(T)BEIJING-FANUC用户宏程序52BEIJING-FANUC用户宏程序53•补偿个数200个,补偿个数小于等于64个,也可使用#2001~#2499.BEIJING-FANUC用户宏程序54•有刀具形状和磨损补偿器:8136#6=1★,刀补个数小于等于64个•磨损补偿BEIJING-FANUC用户宏程序55•几何补偿BEIJING-FANUC用户宏程序56•补偿个数200个,补偿个数小于等于64个,也可使用#2001~#2964.BEIJING-FANUC用户宏程序57工件坐标系偏移(T)三、工件坐标系偏移(T)可以利用系统变量#2501读取X轴的工件坐标系偏移量的值,利用#2601读取Z轴的工件坐标系偏移量的值。此外,将值代入系统变量,可以改变X轴和Z轴的工件原点坐标系偏移量。#2501、#2601(属性:R/W)工件坐标系偏移量BEIJING-FANUC用户宏程序58工件坐标系偏移量读取写入BEIJING-FANUC用户宏程序59四、CNC报警•参数6008#1=0★•表达式后为不超过26个字符的报警信息•屏幕上显示报警号和报警信息,报警号为#3000的值加上3000#3000=1(WRONGDATAINPUT);屏幕显示:3001