FANUC与SIEMENS,是两种最常用的数控系统,它们有很多相似之处,但代码表达方式却不尽相同,本文通过各种常用编程指令的格式对比,为需要在两种格式之间进行程序转换的编程者提供一些应用参考,提高编程水平。
笔者公司多年来购买了许多种类的数控加工中心,最初主要以FANUC 0i—MA系统为主,后来多为西门子840D系统,编程员就需要经常将原来的FANUC程序转换成西门子程序后再下发机床,经验较丰富的编程员可以很快地完成,但初次接触西门子系统的编程员经常将格式搞错,要么导致程序无法下发,要么加工中程序格式报警,下面笔者结合自己平时的编程经验,将两种系统放在一起,通过对比说明,以共同提高编程水平。
一、程序命名规则
FANUC机床将“WP1-CUXI”读取为程序名,字符串间用“-”连接;西门子机床将“WP1_CUXI”读取为程序名,字符串间用“_”连接,“MPF”表示为主程序,若为“SPF”则自动放入子程序文件夹。此外,在任意程序段,需要书写字符串的地方都应遵循FANUC使用“-”、西门子使用“_”。
二、刀具长度与半径补偿
FANUC程序需使用“H1”对刀具T1进行长度补偿,使用“D1”对刀具T1进行半径补偿,H值与D值分别存储在OFFSET面板的长度补偿与半径补偿栏。而西门子程序只需在调用刀具后移动刀具前执行“D1”即可同时进行长度和半径补偿,西门子的“D1”表示的含义是“刀沿1”,其在OFFSET面板中对应了一组刀具长度和刀具半径,每把刀均拥有若干组刀具长度和刀具半径,即若干个“刀沿”D1~D9(840D有9个,810D、802D有3个),一般刀具都使用各自的D1即可。需要特别指出的是,840D每个刀沿包含3个长度补偿值,通常“长度补偿1”保存当前加工平面(由G17、G18、G19决定)对应刀具轴的铣刀长度补偿值,不同刀具种类3个长度补偿值含义不同。
三、程序段注释符号与选择性跳段
FANUC程序段注释格式为“(注释内容)”,西门子程序段注释格式为“;注释内容”,两者均可放置在程序行任意位置,注释内容不以数控代码执行。程序段选择性跳跃标识符均为“/”,当面板上选择性跳跃按键激活,当前程序段“/”后面的程序段不执行。
四、圆弧插补
FANUC程序走圆弧示例“G02X10Y20R-5”,西门子用“CR=”代替“R”,就变为“G02X10Y20CR=-5”。走整圆(圆弧通用)程序格式相同,均可使用“G02/G03 X..Y..Z..I..J..K..”,通过赋值I 、J 、K ,表达圆心相对起点的相对坐标值, 确定圆心位置。此外, 西门子提供了另一种确定圆心位置的表达方法“G02/G03 X..Y..Z..I=AC(..)J=AC(..)K=A C(..)”,AC(..)可以表示圆心的绝对坐标值。当然,此赋值方法也可使用在别的字段上,例如:“G01X=A C(..)Y=AC(..)”,若当前为“G91”表示相对坐标状态,则可通过“=AC(..)”暂时赋值绝对坐标值;相反,若当前为“G90”表示绝对坐标状态,则可通过“=IC(..)”暂时赋值相对坐标值,我们可以根据已知条件选择合适的赋值格式,提高编程效率。
五、螺旋插补
FANUC螺旋线程序示例“G17G03X10Y0Z2I-10”,机床会在X Y 平面走圆弧的同时再同步运行Z 轴,执行出一条不超过360°的螺旋线;西门子相应示例为“G17G03X10Y0Z2I-10J0TURN=0”,其中“TURN=0”表示此段螺旋线无整圆部分,即不超过360°,通过改变字符串“TURN”的赋值,可以控制螺旋线整圆数量。
六、固定循环
FANUC钻孔循环使用ISO标准的G代码,西门子钻孔循环使用自家的C Y C L E循环,固定循环执行步骤与参数含义大同小异,这里就不细讲,我们主要讨论一下循环的模态调用问题。FANUC的钻孔循环默认为模态调用,而西门子的CYCLE循环默认只执行一次,必须使用“MCALL”封装CYCLE循环及其点位,才能实现模态调用,例如:
七、倒角、倒圆
FANUC程序若在直线圆弧的拐角处插入倒角的话,可以在拐角点之前程序末尾加上“, C…”,若倒圆则加上“,R…”;西门子对应上述指令,倒角为“CHR=”,倒圆为“RND=”。另外西门子在倒角时还可给定其本身的直线长度进行倒角“CHF=”。
八、宏程序
FANUC程序中局部变量用“# n”(1≤n≤3 3)表示,西门子程序中局部变量用“R n”(默认0≤n≤99)。FANUC程序若给字段赋值直接在字段后跟变量,例如“G 0 1 X # 1 Y # 2 Z # 3”;而西门子程序必须使用赋值符号“=”,例如:“G01X=R1 Y=R2 Z=R3”。FANUC程序中表达式封装使用“[ ]”,如:“#1=S I N[[#2+#3]*#4]”,而西门子程序表达式封装用“( )”,上面范例就变为:“R1 = SIN ( ( R2 + R3 ) * R 4 )”。FANUC程序的跳转语句为“GOTO”,而西门子除了“GOTO”,还可使用“GOTOB”与“GOTOF”。“GOTO”的含义两者都一样:先朝程序结束方向搜索,再跳转到程序开始处继续搜索;而使用“GOTOB”可直接控制向“程序开始方向”搜索,“GOTOF”直接控制向“程序结束方向”搜索。FANUC程序中跳转目标直接用程序段号表示:“GOTO123”表示跳转至“N123”处,西门子程序的跳转目标可以用程序段号表示:“GOTO N123”,也可以用字符串所标记位置,例如:“GOTOL B1”意为跳转到字符串“L B1”标记处“L B1:……….”。这里必须指明西门子字符串的命名规则:名称前两位必须是字母或者“_”,以示其与普通字段的区别,例如:“X1”的含义变为了加工轴X1,不能作为字符串名称。另外需要注意的格式问题是,FANUC程序条件判断语句中的条件需要用“[ ]”封装;西门子程序中需要用空格隔开,例如:
九、轨迹控制
注:单方向精确定位,适合钻孔时消除反向间隙。
FANUC机床默认为G64,西门子机床默认为G60。要想得到准确的尖角,必须在准停状态走刀;想提高加工效率,不需要精确的尖角,则可取消准停,机床在拐角处不减速,从而提高表面加工质量。对于西门子机床,若使用较多点位模拟加工曲线或曲面,则适合在G64状态下加工,同时配合使用加速度控制指令SOFT(恒定加速度方式),消除点位间停顿,减小冲击,得到较好表面质量,如表所示。
十、进给控制
FANUC程序中G62开启内拐角自动倍率功能,但需在相应机床参数中设置相关值;而西门子机床有较为完善的拐角进给控制指令:CFTCP、CFC、CFIN。CFTCP:刀具中心点按给定F值进给;CFC:走内R 减速,走外R 加速,保持刀具外廓(即刀具与工件接触点)按给定F 值进给;CFIN:走内R 减速,走外R 时刀具中心点按给定F 值进给。因西门子默认为CFC模式,所以当使用大直径刀具加工外R 时,F 值加速会比较明显,编程时应考虑此因素,如有必要则应执行CFTCP或CFIN命令。
十一、结语
经以上对比,虽未涵盖两数控系统所有类型指令,但却是实际应用中最应该注意和掌握的。虽然西门子提供了ISO代码执行模式(G291),但很多特色功能代码还是必须在西门子模式(G290,默认状态)下才能执行。
FANUC与华中数控系统中常用指令的对比分析