用户宏程序解析课件

上传人:文**** 文档编号:171723025 上传时间:2022-11-28 格式:PPT 页数:112 大小:1.06MB
收藏 版权申诉 举报 下载
用户宏程序解析课件_第1页
第1页 / 共112页
用户宏程序解析课件_第2页
第2页 / 共112页
用户宏程序解析课件_第3页
第3页 / 共112页
资源描述:

《用户宏程序解析课件》由会员分享,可在线阅读,更多相关《用户宏程序解析课件(112页珍藏版)》请在装配图网上搜索。

1、高级数控加工程序编制:高级数控加工程序编制:FANUCFANUC用户宏程序用户宏程序SIEMENSSIEMENS参数编程参数编程机电学院数控技术研究室机电学院数控技术研究室20112011年年1111月月用户宏程序编程用户宏程序编程一、宏程序应用概述一、宏程序应用概述(一)宏程序与普通程序的对比(一)宏程序与普通程序的对比 一般意义上的数控编程(普通程序),是使用数控系统给定一般意义上的数控编程(普通程序),是使用数控系统给定的指令代码进行编程。每个代码的功能固定,只要按规定使用即的指令代码进行编程。每个代码的功能固定,只要按规定使用即可。为了扩展编程功能,可。为了扩展编程功能,FANUCFA

2、NUC数控系统厂家在一般指令代码功数控系统厂家在一般指令代码功能基础上,又提供了用户宏程序功能,简称宏程序。区别如下:能基础上,又提供了用户宏程序功能,简称宏程序。区别如下:普通程序使用常量,常量之间不能运算,程序只能顺序执行普通程序使用常量,常量之间不能运算,程序只能顺序执行 不能跳转,程序没有通用性;不能跳转,程序没有通用性;宏程序可以使用变量(可以赋值),变量之间可以运算,程宏程序可以使用变量(可以赋值),变量之间可以运算,程 序运行可以跳转,程序具有通用性。序运行可以跳转,程序具有通用性。(二)宏程序与(二)宏程序与CAD/CAMCAD/CAM软件生成的程序对比软件生成的程序对比 宏程

3、序短小精悍宏程序短小精悍,任何数控加工只要能够用宏程序完整表达,任何数控加工只要能够用宏程序完整表达,即使再复杂,其程序也比较精炼篇幅小,优化后的宏程序段数很即使再复杂,其程序也比较精炼篇幅小,优化后的宏程序段数很少超过少超过6060行,这对于一般数控装置的程序存储空间为行,这对于一般数控装置的程序存储空间为128KB128KB、256KB256KB标准配置来说,都能容纳下任何复杂的宏程序。不需要考标准配置来说,都能容纳下任何复杂的宏程序。不需要考虑因程序较长进行在线加工时,数控系统与外部电脑的传输率不虑因程序较长进行在线加工时,数控系统与外部电脑的传输率不够问题。够问题。CAD/CAMCAD

4、/CAM软件生成的程序通常都比较大软件生成的程序通常都比较大,因为其生成刀具轨迹,因为其生成刀具轨迹的原理采用直线(微线段)逼近曲线曲面,所以不但程序长,而的原理采用直线(微线段)逼近曲线曲面,所以不但程序长,而且存在逼近误差。且存在逼近误差。(三)用户宏程序与一般子程序对比(三)用户宏程序与一般子程序对比 子程序可用于同一操作的重复执行,用户宏程序具子程序可用于同一操作的重复执行,用户宏程序具有此功能,有此功能,还允许使用变量、算术和逻辑操作、条件转移等,也可以扩展还允许使用变量、算术和逻辑操作、条件转移等,也可以扩展 一般程序,如凹槽循环和用户定义的循环。加工程序可以调用一般程序,如凹槽循

5、环和用户定义的循环。加工程序可以调用 带有简单命令的用户宏程序。带有简单命令的用户宏程序。FANUC FANUC 数控系统具有用户宏程序功能数控系统具有用户宏程序功能。定义:定义:用户宏程序是具有某种功能的一组命令,象子程序一用户宏程序是具有某种功能的一组命令,象子程序一样存储在内存中。存储的这组命令也称为用户宏程序主体(简称样存储在内存中。存储的这组命令也称为用户宏程序主体(简称宏程序),用户宏程序可以被宏程序),用户宏程序可以被“调用宏程序的指令调用宏程序的指令”调用调用。也也可以作主程序适用可以作主程序适用 用户宏程序见图用户宏程序见图11。调用宏程序调用宏程序 指令指令具有某种具有某种

