1、用户宏程序编程用户宏程序编程一、宏程序应用概述一、宏程序应用概述(一)宏程序与普通程序的对比(一)宏程序与普通程序的对比 一般意义上的数控编程(普通程序),是使用数控系统给定一般意义上的数控编程(普通程序),是使用数控系统给定的指令代码进行编程。每个代码的功能固定,只要按规定使用即的指令代码进行编程。每个代码的功能固定,只要按规定使用即可。为了扩展编程功能,可。为了扩展编程功能,FANUCFANUC数控系统厂家在一般指令代码功数控系统厂家在一般指令代码功能基础上,又提供了用户宏程序功能,简称宏程序。区别如下:能基础上,又提供了用户宏程序功能,简称宏程序。区别如下: 普通程序使用常量,常量之间不
2、能运算,程序只能顺序执行普通程序使用常量,常量之间不能运算,程序只能顺序执行 不能跳转,程序没有通用性;不能跳转,程序没有通用性; 宏程序可以使用变量(可以赋值),变量之间可以运算,程宏程序可以使用变量(可以赋值),变量之间可以运算,程 序运行可以跳转,程序具有通用性。序运行可以跳转,程序具有通用性。(二)宏程序与(二)宏程序与CAD/CAMCAD/CAM软件生成的程序对比软件生成的程序对比 宏程序短小精悍,任何数控加工只要能够用宏程序完整表达,宏程序短小精悍,任何数控加工只要能够用宏程序完整表达,即使再复杂,其程序也比较精炼篇幅小,优化后的宏程序段数很即使再复杂,其程序也比较精炼篇幅小,优化
3、后的宏程序段数很少超过少超过6060行,这对于一般数控装置的程序存储空间为行,这对于一般数控装置的程序存储空间为128KB128KB、256KB256KB标准配置来说,都能容纳下任何复杂的宏程序。不需要考标准配置来说,都能容纳下任何复杂的宏程序。不需要考虑因程序较长进行在线加工时,数控系统与外部电脑的传输率不虑因程序较长进行在线加工时,数控系统与外部电脑的传输率不够问题。够问题。 CAD/CAMCAD/CAM软件生成的程序通常都比较大,因为其生成刀具轨迹软件生成的程序通常都比较大,因为其生成刀具轨迹的原理采用直线(微线段)逼近曲线曲面,所以不但程序长,而的原理采用直线(微线段)逼近曲线曲面,所
4、以不但程序长,而且存在逼近误差。且存在逼近误差。(三)用户宏程序与一般子程序对比(三)用户宏程序与一般子程序对比 子程序可用于同一操作的重复执行,用户宏程序具子程序可用于同一操作的重复执行,用户宏程序具有此功能,有此功能, 还允许使用变量、算术和逻辑操作、条件转移等,也可以扩展还允许使用变量、算术和逻辑操作、条件转移等,也可以扩展一般程序,如凹槽循环和用户定义的循环。加工程序可以调用带一般程序,如凹槽循环和用户定义的循环。加工程序可以调用带有简单命令的用户宏程序。有简单命令的用户宏程序。FANUC FANUC 数控系统具有用户宏程序功能数控系统具有用户宏程序功能。 定义:定义:用户宏程序是具有
5、某种功能的一组命令,象子程序一用户宏程序是具有某种功能的一组命令,象子程序一样存储在内存中。存储的这组命令也称为用户宏程序主体(简称样存储在内存中。存储的这组命令也称为用户宏程序主体(简称宏程序),用户宏程序可以被宏程序),用户宏程序可以被“调用宏程序的指令调用宏程序的指令” ” 调用调用。 用户宏程序见图用户宏程序见图11。调用宏程序调用宏程序 指令指令具有某种具有某种功能的一功能的一组命令组命令 O0001;0001; G65P9010R50.0L2;G65P9010R50.0L2; M30;M30;O9010;9010;#1=#18/2;#1=#18/2;G01X#1 Z#1 F0.3;
6、G01X#1 Z#1 F0.3;G02X#1 Z-#1 R#1;G02X#1 Z-#1 R#1;M99M99;加工程序用户宏程序 图图11 用户宏程序用户宏程序宏程序的最大特点:宏程序的最大特点: 在宏程序中,除了使用通常的在宏程序中,除了使用通常的CNC指令外,还可以使用带变量指令外,还可以使用带变量 的的CNC指令,进行变量运算,宏指令可以给变量设定实际值。指令,进行变量运算,宏指令可以给变量设定实际值。根据宏程序功能范围的不同分为:根据宏程序功能范围的不同分为: 用户宏程序用户宏程序A 用户宏程序用户宏程序B B 现代现代FANUC系统已不分系统已不分“用户宏程序用户宏程序A”和和“用户
7、宏程序用户宏程序B”, 取消了宏程序取消了宏程序A,统称为用户宏程序,统称为用户宏程序。二、基础理论二、基础理论2.1 变量概念变量概念 普通加工程序用数值指定普通加工程序用数值指定G代码和位移距离代码和位移距离 例如:例如:G01和和X100.0。 使用宏程序时,数值可以直接指定,而且可用变量指定代使用宏程序时,数值可以直接指定,而且可用变量指定代 码和位移等,变量值可以用程序或用码和位移等,变量值可以用程序或用MDI方式设定或修改。方式设定或修改。 例如:例如: #1= #2+100; G01 X#1 F500; 2.2 2.2 变量的表示变量的表示 一般计算机程序语言允许使用一般计算机程
8、序语言允许使用变量名,用户宏程序则不行。变量名,用户宏程序则不行。用户宏程序的变量需用变量符号用户宏程序的变量需用变量符号“#”和其后的变量号指定,变量和其后的变量号指定,变量号可以直接用数值或表达式表示,其格式为:号可以直接用数值或表达式表示,其格式为: i i(i =1i =1、2 2、3 3、 )。例如,例如,#12,102,1006等。用表达式指定变量号时,表达式等。用表达式指定变量号时,表达式必须放在括号内。例如,必须放在括号内。例如,#1+#2-12。 变量可以代替宏程序中地址后面的数值,变量的值可由调用变量可以代替宏程序中地址后面的数值,变量的值可由调用用户宏程序的指令给宏程序主
9、体赋值,或者在执行宏程序主体时用户宏程序的指令给宏程序主体赋值,或者在执行宏程序主体时由得出的计算值决定。使用复数个变量时,可由变量号决定由得出的计算值决定。使用复数个变量时,可由变量号决定。2.2.1 2.2.1 变量的引用变量的引用 1.1.变量可被引用为代替宏程序中地址后面的数值变量可被引用为代替宏程序中地址后面的数值 如如 F F103103,表示进给速度由变量,表示进给速度由变量103103的值指定,当的值指定,当103=1.5103=1.5时,与时,与F1.5F1.5指令的相同。又如,指令的相同。又如,G G130130,当,当130=3130=3时,时,与与G03G03指令相同;
10、指令相同; 2. 2.变量可被引用为指定位移变量可被引用为指定位移 如如G00Z-G00Z-100100,表示刀具在,表示刀具在-Z-Z方向快速定位到变量方向快速定位到变量100100指指定的位置,当定的位置,当100=250100=250时,与时,与G00Z-250.0G00Z-250.0指令的相同;指令的相同; 此外,用变量此外,用变量j j代替变量号码代替变量号码i i时,不能用时,不能用j j表示,而表示,而用用9j9j。当。当110=120110=120(110110为为j j, 120120为变量号码),为变量号码),120=500120=500时,则为时,则为9110=50091
11、10=500。地址。地址O,N不能引用变量,即不能不能引用变量,即不能使用使用O100100,N N120120。变量值可以显示,可以用。变量值可以显示,可以用MDIMDI键设定。键设定。 3.3.自变量赋值(指定)自变量赋值(指定) 在宏程序中,给使用的变量所赋予的实际值叫做自变量。自在宏程序中,给使用的变量所赋予的实际值叫做自变量。自变量由地址和后面的数字指定。除变量由地址和后面的数字指定。除O之外的地址均可指定自变量,之外的地址均可指定自变量,自变量的地址和变量号必须一一对应。例如自变量的地址自变量的地址和变量号必须一一对应。例如自变量的地址I I、J J、K K与宏程序内的变量与宏程序
12、内的变量80048004、80058005、80068006一一对应一一对应 赋值:赋值:直接指定、调用宏程序指令传送、表达式指定直接指定、调用宏程序指令传送、表达式指定 此外自变量还有标志号,如指定自变量标志为此外自变量还有标志号,如指定自变量标志为1 1,否则为,否则为0 0。 自变量被指定,变为指定值,否则变为下述情况:自变量被指定,变为指定值,否则变为下述情况: 参照参照CNCCNC指令,指定的自变量地址无效。指令,指定的自变量地址无效。 参照运算指令和转移指令。参照运算指令和转移指令。2.2.2 2.2.2 变量的类型变量的类型 按变量号、使用范围和功能,变量分为四种类型,见表按变量
13、号、使用范围和功能,变量分为四种类型,见表1 1。表表1 1 变量类型变量类型变量号变量号变量类型变量类型功能功能 #0#0总是空总是空(空变量)(空变量)这个变量总是空,没有值赋予该变量这个变量总是空,没有值赋予该变量。#1#1#33#33局部变量局部变量局部变量只能在宏程序中存储数据,例如:局部变量只能在宏程序中存储数据,例如:运算结果。断电时,局部变量清除(初始化运算结果。断电时,局部变量清除(初始化为空)。可以在程序中对其赋值。为空)。可以在程序中对其赋值。#100#100#149#149(#199#199)#500#500#531#531(#999#999) 公共变量公共变量公共变量
14、在不同的宏程序中的意义相同,公共变量在不同的宏程序中的意义相同,即公共变量对于主程序和从这些主程序调用即公共变量对于主程序和从这些主程序调用的每个宏程序来说是公用的。的每个宏程序来说是公用的。断电时,断电时,#100#100#199#199清除(初始化为空)清除(初始化为空) 通电时复位到通电时复位到“0”0”。而。而#500#500#999#999数据,数据,即使在断电时,也不清除。即使在断电时,也不清除。#1000#1000以上以上系统变量系统变量系统变量用于读和写系统变量用于读和写CNCCNC运行时各种数据变运行时各种数据变化。例如,刀具当前位置和补偿等化。例如,刀具当前位置和补偿等。注
15、:公共变量注:公共变量 #150 #150 到到 #199 #199 及及 #532 #532 到到 #999 #999 是随意的(可选择是随意的(可选择)2.2.3 2.2.3 变量值的范围变量值的范围 局部变量和公共变量的值可以是局部变量和公共变量的值可以是0 0或以下范围中的值:或以下范围中的值: -10-104747-10-102929 0 0 +10 +10-29-29+10+104747 如果计算结果超出有效范围,则触发程序错误如果计算结果超出有效范围,则触发程序错误P/SP/S, 报警报警NO.111.111。2.2.4 2.2.4 小数点的省略小数点的省略 当在程序中定义变量值
16、时,整数值的小数点可以省略。当在程序中定义变量值时,整数值的小数点可以省略。 例如:例如:#1=123#1=123,变量,变量#1#1的实际值是的实际值是123.000123.000。2.2.5 2.2.5 变量使用时注意的问题变量使用时注意的问题 在程序中使用变量时,应指定变量号地址。在程序中使用变量时,应指定变量号地址。 当用表达式指定变量时,必须把表达式放在括号中,例如:当用表达式指定变量时,必须把表达式放在括号中,例如:G01 X#11+#22 F#3G01 X#11+#22 F#3。 被引用变量的值根据地址的最小设定单位自动的四舍五入。被引用变量的值根据地址的最小设定单位自动的四舍五
17、入。例如:当例如:当G00 X#11G00 X#11,以,以1/1000mm1/1000mm的单位执行赋值的单位执行赋值12.345612.3456时,时,CNCCNC把把12.345612.3456赋值给变量赋值给变量#11#11,实际指令值为,实际指令值为G00X12.346G00X12.346。 改变引用变量的值的符号,要把改变引用变量的值的符号,要把“- -”号放在号放在# #的前面,例如:的前面,例如:G00XG00X- -#11#11。 当引用未定义的变量时,变量及地址都被忽略。例如:当变当引用未定义的变量时,变量及地址都被忽略。例如:当变量量#11#11的值是的值是0 0,并且变
18、量,并且变量#22#22的值是空时,的值是空时,G00X#11Y#22G00X#11Y#22的执行结的执行结果是果是G00X0G00X0。 所谓所谓“变量的值是变量的值是0”0”与与“变量的值是空变量的值是空”是二个完全不同是二个完全不同的概念,可以这样理解:的概念,可以这样理解: “ “变量的值是变量的值是0”0”相当于相当于“变量的数值等于变量的数值等于0”0”, “ “变量的值是空变量的值是空”意味着意味着“变量所对应的地址不存在,不生变量所对应的地址不存在,不生效效”。 不能用变量代表的地址符号有:程序号不能用变量代表的地址符号有:程序号O,顺序号,顺序号N,任选,任选程序段挑转号程序
19、段挑转号 / /。例如以下情况不能使用变量:。例如以下情况不能使用变量: O#11#11; / /O#22G00X100.0#22G00X100.0; N#33Y200.0N#33Y200.0; 使用使用ISOISO代码编程时,用代码编程时,用“#”#”代码表示变量,若用代码表示变量,若用EIAEIA代码,代码,则应用则应用“”代码代替代码代替“#”#”代码,因为代码,因为EIAEIA代码中没有代码中没有“#”#”代代码码2.3 2.3 系统变量系统变量 空变量、局部变量和公共变量的意义见表空变量、局部变量和公共变量的意义见表1 1功能说明部分,功能说明部分,不再赘述。下面介绍系统变量。不再赘
20、述。下面介绍系统变量。 系统变量用于读和写系统变量用于读和写CNCCNC内部数据内部数据,例如,刀具偏置值和当,例如,刀具偏置值和当前位置数据。无论用户宏程序前位置数据。无论用户宏程序A A或用户宏程序或用户宏程序B B,系统变量的用法,系统变量的用法都是固定的,而且某些系统变量为只读,用户必须严格按照规定都是固定的,而且某些系统变量为只读,用户必须严格按照规定使用。使用。 系统变量是自动控制和调用加工程序开发的基础系统变量是自动控制和调用加工程序开发的基础。系统变量。系统变量的内容见表的内容见表2 2。表表2 FANUC 0i2 FANUC 0i系统变量一览表系统变量一览表 变量号变量号 含
21、义含义#1000#1000#1015#1015,#1032 #1032 接口输入变量接口输入变量#1100#1100#1115#1115,#1132#1132,#1133 #1133 接口输出变量接口输出变量#10001#10001#10400#10400,#11001#11001#11400 #11400 刀具长度补偿值刀具长度补偿值#12001#12001#12400#12400,#13001#13001#13400 #13400 刀具半径补偿值刀具半径补偿值#2001#2001#2400 #2400 刀具长度与半径补偿值(位置组数刀具长度与半径补偿值(位置组数 200200时)时)#30
22、00 #3000 报警报警#3001#3001,#3002 #3002 时钟时钟#3003#3003,#3004 #3004 循环运行控制循环运行控制#3005 #3005 设定数据(设定数据(SETTINGSETTING值)值)#3006 #3006 停止和显示信息停止和显示信息#3007 #3007 镜像像#3011#3011,#3012 #3012 日期和时间日期和时间#3901#3901,#3902 #3902 零件数零件数#4001#4001#4120#4120,#4130 #4130 模态信息模态信息#5001#5001#5104 #5104 位置信息位置信息#5201#5201#
23、5324 #5324 工件坐标系补偿值(工件零点偏移值)工件坐标系补偿值(工件零点偏移值)#7001#7001#7944 #7944 扩展工件坐标系补偿值(工件零点偏扩展工件坐标系补偿值(工件零点偏 移值移值)下面对系统变量进行说明下面对系统变量进行说明2.3.1 2.3.1 接口(输入输出)信号接口(输入输出)信号接口信号是可编程机床控制器(PMC)和用户宏程序之间交换的信号,具体内容见表3。表3 FANUC 0i 接口信号的系统变量 变量号 功能#1000#1000#1015#1015 把16位信号从PMC送到用户宏程序。变量#1000#1000#1032#1032 #1015#1015用
24、于按位读取信号;变量#1032#1032用于一 次读取一个16位信号#1100#1100#1115#1115 输出: 把16位信号从用户宏程序送到PMC。变量#1100#1100#1132 #1132 #1115#1115用于按位写信号;变量#1132#1132用于一次 写一个16位信号#1133#1133 变量#1133#1133用于从用户宏程序一次写一个32位 信号送到PMC。#1133#1133的值为从-99999999到 +99999999注:只有使用FANUC PMC时,才能使用上表中的变量。在运算中,系统变量 #1000#1000#1015#1015和#1032不能用作左边的项。
25、下面对系统变量进行说明下面对系统变量进行说明2.3.1 2.3.1 接口(输入输出)信号接口(输入输出)信号接口信号是可编程机床控制器(PMC)和用户宏程序之间交换的信号,具体内容见表3。表3 FANUC 0i 接口信号的系统变量 变量号 功能#1000#1000#1015#1015 把16位信号从PMC送到用户宏程序。变量#1000#1000#1032#1032 #1015#1015用于按位读取信号;变量#1032#1032用于一 次读取一个16位信号#1100#1100#1115#1115 输出: 把16位信号从用户宏程序送到PMC。变量#1100#1100#1132 #1132 #111
26、5#1115用于按位写信号;变量#1132#1132用于一次 写一个16位信号#1133#1133 变量#1133#1133用于从用户宏程序一次写一个32位 信号送到PMC。#1133#1133的值为从-99999999到 +99999999注:只有使用FANUC PMC时,才能使用上表中的变量。在运算中,系统变量 #1000#1000#1015#1015和#1032不能用作左边的项。 下面对系统变量进行说明下面对系统变量进行说明2.3.1 2.3.1 接口(输入输出)信号接口(输入输出)信号接口信号是可编程机床控制器(接口信号是可编程机床控制器(PMCPMC)和用户宏程序之间交换的)和用户宏
27、程序之间交换的信号,具体内容见表信号,具体内容见表3 3。表3 FANUC 0i 接口信号的系统变量 变量号 功能#1000#1000#1015#1015 把16位信号从PMC送到用户宏程序。变量#1000#1000#1032#1032 #1015#1015用于按位读取信号;变量#1032#1032用于一 次读取一个16位信号#1100#1100#1115#1115 输出: 把16位信号从用户宏程序送到PMC。变量#1100#1100#1132 #1132 #1115#1115用于按位写信号;变量#1132#1132用于一次 写一个16位信号#1133#1133 变量#1133#1133用于从
28、用户宏程序一次写一个32位 信号送到PMC。#1133#1133的值为从-99999999到 +99999999注:只有使用FANUC PMC时,才能使用上表中的变量。在运算中,系统变量 #1000#1000#1015#1015和#1032不能用作左边的项。 2.3.2 2.3.2 刀具补偿值刀具补偿值用系统变量可以读和写刀具补偿值。通过系统变量赋值,可以修用系统变量可以读和写刀具补偿值。通过系统变量赋值,可以修改刀具补偿值改刀具补偿值,见表,见表4 4。表表4 4 FANUC 0i刀具补偿存储器刀具补偿存储器C的系统变量的系统变量补偿号补偿号刀具长度补偿刀具长度补偿刀具半径补偿刀具半径补偿几
29、何几何补偿补偿磨损磨损补偿补偿几何几何补偿补偿磨损磨损补偿补偿1 12 2199199200200201201399399400400#11001(#2201)#11001(#2201)#11002(#2202)#11002(#2202)#11199#2399#11199#2399)#11200(#2400)#11200(#2400)#112001#112001#11399#11399#11400#11400#10001(#2001)#10001(#2001)#10002(#2002)#10002(#2002)#10199(#2199)#10199(#2199)#10200(#2200)#10
30、200(#2200)#10201#10201#10399#10399#10400#10400#13001#13001#13002#13002 #13199#13199#13200#13200#13201#13201 #13399#13399#13400#13400#12001#12001#12002#12002 #12199#12199#12200#12200#12201#12201 #12399#12399#12400#12400 刀具补偿刀具补偿 : 几何补偿和磨损补偿几何补偿和磨损补偿 几何补偿几何补偿 : 长度补偿和半径补偿长度补偿和半径补偿 刀具补偿号刀具补偿号:400:400个个,
31、即系统支持控制容量达,即系统支持控制容量达400400把刀的刀库。把刀的刀库。 当刀具补偿号小于等于当刀具补偿号小于等于200200个时,刀具长度补偿也可使用个时,刀具长度补偿也可使用#2001#2001#2400#2400。例如:假设一把。例如:假设一把10mm10mm的立铣刀,将其视为的立铣刀,将其视为1010号号刀(若在加工中心上,是有非常明确和实在的含义,即应将此铣刀(若在加工中心上,是有非常明确和实在的含义,即应将此铣刀放置在刀库的刀放置在刀库的1010号刀位上);对于随机换刀的机床,刀号和刀号刀位上);对于随机换刀的机床,刀号和刀库位置不一定对应;库位置不一定对应; 数控铣床上数控
32、铣床上,尽管只能人工换刀,但为了使刀具管理和工艺,尽管只能人工换刀,但为了使刀具管理和工艺管理更合理、更有序,同样也可以效仿加工中心那样操作,即在管理更合理、更有序,同样也可以效仿加工中心那样操作,即在系统中记录下相关的补偿号和刀具补偿值,唯一的差别不过是没系统中记录下相关的补偿号和刀具补偿值,唯一的差别不过是没有刀库和自动换刀功能,而需要人工换刀。有刀库和自动换刀功能,而需要人工换刀。 刀具长度补偿刀具长度补偿的二项补偿值在的二项补偿值在Z Z方向对刀完成后一般不再需方向对刀完成后一般不再需要特别处理。要特别处理。 编程时主要涉及刀具半径补偿的二项补偿值编程时主要涉及刀具半径补偿的二项补偿值
33、 几何补偿值几何补偿值= =刀具半径即刀具半径即#13010=5.0,#13010=5.0,可视为对刀具的识别可视为对刀具的识别; 调整磨损值(调整磨损值(#12010#12010)则视为对尺寸的控制)则视为对尺寸的控制。 在应用宏程序编写加工程序时,将会有以下的描述:在应用宏程序编写加工程序时,将会有以下的描述: #20=#13010 #20=#13010 把刀具补偿号把刀具补偿号1010(即(即1010号刀,在此既是号刀,在此既是10mm10mm的立铣刀)的半径补偿值中的几何补偿值赋值给变量的立铣刀)的半径补偿值中的几何补偿值赋值给变量#20#20,#20=5.0#20=5.0。 #22=
34、#12010 #22=#12010 把刀具补偿号把刀具补偿号1010(即(即1010号刀,在此既是号刀,在此既是10mm10mm的立铣刀)的半径补偿值中的磨损补偿值赋值给变量的立铣刀)的半径补偿值中的磨损补偿值赋值给变量#22#22,在这里假设在这里假设#20=1.2#20=1.2。2.3.3 2.3.3 模态信息模态信息 正在处理的当前程序段之前的模态信息可从系统变量中读出。正在处理的当前程序段之前的模态信息可从系统变量中读出。 FANUC 0i 0i 系统的模态信息见表系统的模态信息见表5 5。 表表5 FANUC 0i 模态信息的系统变量模态信息的系统变量变量号变量号 功能功能#4001
35、 G00,G01,G02,G03,G33 (#4001 G00,G01,G02,G03,G33 (组组01)01)#4002 G17,G18,G19 (#4002 G17,G18,G19 (组组02) 02) #4003 G90,G91 (#4003 G90,G91 (组组03)03)#4004 (#4004 (组组04)04)#4005 G94,G95 (#4005 G94,G95 (组组05)05)#4006 G20,G21 (#4006 G20,G21 (组组06)06)#4007 G40,G41,G42 (#4007 G40,G41,G42 (组组07)07)#4008 G43,G44
36、,G49 (#4008 G43,G44,G49 (组组08)08)#4009 G73,G774,G76,G80#4009 G73,G774,G76,G80G89 (组组0909)#4010 G98,G99 (#4010 G98,G99 (组组10)10)#4011 G50,G51 (#4011 G50,G51 (组组11)11)#4012 G65,G66,G67 (#4012 G65,G66,G67 (组组12)12)#4013 G96,G9 (#4013 G96,G9 (组组13)13)#4014 G54#4014 G54G59 (组组1414)#4015 G61#4015 G61G64 (
37、组组1515)#4016 G68,G69 (#4016 G68,G69 (组组16)16) #4022 #4022 待定待定 ( (组组22)22)#4102 B#4102 B代码代码#4107 D#4107 D代码代码#4109 F#4109 F代码代码#4111 H#4111 H代码代码#4113 M#4113 M代码代码#4114 #4114 顺序号顺序号#4115 #4115 程序号程序号#4119 S#4119 S代码代码#4120 T#4120 T代码代码#4130 P#4130 P代码(现在选择的附加工件坐标系)代码(现在选择的附加工件坐标系)注:注:1.P1.P代码为当前选择的
38、是附加工件坐标系。代码为当前选择的是附加工件坐标系。 2.2.当执行当执行#1=4002#1=4002时,在时,在#1#1中得到的值是中得到的值是1717,1818或或1919。 3.3.系统变量系统变量#4001#4001#4120#4120不能用于运算指令左边的项。不能用于运算指令左边的项。 4.4.模态信息不能写,只能读。另外如果阅读模态信息指定的系统变量为模态信息不能写,只能读。另外如果阅读模态信息指定的系统变量为 不能用得不能用得G G代码时,系统则发出程序错误代码时,系统则发出程序错误P/SP/S报警报警2. 3. 4 当前位置信息当前位置信息当前位置信息不能写,只能读。当前位置信
39、息的系统变量见表6。 表表6 FANUC 0i6 FANUC 0i当前位置信息的系统变量当前位置信息的系统变量变量号变量号位置信息位置信息相关相关坐标系坐标系移动时的移动时的读操作读操作刀具补偿值刀具补偿值(长度、半(长度、半径补偿)径补偿)#5001 X#5001 X轴程序段终点位置轴程序段终点位置(ABSIO) (ABSIO) 不考虑不考虑#5002 Y#5002 Y轴程序段终点位置轴程序段终点位置(ABSIO) (ABSIO) 工件工件 可以可以 刀尖位置刀尖位置#5003 Z#5003 Z轴程序段终点位置轴程序段终点位置(ABSIO) (ABSIO) 坐标系坐标系 (程序指令位置)(程
40、序指令位置)#5004 4th#5004 4th轴程序段终点位置轴程序段终点位置(ABSIO) (ABSIO) #5021 X#5021 X轴当前位置轴当前位置(ABSMT) (ABSMT) 考虑考虑#5022 Y#5022 Y轴当前位置轴当前位置(ABSMT) (ABSMT) 机床机床 刀具基准点位置刀具基准点位置#5023 Z#5023 Z轴当前位置轴当前位置(ABSMT) (ABSMT) 坐标系坐标系 (机床坐标系)(机床坐标系)#5024 4th#5024 4th轴当前位置轴当前位置(ABSMT) (ABSMT) 不可以不可以 #5041 X#5041 X轴当前位置轴当前位置(ABSO
41、T) (ABSOT) 考虑考虑#5042 Y#5042 Y轴当前位置轴当前位置(ABSOT) (ABSOT) (与位置的绝对坐标系(与位置的绝对坐标系#5043 Z#5043 Z轴当前位置轴当前位置(ABSOT) (ABSOT) 显示相同)显示相同)#5044 4th#5044 4th轴当前位置轴当前位置(ABSOT) (ABSOT) 工件工件#5061 X#5061 X轴跳跃信号位置轴跳跃信号位置(ABSKP) (ABSKP) 坐标系坐标系 #5062 Y#5062 Y轴跳跃信号位置轴跳跃信号位置(ABSKP (ABSKP 可以可以 已考虑已考虑#5063 Z#5063 Z轴跳跃信号位置轴跳
42、跃信号位置(ABSKP) (ABSKP) 刀具基准点位置刀具基准点位置#5064 4th#5064 4th轴跳跃信号位置轴跳跃信号位置(ABSKP)(ABSKP)#5081 X#5081 X轴刀具长度补偿值轴刀具长度补偿值#5082 Y#5082 Y轴刀具长度补偿值轴刀具长度补偿值 已考虑已考虑#5083 Z#5083 Z轴刀具长度补偿值轴刀具长度补偿值#5084 4th#5084 4th轴刀具长度补偿值轴刀具长度补偿值 不可以不可以 #5101 X#5101 X轴伺服位置补偿轴伺服位置补偿#5102 Y#5102 Y轴伺服位置补偿轴伺服位置补偿 已考虑已考虑#5103 Z#5103 Z轴伺服
43、位置补偿轴伺服位置补偿#5104 4th#5104 4th轴伺服位置补偿轴伺服位置补偿注:注:1.ABSIO 1.ABSIO 工件坐标系中,前一程序段终点座标志。工件坐标系中,前一程序段终点座标志。 ABSMT ABSMT 机床坐标系中,当前机床坐标位置。 ABSOT ABSOT 工件坐标系中,当前坐标位置。 ABSKP ABSKP 工件坐标系中,工件坐标系中,G31G31程序段终中跳跃信号有效的位置。程序段终中跳跃信号有效的位置。 2. 2.在在G31G31(触发功能)程序段终中,当触发信号接通时的刀具位置存储在变量触发功能)程序段终中,当触发信号接通时的刀具位置存储在变量 #5061 #5
44、061#5064#5064中,当中,当G31G31程序段终中的触发信号不接通时,这些变量存储指定程程序段终中的触发信号不接通时,这些变量存储指定程 序段的终点值。序段的终点值。 3. 3.变量变量#5081#5081#5084#5084所存储的刀具长度补偿值是当前的执行值(即当前正在执行所存储的刀具长度补偿值是当前的执行值(即当前正在执行 中的程序段的量),不是后面的程序段的处理量。中的程序段的量),不是后面的程序段的处理量。 4. 4.移动期间不能读取是由于缓冲(豫读)功能的原因,不能读取目标指令值。移动期间不能读取是由于缓冲(豫读)功能的原因,不能读取目标指令值。2.3.5 2.3.5 工
45、件坐标系补偿值(工件零点偏移值)工件坐标系补偿值(工件零点偏移值) 用系统变量可以读和写工件零点偏移值,见表用系统变量可以读和写工件零点偏移值,见表7 7。 表表7 FANUC 0i7 FANUC 0i工件零点偏移值的系统变量工件零点偏移值的系统变量变量号变量号功能功能#5201#5201#5204#5204 第第1 1轴外部零点偏移值轴外部零点偏移值 第第4 4轴外部零点偏移值轴外部零点偏移值#5221#5221#5224#5224第第1 1轴轴G54G54工件零点偏移值工件零点偏移值第第4 4轴轴G54G54工件零点偏移值工件零点偏移值#5241#5241#5244#5244第第1 1轴轴
46、G55G55工件零点偏移值工件零点偏移值第第4 4轴轴G55G55工件零点偏移值工件零点偏移值#5261#5261#5264#5264第第1 1轴轴G56G56工件零点偏移值工件零点偏移值第第4 4轴轴G56G56工件零点偏移值工件零点偏移值#5281#5281#5284#5284第第1 1轴轴G57G57工件零点偏移值工件零点偏移值第第4 4轴轴G57G57工件零点偏移值工件零点偏移值#5301#5301#5304#5304第第1 1轴轴G58G58工件零点偏移值工件零点偏移值第第4 4轴轴G58G58工件零点偏移值工件零点偏移值#5321#5321#5324#5324第第1 1轴轴G59G
47、59工件零点偏移值工件零点偏移值第第4 4轴轴G59G59工件零点偏移值工件零点偏移值#7001#7001#7004#7004第第1 1轴工件零点偏移值(轴工件零点偏移值(G54.1 P1G54.1 P1)第第4 4轴工件零点偏移值(轴工件零点偏移值(G54.1 P1G54.1 P1)#7021#7021#7024#7024第第1 1轴工件零点偏移值(轴工件零点偏移值(G54.1 P2G54.1 P2)第第4 4轴工件零点偏移值(轴工件零点偏移值(G54.1 P2G54.1 P2)#7941#7941#7944#7944第第1 1轴工件零点偏移值(轴工件零点偏移值(G54.1 P48G54.1
48、 P48)第第4 4轴工件零点偏移值(轴工件零点偏移值(G54.1 P48G54.1 P48)2.4 2.4 算术和逻辑运算算术和逻辑运算 变量中可以进行运算变量中可以进行运算 等式右边的表达式:等式右边的表达式:包含常量或由函数或由运算符组成的变量包含常量或由函数或由运算符组成的变量 表达式中的变量表达式中的变量 #j #j 和和 #k#k 可以用常量赋值可以用常量赋值 等式左边的变量等式左边的变量也可以用表达式赋值。也可以用表达式赋值。 算术运算算术运算:加、减、乘、除函数加、减、乘、除函数,逻辑运算包括与、或、异或等逻辑运算包括与、或、异或等表表8 FANUC 0i 8 FANUC 0i
49、 算术算术和逻辑运算一览表功能和逻辑运算一览表功能 功能功能 格式格式 备注备注 定定 定义置换定义置换 #i=#j#i=#j 加法加法 #i=#j+#k#i=#j+#k 减法减法 #i=#j-#i=#j-# 乘法乘法 #i=#j#i=#j* *#k#k 除法除法 #i=#j/#k#i=#j/#k 正弦正弦#i=sin#j#i=sin#j三角函数及反三角三角函数及反三角函数的数值均以度函数的数值均以度为单位来指定。如为单位来指定。如90903030应表示为应表示为90.590.5反正弦反正弦#i=Asin#j#i=Asin#j余弦余弦#i=COS#j#i=COS#j反余弦反余弦#i=ACOS#
50、j#i=ACOS#j正切正切#i=TAN#j#i=TAN#j反正切反正切#i=ATAN#j/#K#i=ATAN#j/#K平方根平方根#i=SQRT#j#i=SQRT#j 绝对值绝对值#i= ABS#j#i= ABS#j舍入舍入#i=ROUND#j#i=ROUND#j指数函数指数函数#i=EXP#j#i=EXP#j自然对数自然对数#i=LN#j#i=LN#j上取整上取整#i=FIX#j#i=FIX#j下取整下取整#i=FUP#j#i=FUP#j逻辑逻辑运算运算与与#iAND#j#iAND#j 或或#iOR#j#iOR#j异或异或#iXOR#j#iXOR#j 从从BCDBCD转为转为BINBIN#