1、 73fc94ac7aa6a400f9035882d346623a.doc - 131 -1程序构成 简述 主程序和子程序编程有两种形式,主程序和子程序。通常情况下,CNC操作依据主程序。当在主程序中遇到子程序呼叫指令时,控制则进入子程序。在子程序中遇到返回主程序指令时,控制返回主程序。 主程序 子程序 指令1 指令1 指令2 指令2 沿箭头方向进入子程序 指令n 指令n+1 返回主程序 主程序和子程序 CNC记忆可保存400个主程序和子程序(标准为63个)。可以从储存的主程序中选择一条主程序来操作机床。11 程序段结构这一讲述程序段的构成。参阅下图程序构成及程序段。% 标题 LF程序号O00
2、01 LFN1 LF顺序号组成段落(内容 )程序结束程序段M30 LF% 程序结构( ISO码使用举例) 程序号程序号由位址O跟4位数字构成用于记忆中每个程序开头以记录程序。在ISO码中用(:)替代O。在程序开头如果没有指定程序号,程序开头的顺序号作为它的程序号。如果是5位顺序号,则后4位作为程序号记录。如果后4位都为0,则记录增加1作为程序号,总之,N0不能作为程序号。如果在程序开头既无程序号也无顺序号,在程序存入记忆时必须用CRT/MDI面板指定程序号。注意)程序号8000至9999常用于机床制造商,所以用户最好别用这些号码。 顺序号及单节程序由若干指令构成,一个指令单位称为单节。单节在结
3、束时用EOB与其它单节分开。 EOB码名称ISO码EIA码本手册表示法单节结束(EOB)LFCR;在单节的开头,顺序号由位址N跟一个1 99999之间的数字来表示。顺序号可以随机给出,而且可以跳跃给出,顺序号可以每个单节或者仅在期望的单节给出。通常,随加工步骤以增大的顺序来指定顺序号(例如,在使用一把新刀具,工作台分度的新面加工等)。 G92 S_ ;最大主轴转速(rpm)后跟S码 顺序号及单节举例 注意)与其它CNC装置具有适应性不能使用0作为程序号。因此0不能用作顺序号而作为程序号。TV 检查(沿磁带纵向同位检查)同位检查用作横向输入的单节的检查。如果一个单节的字符数(从一个EOB之后开始
4、到下一个单节EOB的结束)是奇数,报警(No.002)输出。仅有那些使用标记跳跃功能跳跃的零件不做TV检查。用括弧括起来的注释段服从于TV检查来计算字母数。TV检查功能可以在MDI单元上设定。单节构成(字和位址)一个单节由一个或多个字组成。一个字由一个位址后跟一个数(在数字前可以加正号(+)或负号(-)。字 = 位址 + 数字 (例:X-1000)字母(A至Z)中的一个可以作为位址,一个位址定义了跟在位址后面数字的含义。下表表示可用的位址和它们的含义。同样的位址可能有不同的含义,由准备机能的规格来决定。 主要机能和位址 机 能位 址含 义程序号O(1)程序号顺序号N顺序号准备机能G指定一种动作
5、(直线,圆弧等)尺寸字X,Y,Z,U,V,W,A,B,C坐标轴移动指令I,J,K圆弧中心的坐标R圆弧半径进给机能F每分钟进给率,每转进给率主轴速度机能S主轴速度刀具机能T刀具号辅助机能M机床控制开/关B分度工作台,等偏移量量号D,H偏移量量号暂停P,X暂停时间程序号指定P子程序号重复次数P子程序重复次数参数P,Q固定循环参数注意)机能 机能号 机能 机能 速度 机能 辅助顺序 准备 尺寸字 进给 主轴 刀具 各种N- G- X- Y- F- S- T - M- ;1 ISO码中,冒号(:)也可以用于程序号的位址。 一个单节(举例)主要位址和指令值的范围主要位址和指定值的范围如下表。注意这些数值
6、限制表现为CNC侧,而不同于机床侧的限制。例如,CNC允许刀具沿X轴移动大约100m(毫米输入)。机能位 址mm输入Inch输入程序号O( 1)1-99991-9999顺序号N1-999991-99999准备机能G0-990-99尺寸字增量系统IS-BX, Y, Z, U,V,W, A, B, C,I, J, K, R99999.999mm9999.9999inch增量系统IS-C99999.999mm999.99999inch每分进 给增量系统IS-BF1-240000mm/min0.01-9600.00inch/min增量系统IS-C1-100000mm/min0.01-4000.00in
7、ch/min每转进给F0.001-500.00mm/rev0.0001-9.9999inch/rev主轴速度机能S0-200000-20000刀具机能T0-999999990-99999999辅助机能M0-999999990-99999999B0-999999990-99999999偏移量号H, D0-4000-400暂停增量系统IS-BX,P0-99999.999sec0-99999.999sec增量系统IS-C0-99999.999sec0-99999.999sec指定程序号P1-99991-9999重复次数P1-99991-9999然而,实际机床的规格沿X轴可能只有2m。同样,CNC控制
8、进给率可以达到240m/min,但机床可能不允许超过3m/min。当编制程序时,用户要仔细阅读机床的手册,要熟悉编程的限制。 主要位址和指令值的范围 注意)1 O码中,冒号(:)也可以用于程序号的位址。选择单节跳跃当单节前指定斜杠跟一个数字(/n(n=1至9),机器操作面板上选择单节跳跃开关n开,包含在/n对应的单节的资料在纸带操作或记忆操作时被忽略而不执行。当选择单节跳跃开关n设定为关时,包含在/n对应的单节的资料是有效的。这意味着操作者可以决定是否使用/n来跳跃单节。对于/1数字1可以省略不写。当一个或多个选择单节跳跃开关跟在一个单节后,/1的数字1不能省略。例) ( 错误 ) ( 正确
9、) /3 G00 X10.0 /1/3 G00 X10.0 ;当程序存入记忆时,这种功能被忽略。包含在/n的单节也被存入记忆内,而不管开关的设定。保存在记忆的程序输出时,则不管开关的设定。选择单节跳跃在顺序号查找时是有效的。根据各种机床,所有的选择单节跳跃开关/n不一定都使用。参照机床制造商的手册看使用哪些开关。 注意 1 斜杠的位置斜杠必须在单节前指定。如果斜杠在任意位置指定,从斜杠到EOB的资料就被忽略了。2 单节跳跃开关失效当单节从纸带或记忆读入缓冲器时执行选择性单节跳跃。即使在单节读入缓冲器之后打开开关,已读的单节不被忽略。注意)TV和TH检查当一个选择性单节跳跃开关打开后,和开关关闭
10、时的同样方式进行TV和TH检查。12 子程序如果一个程序中包含有一个固定的序列或重复频率的程序模块,象这种序列或模块可以作为一个子程序象正常程序一样存入记忆。主程序可以呼叫子程序。子程序可以呼叫其它所有的子程序。 格式 一个子程序子程序构成(选用ISO情况下是(:)O;M99;子程序号程序结束M99不一定写成一个单个的单节,可以如下表示例)X100.0 Y100.0 M99; M98 P ; 被呼叫子程序重复 子程序号执行的次数当没有指定重复数据时,子程序只被呼叫执行一次。子程序呼叫 说明 当主程序呼叫子程序时,它是一重子程序呼叫。因此,子程序可以做四重呼叫,如下图所示。 (第一重呼叫) (第
11、二重呼叫) (第三重呼叫) (第四重呼叫)O4000;M98P4000;:O3000;M98P3000;M99;O2000;M98P2000;O1000;O0001;M98P1000;M30;M99;M99;M99;主程序 子程序 子程序 子程序 子程序 : : : : : : : : : : : : : : : : : : : :一个单个呼叫指令可以重复呼叫子程序最多到9999次。对于兼容的编程装置,在第一个单节里,Nxxxx可以代替子程序O(或:)跟着的数字。在N后面的顺序号被认为是子程序号。 注意 1 M98和M99信号不输出到机床。2 不到位址指定的子程序号,输出报警(No. 078)
12、。 举例 M98 P51002;这条指令指定“呼叫子程序(程序号1002)5次”。子程序呼叫指令(M98P_)可以在移动指令单节中指定。X1000.0 M98 P1200;这个例子在X轴移动之后呼叫子程序(子程序号 1200)。从主程序呼叫子程序的执行顺序主程序 子程序N0010 O; N0010 O; N0020 O; N0020 O; N0030 M98 P21010; N0030 M98 P21010; N0040 O; N0040 O; N0050 O; N0050 O;子程序可以象主程序呼叫子程序一样呼叫另一个子程序。 特殊用途 指定顺序号返回目的主程序如果P在子程序结束时指定一个顺
13、序号时,控制并不返回呼叫单节的下一个单节,而返回到用P指定的顺序号的单节。注意,总之,如果主程序操作不在记忆操作模式,P被忽略。这种返回方式较一般返回方式费时较长。主程序 子程序N0010 ; O1010 ;N0020 ; N1020 ;N0030 M98 P1010 ; N1030 ;N0040 ; N1040 ;N0050 ; N1050 ;N0060 ; N1060 M99 P0060 ; 主程序中使用M99如果在主程序中执行M99,控制返回主程序开头。举例说,/M99放在程序中并执行M99;在主程序的适当位置设定选择性单节跳跃功能,在执行主程序时关掉。当执行M99时,控制返回到主程序的
14、开头,然后主程序从头开始重复执行。当选择性单节跳跃功能设定关时,重复执行程序。当选择性单节跳跃功能设定开时,/M99单节被跳过;控制进入下一个单节继续执行。如果指定了/M99 Pn;控制不返回程序开头,而是顺序号n。在这种情况下,返回到顺序号n要求的时间较长。 N0010 ; N0020 ;N0030 ;选择性 N0040 ;单节跳 N0050 ;跃关 / N0060 M99 P0030 ; 选择性单节跳跃开 N0070 ;N0080 M02 ; 只使用一个子程序 一个子程序用MDI方式可以象一个主程序一样呼叫子程序的开头。在这种情况下,如果执行包含有M99的单节,控制返回到子程序的开头重复执
15、行。如果执行包含有M99Pn的单节,控制返回到n指定的顺序号的单节重复执行。包含有/M02或/M30的单节必须放在适当的位置,且选择性单节跳跃必须设定为关(这个开关开始时设为开)来结束这个程序。N1010 ;N1020 ;N1030 ;/N1040 M02 ; 选择单节跳跃开N1050 M99 P1020 ;13 8位程序号8位程序号功能能够使位址O后跟8位数字(O00000001O99999999)作为程序号来编辑程序。 说明 不可编辑的程序可编辑的程序O00008000O00008999,O00009000O0000995。不可以编辑的程序O80000000O89999999,O90000
16、000 O99999999。 参 数 不可编辑的程序号NE8 (NO. 3202#0)O00008000 O00008999NE9 (NO. 3202#4)O00009000 O00009999PRG8E (NO. 3204#3)O80000000 O89999999PRG9E (NO. 3204#4)O90000000 O99999999( 注意 )在使用密码功能时输入错误密码,NE9(参数3204的bit3)和PRG9E(参数3204的bit4)不能改变。文件名对于指定范围的文件穿孔,命名如下;指定O00000001和O00123456;命名“O00000001-G”指定O12345678
17、和O45678900;命名“O12345678-G”当提供2轨迹控制时,第一轨迹文件名加后缀“-1”第二轨迹文件名加后缀“-2”。专用程序专用子程序号可以由参数3204的bit5来改变。1) 使用G码巨指令呼叫用于指定G码的参数参数号当SPPR=0时当SPPR=1时NO. 6050O00009010O90009010NO. 6051O00009011O90009011NO. 6052O00009012O90009012NO. 6053O00009013O90009013NO. 6054O00009014O90009014NO. 6055O00009015O90009015NO. 6056O00
18、009016O90009016NO. 6057O00009017O90009017NO. 6058O00009018O90009018NO. 6059O00009019O900090192) 使用M码呼叫巨指令用于指定M码的参数参数号当SPPR=0时当SPPR=1时NO. 6080O00009020O90009020NO. 6081O00009021O90009021NO. 6082O00009022O90009022NO. 6083O00009023O90009023NO. 6084O00009024O90009024NO. 6085O00009025O90009025NO. 6086O00
19、009026O90009026NO. 6087O00009027O90009027NO. 6088O00009028O90009028NO. 6089O00009029O900090293) 使用M码呼叫子程序用于指定M码的参数参数号当SPPR=0时当SPPR=1时NO. 6071O00009001O90009001NO. 6072O00009002O90009002NO. 6073O00009003O90009003NO. 6074O00009004O90009004NO. 6075O00009005O90009005NO. 6076O00009006O90009006NO. 6077O00
20、009007O90009007NO. 6078O00009008O90009008NO. 6079O00009009O900090094) 使用T码呼叫巨指令用于指定T码的参数参数号当SPPR=0时当SPPR=1时TCS(NO. 6001#5)O00009000O900090005) 使用ASCII码呼叫巨指令用于指定T码的参数参数号当SPPR=0时当SPPR=1时NO. 6090O00009004O90009004NO. 6091O00009005O90009005 6) 模板数据功能程序号当SPPR=0时当SPPR=1时O00009500O90009500O00009501O9000950
21、1O00009502O90009502O00009503O90009503O00009504O90009504O00009505O90009505O00009506O90009506O00009507O90009507O00009508O90009508O00009509O90009509外部程序号搜索外部输入信号可用于程序号的搜索,储存在CNC记忆中程序可用199999999之间的号码输入到CNC来选择。 限制 呼叫子程序这个功能在使用FS15纸带格式才能呼叫子程序。这种限制提供了一种使用外部I/O装置来呼叫一个程序(M198)(例如) M198 P12345678; 子程序号DNCO8位程
22、序号不能用于DNC1,DNC2,INTERNET,DATA SERVER和MMC-IV14 刀具外形及编程中刀具的运动 说明 加工使用切削刀具长度补正功能通常,加工一个工件要使用几把刀具。这些刀具长度不一样。根据这些刀具来改变程序是非常麻烦的。因此,要进一步测出每把刀具的长度。在CNC中(数据显示及设定,如下图)要设定这些刀具与基准刀具比较的长度差,这样,在加工时,就不用因换刀而改变程序了。这种功能叫做刀长补正。H4H3H2标准刀 H1Z0工件 加工中使用刀具半径补正功能因为刀具都有半径,沿工件运行的刀具轨迹的中心与加工工件存在一个半径差。加工工件形状工件刀具使用刀具半径补正时 如果刀具半径储
23、存在CNC中并且在加工时与加工零件保持有刀具半径的偏移量。这种功能叫做刀具半径补正。2控制轴 21 控制轴16系列18系列基本控制轴数33扩展控制轴数最多5轴(总共最多8轴)最多1轴+Cs轴(总共最多5轴)基本同步控制轴数22扩展同步控制轴数最多6轴最多5轴22增量系统增量系统名最小输入增量最小指令增量最大行程IS-B0.001mm0.0001inch0.001deg0.001mm0.0001inch0.001deg99999.999mm9999.9999inch99999.999deg增量系统名最小输入增量最小指令增量最大行程IS-C0.001mm0.00001inch0.00001deg0
24、.001mm0.00001inch0.00001deg9999.9999mm999.99999inch9999.9999deg不允许英制与公制混合使用.在不同单位系统的轴之间有些功能(如圆弧插补,刀具补正等)不能使用。对于增量系统请参阅制造商手册。23 最大行程最大行程 = 最小指令单位 999999993准备机能(G机能)字母G跟一个数字决定所涉及的单节的含义。G码分为如下两种类型。类 型含 义单一G码该G码只在指定的单节有效模态G码该G码在另一个同一群G码指定前一直效(例如)G01和G00在G码中是01群的。G01 X_ ; Z_ ; X_ ;G00 Z_ ;注意)1 标有的G码是开机时初
25、始状态的G码。对于G20和G21,保持关机前的G码。G00/G01/G17/G18/G19可以由参数(No.3402)的设定来选择。2 00群的G码是单一G码。G10是一次指定,在G11取消指定之前一直有效。3 如果输入了不在G码表中G码,或者选择了在系统中没有指定的G码,显示报警No.010。4 在同一单节中可以指定几个G码。在同一单节指定同一群G码超过一个时,最后指定的G码有效。5 如果在固定循环中指定了01群的G码,则固定循环自动取消及G80输入。总之,01群的G码在任一固定循环的G码中是无效的。6 G码分属于每一群中 G码表 G码群功能G0001定位G01直线插补G02顺时针圆弧插补/
26、螺旋线插补G03逆时针圆弧插补/螺旋线插补G0400暂停, 确实停止G05高速循环加工G07.1(G107)圆柱插补G09确实停止G10数据设定G11数据设定取消G12.1(G112)25极坐标插补模式G13.1(G113)极坐标插补模式取消G1517极坐标指令取消G16极坐标指令G1702选择XpYp平面Xp:X轴或平行X轴Yp:Y轴或平行Y轴Zp:Z轴或平行Z轴G18选择ZpXp平面G19选择YpZp平面G2006英制输入G21工致输入G2204存储行程检查开G23存储行程检查关G2700原点返回检查G28原点返回G29从参考位置返回G30第二,三,四原点返回G30.1浮动原点返回G31跳
27、跃功能G3301螺纹切削G3700自动刀具长度测量G39圆弧插补转角偏移量G4007刀具半径补正取消G41刀具半径左补正G42刀具半径右补正G40.1(G150)19通常方向控制取消模式G41.1(G151)通常方向控制左边开G42.1(G152)通常方向控制右边开G4308刀具长度正向补正G44刀具长度负向补正G4500刀具偏移量增加G46刀具偏移量缩小G47刀具偏移量双倍增加G48刀具偏移量双倍缩小G4908刀具长度补正取消G5011比例取消G51比例G50.118可编程镜像取消G51.1可编程镜像G5200局部坐标系设定G53机械坐标系G5414工件坐标系1G54.1附加工件坐标系G55
28、工件坐标系2G56工件坐标系3G57工件坐标系4G58工件坐标系5G59工件坐标系6G6000单向定位G6115 停止检查模式G62自动转角超弛G63攻牙模式G64切削模式G6500巨指令呼叫G6612模态巨指令呼叫G67模态巨指令呼叫取消G6816坐标系旋转G69坐标系旋转取消G7309啄进钻孔循环G74左螺纹攻牙循环G7609精镗孔循环G8009固定循环取消/外部操作功能取消G81钻孔循环G82钻孔或反镗孔循环G83啄进钻孔循环G84攻牙循环G85镗孔循环G86镗孔循环G87反镗孔循环G88镗孔循环G89镗孔循环G9003绝对坐标指令G91相对坐标指令G9200设定工件坐标系/或钳住主轴最
29、高转速G9405每分钟进给G95每转进给G9613恒定表面速度控制G97恒定表面速度控制取消G9810固定循环初始点返回G99固定循环R点返回4.插补功能 41 定位(G00)G00指令使刀具以绝对或相对指令快速移到工件系统指定的位置。在绝对指令状态下,编程端点的坐标值。在相对指令状态下编程中刀具移动的距离。 格式 G00 IP_; IP_ :对于绝对指令,端点的坐标值。对于相对指令,是指刀具移动的距离。 说明 刀具轨迹通常不是一条直线。起点直线定位非直线定位终点 G00指令的快速移动速度是由参数No.1420由机床制造商来设定的。在实际执行G00时,刀具在单节的开始加速到预先指定的速度并在单
30、节的结束减速。在确认到位后执行下一单节。到位的含义是指进给马达在指定的误差范围内。这个范围是由制造商在参数No.1826中设定的。 限制 快速速度不需要指定位址F。42 单向定位(G60)在实际定位中为不受机床的背隙的影响,可以从一个方向最终定位。接近距离起始位置终点起始位置临时停止位置 格式 G60 IP_; IP_ :对于绝对指令,端点的坐标值。对于相对指令,是指刀具移动的距离。 说明 接近距离和定位方向由参数(No.5440)设定。甚至在指令的定位方向与参数设定的方向一致时,刀具在到达终点前也要停止一次。G60是单一G码,但也可以通过设定参数(No.5431 bit 0 MDL)为1使之
31、成为01群的模态G码。这个设定可以省去在每个单节指定G60。其它规定与单一G码一样。当单一G码指定为单向定位模式时,单一G码象01群其它G码一样有效。 举例 使用单一G码时使用模态G码时 : :G90;G90 G60; 单向定位模式开始G60 X0 Y0; 单方向定位X0 Y0; 单向定位G60 X100;X100;G60 Y100;Y100;G04 X10;G04 X10; 暂停G00 X0 Y0;G00 X0 Y0;单向定位 : : 模式取消 限制 在钻孔固定循环过程中,Z轴的单向定位是无效的。 在参数中不设定接近距离的的轴,单向定位无效。 指定移动距离为0,单向定位不执行。 参数设定的方
32、向在镜像时无效。 单向定位在G76和G87固定循环中的让刀时无效。43 直线插补(G01)刀具沿直线移动。 格式 G01 IP_ F_ ; IP_ : 对于绝对指令,指端点的坐标,相对指令是指刀具移动的距离。 F_ : 刀具进给的速度(进给率) 说明 刀具以指定的进给率F沿直线移动到指定的位置。进给率F有效直到赋予新值,不需要在每个单节都指定。F码指定的进给率是沿刀具轨迹测量的。如果不指定F值,则认为进给率为零。每个轴的进给率方向如下: 限制 G01 Ff ;轴方向的进给率:F=/L f轴方向的进给率:F=/L f轴方向的进给率:F=/L f轴方向的进给率:F=/L fL2 = 2 + 2 +
33、 2 + 2 举例 直线插补( 起始位置) 200.0100.0(终点)( G91)G01 X200.0 Y100.0 F200.0 ;Y 0 X 旋转轴的进给率进给率300deg/min (终点)90(起点)91 G01 C-90.0 F300.0 ; 进给率300deg/min 44 圆弧插补(G02,G03)下列指令使刀具沿圆弧移动 格式 XpYp平面的圆弧 G17 G02Xp_ Yp_ I_ J_F_ ;G03R_ ZpXp平面的圆弧 G18 G02Xp_ Zp_ I_ K_F_ ;G03R_ YpZp平面的圆弧 G19 G02Yp_ Zp_ J_ K_F_ ;G03R_ 指令格式的说明 指令说 明G17指定圆弧在XpYp平面G18指定圆弧在XpZp平面G19指定圆弧在YpZp平面G0