6、功能的一功能的一组命令组命令 O0001;0001;G65P9010R50.0L2;G65P9010R50.0L2;M30;M30;O9010;9010;#1=#18/2;#1=#18/2;G01X#1 Z#1 F0.3;G01X#1 Z#1 F0.3;G02X#1 Z-#1 R#1;G02X#1 Z-#1 R#1;M99M99;加工程序用户宏程序 图图11 用户宏程序用户宏程序宏程序的最大特点:宏程序的最大特点:在宏程序中,除了使用通常的在宏程序中,除了使用通常的CNC指令外,还可以使用带变量指令外,还可以使用带变量 的的CNC指令,进行变量运算,使用跳转、循环指令等。指令,进行变量运算,使

7、用跳转、循环指令等。根据宏程序功能范围的不同分为:根据宏程序功能范围的不同分为:用户宏程序用户宏程序A 用户宏程序用户宏程序B B 现代现代FANUC系统已不分系统已不分“用户宏程序用户宏程序A”和和“用户宏程序用户宏程序B”,取消了宏程序取消了宏程序A,统称为用户宏程序,统称为用户宏程序。二、基础理论二、基础理论2.1 变量概念变量概念 普通加工程序用数值指定普通加工程序用数值指定G代码和位移距离代码和位移距离 例如:例如:G01和和X100.0。使用宏程序时,数值可以直接指定,而且可用变量指定代使用宏程序时,数值可以直接指定,而且可用变量指定代 码和位移等,变量值可以用程序或用码和位移等,

8、变量值可以用程序或用MDI方式设定或修改。方式设定或修改。例如:例如:#1=#2+100;G01 X#1 F500;2.2 2.2 变量的表示变量的表示 一般计算机程序语言允许使用一般计算机程序语言允许使用变量名,用户宏程序则不行。变量名,用户宏程序则不行。用户宏程序的变量需用变量符号用户宏程序的变量需用变量符号“#”和其后的变量号指定,变量和其后的变量号指定,变量号可以直接用数值或表达式表示,其格式为:号可以直接用数值或表达式表示,其格式为:i i(i=1i=1、2 2、3 3、)。例如,例如,#12,102,1006等。用表达式指定变量号时,表达式等。用表达式指定变量号时,表达式必须放在括

9、号内。例如,必须放在括号内。例如,#1+#2-12。变量可以代替宏程序中地址后面的数值,变量的值可由调用变量可以代替宏程序中地址后面的数值,变量的值可由调用用户宏程序的指令给宏程序主体赋值,或者在执行宏程序主体时用户宏程序的指令给宏程序主体赋值,或者在执行宏程序主体时由得出的计算值决定。使用复数个变量时,可由变量号决定由得出的计算值决定。使用复数个变量时,可由变量号决定。2.2.1 2.2.1 变量的引用变量的引用 1.1.变量可被引用为代替宏程序中地址后面的数值变量可被引用为代替宏程序中地址后面的数值 如如 F F103103,表示进给速度由变量,表示进给速度由变量103103的值指定,当的

10、值指定,当103=1.5103=1.5时,与时,与F1.5F1.5指令的相同。又如,指令的相同。又如,G G130130,当,当130=3130=3时,时,与与G03G03指令相同;指令相同;2.2.变量可被引用为指定位移变量可被引用为指定位移 如如G00Z-G00Z-100100,表示刀具在,表示刀具在-Z-Z方向快速定位到变量方向快速定位到变量100100指指定的位置,当定的位置,当100=250100=250时,与时,与G00Z-250.0G00Z-250.0指令的相同;指令的相同;此外,用变量此外,用变量j j代替变量号码代替变量号码i i时,不能用时,不能用j j表示,而表示,而用用

11、9j9j。当。当110=120110=120(110110为为j j,120120为变量号码),为变量号码),120=500120=500时,则为时,则为9110=5009110=500。地址。地址O,N不能引用变量,即不能不能引用变量,即不能使用使用O100100,N N120120。变量值可以显示,可以用。变量值可以显示,可以用MDIMDI键设定。键设定。3.3.自变量赋值(指定)自变量赋值(指定)在宏程序中给使用的变量所赋予的实际值叫做自变量在宏程序中给使用的变量所赋予的实际值叫做自变量赋值赋值。自变量由地址和后面的数字指定。除自变量由地址和后面的数字指定。除O之外的地址均可指定自变之外

12、的地址均可指定自变量,自变量的地址和变量号必须一一对应。例如自变量的地址量,自变量的地址和变量号必须一一对应。例如自变量的地址I I、J J、K K与宏程序内的变量一一对应与宏程序内的变量一一对应 赋值:赋值:直接指定、调用宏程序指令传送、表达式指定直接指定、调用宏程序指令传送、表达式指定 此外自变量还有标志号,如指定自变量标志为此外自变量还有标志号,如指定自变量标志为1 1,否则为,否则为0 0。自变量被指定,变为指定值,否则变为下述情况:自变量被指定,变为指定值,否则变为下述情况:参照参照CNCCNC指令,指定的自变量地址无效。指令,指定的自变量地址无效。参照运算指令和转移指令。参照运算指

13、令和转移指令。2.2.2 2.2.2 变量的类型变量的类型 按变量号、使用范围和功能,变量分为四种类型,见表按变量号、使用范围和功能,变量分为四种类型,见表1 1。表表1 1 变量类型变量类型变量号变量号变量类型变量类型功能功能#0#0总是空总是空(空变量)(空变量)这个变量总是空,没有值赋予该变量这个变量总是空,没有值赋予该变量。#1#1#33#33局部变量局部变量局部变量只能在宏程序中存储数据,例如:局部变量只能在宏程序中存储数据,例如:运算结果。断电时,局部变量清除(初始化运算结果。断电时,局部变量清除(初始化为空)。可以在程序中对其赋值。为空)。可以在程序中对其赋值。#100#100#

14、149#149(#199#199)#500#500#531#531(#999#999)公共变量公共变量公共变量在不同的宏程序中的意义相同,公共变量在不同的宏程序中的意义相同,即公共变量对于主程序和从这些主程序调用即公共变量对于主程序和从这些主程序调用的每个宏程序来说是公用的。的每个宏程序来说是公用的。断电时,断电时,#100#100#199#199清除(初始化为空)清除(初始化为空)通电时复位到通电时复位到“0 0”。而。而#500#500#999#999数据,即数据,即使在断电时,也不清除。使在断电时,也不清除。#1000#1000以上以上系统变量系统变量系统变量用于读和写系统变量用于读和写

15、CNCCNC运行时各种数据变运行时各种数据变化。例如,刀具当前位置和补偿等化。例如,刀具当前位置和补偿等。注:公共变量注:公共变量#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

16、.111.111。2.2.4 2.2.4 小数点的省略小数点的省略 当在程序中定义变量值时,整数值的小数点可以省略。当在程序中定义变量值时,整数值的小数点可以省略。例如:例如:#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。当引用未定义的变量时当引用未定义的变量时,变量及地址都被忽略。例如:当变,变量及

18、地址都被忽略。例如:当变量量#11#11的值是的值是0 0,并且变量并且变量#22#22的值是空时的值是空时,G00X#11Y#22G00X#11Y#22的执行结的执行结果是果是G00X0G00X0。所谓所谓“变量的值是变量的值是0 0”与与“变量的值是空变量的值是空”是二个完全不同的是二个完全不同的概念,可以这样理解:概念,可以这样理解:“变量的值是变量的值是0 0”相当于相当于“变量的数值等于变量的数值等于0 0”,“变量的值是空变量的值是空”意味着意味着“变量所对应的地址不存在,不生变量所对应的地址不存在,不生效效”,未定义。未定义。不能用的变量地址符号有:程序号不能用的变量地址符号有:

19、程序号O,顺序号,顺序号N,任选程序,任选程序段挑转号段挑转号 /。例如以下情况不能使用变量:。例如以下情况不能使用变量: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时)

22、时)#3000#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#5324#

23、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#1115#1115用于按位写信号;变量#

26、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用于从用户宏程序一次写一个32位 信号送到PMC。#

28、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)#10200(#2200)#10201#10201#10

30、399#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的立铣刀)的立铣刀)的半径的半径5mm5mm,作为几何补偿值赋值给变量,作为几何

34、补偿值赋值给变量#20#20,#20=5.0#20=5.0。#22=#12010#22=#12010:意义是:把刀具补偿号意义是:把刀具补偿号1010(即(即1010号刀,在此既是号刀,在此既是10mm10mm的立铣刀)的立铣刀)的半径方向磨损值的半径方向磨损值1.2mm1.2mm,作为磨损补偿值赋值给变量,作为磨损补偿值赋值给变量#22#22,在这,在这里,里,#20=1.2#20=1.2。2.3.3 2.3.3 模态信息模态信息 正在处理的当前程序段之前的模态信息可从系统变量中读出。正在处理的当前程序段之前的模态信息可从系统变量中读出。FANUC 0i 0i 系统的模态信息见表系统的模态信

35、息见表5 5。表表5 FANUC 0i 模态信息的系统变量模态信息的系统变量变量号变量号 功能功能#4001 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 G

36、40,G41,G42 (#4007 G40,G41,G42 (组组07)07)#4008 G43,G44,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)#

37、4014 G54#4014 G54G59 (组组1414)#4015 G61#4015 G61G64 (组组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代码(现

38、在选择的附加工件坐标系)代码(现在选择的附加工件坐标系)注:注:1.P1.P代码为当前选择的是附加工件坐标系。代码为当前选择的是附加工件坐标系。2.2.当执行当执行#1=4002#1=4002时,在时,在#1#1中得到的值是中得到的值是1717,1818或或1919。3.3.系统变量系统变量#4001#4001#4120#4120不能用于运算指令左边的项。不能用于运算指令左边的项。4.4.模态信息不能写,只能读。另外如果阅读模态信息指定的系统变量为模态信息不能写,只能读。另外如果阅读模态信息指定的系统变量为 不能用得不能用得G G代码时,系统则发出程序错误代码时,系统则发出程序错误P/SP/S

39、报警报警2.3.4 当前位置信息当前位置信息当前位置信息不能写,只能读。当前位置信息的系统变量见表6。表表6 FANUC 0i6 FANUC 0i当前位置信息的系统变量当前位置信息的系统变量变量号变量号位置信息位置信息相关相关坐标系坐标系移动时的移动时的读操作读操作刀具补偿值刀具补偿值(长度、半(长度、半径补偿)径补偿)#5001 X#5001 X轴程序段终点位置轴程序段终点位置(ABSIO)(ABSIO)不考虑不考虑#5002 Y#5002 Y轴程序段终点位置轴程序段终点位置(ABSIO)(ABSIO)工件工件 可以可以 刀尖位置刀尖位置#5003 Z#5003 Z轴程序段终点位置轴程序段终

40、点位置(ABSIO)(ABSIO)坐标系坐标系 (程序指令位置)(程序指令位置)#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

41、X#5041 X轴当前位置轴当前位置(ABSOT)(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#506

42、3 Z轴跳跃信号位置轴跳跃信号位置(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#

43、5103 Z轴伺服位置补偿轴伺服位置补偿#5104 4th#5104 4th轴伺服位置补偿轴伺服位置补偿注:注:1.ABSIO 1.ABSIO 工件坐标系中,前一程序段终点座标志。工件坐标系中,前一程序段终点座标志。ABSMT ABSMT 机床坐标系中,当前机床坐标位置。ABSOT ABSOT 工件坐标系中,当前坐标位置。ABSKP ABSKP 工件坐标系中,工件坐标系中,G31G31程序段终中跳跃信号有效的位置。程序段终中跳跃信号有效的位置。2.2.在在G31G31(触发功能)触发功能)程序段终中,当程序段终中,当触发信号接通时的刀具位置存储在变量触发信号接通时的刀具位置存储在变量#5061

44、#5061#50645064中,当中,当G31G31程序段终中的程序段终中的触发信号不接通时,这些变量存储指定程触发信号不接通时,这些变量存储指定程 序段的终点值。序段的终点值。3.3.变量变量#5081#5081#50845084所存储的所存储的刀具长度补偿值是当前的执行值(即当前正在执行刀具长度补偿值是当前的执行值(即当前正在执行 中的中的程序段的量程序段的量),不是后面的程序段的处理量。),不是后面的程序段的处理量。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轴轴G55G55

46、工件零点偏移值工件零点偏移值第第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轴轴G59G59工件零点

47、偏移值工件零点偏移值第第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 P48)第

48、第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#j#i=ACOS#j正切正切#i=T

50、AN#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逻辑逻辑运算运算与与#i=#jAND#k#i=#jAND#k 或或#i=#jOR#k#i=#jOR#k异或异或#i=#jXOR#k#i=#jXOR#k 从从BCDBCD转为转为BINBIN#i=

51、BIN#j#i=BIN#j用于与用于与PMCPMC的信号的信号转换转换 从从BINBIN转为转为BCDBCD#i=BCD#j#i=BCD#j算术算术运算运算 以下是算术和逻辑运算的详细说明以下是算术和逻辑运算的详细说明:1.1.反正弦运算反正弦运算#i=Asin#j#i=Asin#j 取值范围:当参数(取值范围:当参数(No6004#0No6004#0)NATNAT位设置为位设置为0 0时,在时,在2702709090范围范围 取值。当参数(取值。当参数(No6004#0No6004#0)NATNAT位设置为位设置为1 1时,在时,在-90-909090范围取值。范围取值。当当#j#j超出超出

52、-1-1到到1 1的范围时,触发程序错误的范围时,触发程序错误P/SP/S报警报警No.111No.111。常数可替代变量常数可替代变量#j#j。2.2.反余弦运算反余弦运算#i=ACOS#j#i=ACOS#j 取值范围:取值范围:1801800 0。当当#j#j超出超出-1-1到到1 1的范围时,触发程序错误的范围时,触发程序错误P/SP/S报警报警No.111No.111。常数可替代变量常数可替代变量#j#j。3.3.反正切运算反正切运算#i=ATAN#j/#K#i=ATAN#j/#K 采用比值的书写方式(可理解为对边采用比值的书写方式(可理解为对边/邻边)。邻边)。取值范围:当参数(取值

53、范围:当参数(No6004#0No6004#0)NATNAT位设置为位设置为0 0时,取值范围为时,取值范围为0 0 360360。例如,当指定。例如,当指定#1=ATAN-1/-1#1=ATAN-1/-1时,时,#1=225#1=225。当参数。当参数 (No6004#0No6004#0)NATNAT位设置为位设置为1 1时,取值范围为时,取值范围为-180-180180180。例如,当指定。例如,当指定#1=ATAN-1/-1#1=ATAN-1/-1时,时,#1=-135#1=-135 常数可替代变量常数可替代变量#j#j。4.4.自然对数运算自然对数运算#i=LN#j#i=LN#j 相对

54、误差可能大于相对误差可能大于1010-8-8。当反对数(当反对数(#j#j)为)为0 0或小于或小于0 0时,触发程序错误时,触发程序错误P/SP/S报警报警No.111No.111。常数可替代变量常数可替代变量#j#j。5.5.指数函数指数函数#i=EXP#j#i=EXP#j 相对误差可能大于相对误差可能大于1010-8-8。当运算结果超过当运算结果超过3.653.6510104747(#j#j大约是大约是110110)时,出现溢出并触发程序错误)时,出现溢出并触发程序错误P/SP/S报报警警No.111No.111。常数可替代变量常数可替代变量#j#j。6.6.上取整上取整#i=FIX#j

55、#i=FIX#j和下取整和下取整#i=FUP#j#i=FUP#jCNCCNC处理数值运算时,无条件的舍去小数部分,称为上取整,小数进位到整数称为下处理数值运算时,无条件的舍去小数部分,称为上取整,小数进位到整数称为下取整(注意与数学上的四舍五入对照)。对于负数的处理要特别小心。取整(注意与数学上的四舍五入对照)。对于负数的处理要特别小心。例如:假设例如:假设#1=1.2#1=1.2,#2=-1.2#2=-1.2 当执行当执行#3=FUP#1#3=FUP#1时,时,#3=2.0#3=2.0;当执行当执行#3=FIX#1#3=FIX#1时,时,#3=1.0#3=1.0;当执行当执行#3=FUP#2

56、#3=FUP#2时,时,#3=-2.0#3=-2.0;当执行当执行#3=FIX#2#3=FIX#2时,时,#3=-1.0#3=-1.0。7.7.算术与逻辑指令的缩写算术与逻辑指令的缩写 程序中指令函数时,函数名的前二个字符可以用于指定该函数。例如程序中指令函数时,函数名的前二个字符可以用于指定该函数。例如:ROUNDROUNDRORO;FIXFIXFI.FI.8.8.混合运算时的运算顺序混合运算时的运算顺序 上述运算和函数可以混合运算,既涉及到运算的优先级,其运算顺序与一般数学上述运算和函数可以混合运算,既涉及到运算的优先级,其运算顺序与一般数学 上的定义基本一致,优先级顺序从高到低依次为:函

57、数运算、乘法除法和上的定义基本一致,优先级顺序从高到低依次为:函数运算、乘法除法和ANDAND运算运算、加法减法及、加法减法及0R0R和和XORXOR运算。例如运算。例如:#1=#2+#3#1=#2+#3*COS#4COS#4,运算顺序为运算顺序为COS#4COS#4、乘法乘法、加法。、加法。9.9.括号嵌套、运算顺序括号嵌套、运算顺序 括号优先,括号按先内括号、中间括号、外括号次序进行括号优先,括号按先内括号、中间括号、外括号次序进行用用“”可以改变运算顺序,最里层的可以改变运算顺序,最里层的优先运算,括号最多可以嵌套优先运算,括号最多可以嵌套5 5级(包括函级(包括函数内部使用的括号)。当

58、超过数内部使用的括号)。当超过5 5级时,触发程序错误级时,触发程序错误P/SP/S报警报警No.118No.118。例如。例如:#6=COS#5+#4#6=COS#5+#4*#3+#2#3+#2*11为为3 3重嵌套。重嵌套。10.10.逻辑运算说明逻辑运算说明 逻辑运算:表逻辑运算:表9 FANUC 0i9 FANUC 0i系统运算系统运算 AND AND 与与 逻辑乘逻辑乘 1 11=1 11=1 10=0 00=0 00=0 0=0;OR OR 或或 逻辑加逻辑加 1+1=1 1+0=1 0+0=0 1+1=1 1+0=1 0+0=0;XOR XOR 异或异或 逻辑减逻辑减 1-1=0

59、 1-0=1 0-0=0 0-1=11-1=0 1-0=1 0-0=0 0-1=1;11.11.运算精度运算精度 用户宏程序运算时,必须考虑运算结果的精度用户宏程序运算时,必须考虑运算结果的精度。用户宏程序处理数据的浮点格式。用户宏程序处理数据的浮点格式为:为:M=2M=2E E。每执行一次运算,产生一次误差,在重复计算的过程中,这些误差将累加。每执行一次运算,产生一次误差,在重复计算的过程中,这些误差将累加 FANUC 0iFANUC 0i系统运算中的误差精度见表系统运算中的误差精度见表9 9。运算运算平均误差平均误差最大误差最大误差误差类型误差类型a=ba=b*c c1.551.55101

60、0-10-104.664.661010-10-10相对误差相对误差a=b/ca=b/c1.881.881010-10-104.664.661010-10-10/a/a(绝对值)(绝对值)1.241.241010-10-103.733.731010-10-10a=b+ca=b+ca=b-ca=b-c2.332.331010-9-95.325.321010-9-9最小最小/b/b,/c/c(绝对(绝对值)值)a=sinba=sinba=cosba=cosb5.05.01010-9-91.01.01010-8-8绝对误差绝对误差(绝对误差)度(绝对误差)度a=ATANb/ca=ATANb/c1.81

61、.81010-6-63.63.61010-6-6相对误差取决运算结果。相对误差取决运算结果。使用二类误差的较小者。使用二类误差的较小者。绝对误差是常数,而不管决运算结果。绝对误差是常数,而不管决运算结果。函数函数TANTAN执行执行SIN/COSSIN/COS。注:如果注:如果SINSIN、COSCOS或或TANTAN函数的运算结果小于函数的运算结果小于1010-8-8,或由于运算精度的限制不,或由于运算精度的限制不为为0 0的话,设定参数的话,设定参数No6004#1No6004#1为为1 1。则运算结果可视为。则运算结果可视为0 0。影响运算精度的说影响运算精度的说明:明:加减运算加减运算

62、 由于用户宏程序的变量值的精度仅有由于用户宏程序的变量值的精度仅有8 8位十进位十进制数,当在加减运算中处理非常大的数时,得不到期望的结果制数,当在加减运算中处理非常大的数时,得不到期望的结果 例如;当试图把下面的值赋予变量例如;当试图把下面的值赋予变量#1#1和和#2#2时时:#1=9876543277777.777#1=9876543277777.777#2=9876543210123.456#2=9876543210123.456 变量值实际上已经变成变量值实际上已经变成:#1=9876543300000.000#1=9876543300000.000#2=9876543200000.0

63、00#2=9876543200000.000 此时,当变成计算此时,当变成计算#3=#1-#2#3=#1-#2时时,其结果,其结果#3#3并不是期望值并不是期望值 67654.32167654.321,而是而是#3=100000.000#3=100000.000,显然误差较大,实际计算的实际结果与此,显然误差较大,实际计算的实际结果与此还稍有误差,因为系统是以二进制执行的。还稍有误差,因为系统是以二进制执行的。逻辑运算逻辑运算 在使用条件表达式在使用条件表达式EQEQ、NENE、GEGE、LTLT、LELE时,时,也可能造成误差,其情形与加减运算基本相同。也可能造成误差,其情形与加减运算基本相

64、同。例如例如:IF#1EQ#2IF#1EQ#2的运算会受到的运算会受到#1#1和和#2#2的误差的影响,并不是的误差的影响,并不是总是能估计正确。要求二个值完全相同,有时不可能,由此会总是能估计正确。要求二个值完全相同,有时不可能,由此会造成错误的判断造成错误的判断 因此应该改用误差来限制比较稳妥,即用因此应该改用误差来限制比较稳妥,即用IFABS#1-IFABS#1-#2LT0.001#2LT0.001代替上述语句,以避免二个变量的误差。此时,当代替上述语句,以避免二个变量的误差。此时,当二个变量的差值的绝对值未超过允许极限(此处为二个变量的差值的绝对值未超过允许极限(此处为0.0010.0

65、01),就),就认为二个变量的值是相等的。认为二个变量的值是相等的。三角函数运算三角函数运算 在三角函数运算中会发生绝对误差,它在三角函数运算中会发生绝对误差,它不在不在1010-8-8之内,所以注意使用三角函数后的积累误差,由于三角之内,所以注意使用三角函数后的积累误差,由于三角函数在宏程序中的应用非常广泛,特别在极具数学代表性的参函数在宏程序中的应用非常广泛,特别在极具数学代表性的参数方程表达上,因此必须对此保持应有的重视。数方程表达上,因此必须对此保持应有的重视。2.5 2.5 赋值与变量使用中注意的问题赋值与变量使用中注意的问题 赋值是指将一个数据赋予一个变量。例如:赋值是指将一个数据

66、赋予一个变量。例如:#1=0#1=0,则表示,则表示#1#1的值是的值是0 0。其中。其中#1#1代表变量,代表变量,#是变量的符号(注意:数控系是变量的符号(注意:数控系统不同,表示方法有不同),统不同,表示方法有不同),0 0就是给变量就是给变量#1#1赋的值。赋的值。这里的这里的“=”是赋值符号,起语句定义的作用。是赋值符号,起语句定义的作用。赋值的规律与规定:赋值的规律与规定:赋值号赋值号“=”两边的内容不能互换两边的内容不能互换,左边只能是变量,右边可,左边只能是变量,右边可 以是表达式、以是表达式、数值或变量。数值或变量。一个赋值语句只能给一个变量赋值一个赋值语句只能给一个变量赋值。可以多次给一个变量赋值可以多次给一个变量赋值,新变量值取代原变量值(即最,新变量值取代原变量值(即最 后赋的值)生效。后赋的值)生效。赋值语句具有运算功能赋值语句具有运算功能,它的一般形式为:变量,它的一般形式为:变量=表达式。表达式。在变量运算中,表达式可以是变量自身,或与其它数据的在变量运算中,表达式可以是变量自身,或与其它数据的 运算结果,如:运算结果,如:#1=#1+1#1=#1+1,这

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!