




已阅读5页,还剩276页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
用户宏程序,1,一、变量的使用二、系统变量三、运算命令四、循环语句五、程序案例六、宏程序的调用七、宏语句的处理八、中断宏程序九、格式数据输入,主要内容:,用户宏程序,2,单元一、概述,用户宏程序,3,主程序,宏程序,一、用户宏程序用途,用户宏程序,4,形状类似但大小不同(圆、方及其它),其它,自动化功能(刀具长度测量)换刀功能,特殊形状(椭圆、球等),大小相同但位置不同(组孔、阵列等),二、宏程序的适用范围,加工程序编程,生产管理,PMC强电控制,用户宏程序,5,三、宏程序与子程序的比较,用户宏程序,6,四、宏程序相关的参数,#5(SBM)用户宏程序语句中,0:单程序段不停止1:单程序段停止,#6(CCV)复位(Reset)后,公共变量#100#1990:清空1:不清空#7(CLV)复位(Reset)后,局部变量#1#330:清空1:不清空0i-D没有6001#7设置,用户宏程序,7,#4(NE9)编辑程序号为90009999的程序0:不禁止1:禁止,#6(NPE)程序登录时,对含有M02,M99,M30的程序段0:视为登录结束1:不视为登录结束,NE8,五、宏程序的保护,1、参数设置,用户宏程序,8,3210密码锁,3210密码锁设置时须谨慎,若使用G10可编程数据输入时,则出现PS0231#报警,3211密码钥匙设定值后不显示,断电后为0,参数6001#5设为1T代码调用宏程序,2、密码保护,用户宏程序,9,变量的表示变量的种类变量的显示与设定变量的使用未定义变量公共变量名称,单元二、变量,用户宏程序,10,第二章变量,用户宏程序,11,一、变量的表示,例:#10,#1005表达式也可以用于指定变量号,但需封闭在括号内例:#2-1,#500/2可在程序段结尾加注释说明变量内容,但需用括号封闭例:#2=#3-1(TOOLNUMBER),变量符号(#)+变量号,变量的表示方法,用户宏程序,12,二、变量的种类,用户宏程序,13,三、局部变量、公共变量、系统变量的用途和特性,局部变量:#1#33,初始状态为,自变量输入可用程序或MDI方式输入,可以自由使用,属性READ/WRTIE.公共变量:#100#199、#500#999,共600个,在主程序或调用的各子程序以及各个宏之间的通用.公共变量的用途没有在系统中确定,用户可自由使用.#100#199断电不保护,#500#999断电保护,属性READ/WRTIE.公共变量的写保护:参数60316032对#500#999进行保护,属性为READ,以防止输入/全清的误操作.系统变量:在系统中固定,属性有只读、只写、可读可写三种.系统常量:其值不变的常量,属性只读.,用户宏程序,14,四、变量的显示与设定,变量的显示,1).按下MDI面板上的功能键,OFFSETSETTING,2).按几次键,直至出现,用户宏程序,15,3).按下显示宏程序变量值,用户宏程序,16,4).按、显示局部和公共变量值,用户宏程序,17,公共变量的设定,1.找到显示公共变量的画面。2.将光标移至欲设定的变量号上。键入变量号并按键或按换页键、和光标键将光标移至欲设定的变量号上3.键入数据并按,用户宏程序,18,五、变量的使用,#i=,将计算结果赋值给对应的变量号,常数、变量、函数和运算符的组合,表示方法,#1=#2+100;#1=#2+#18SIN#5;,用户宏程序,19,当在程序中定义变量值时,小数点可以省略,#1=123;,#1,123.000,变量的引用,跟在地址后面的数值可用变量来代替。,G01X10.0F#1;,F,把#1值作为F的指令值,G01X-#1+#2F#1;,把表达式放在括号中,变量的赋值,用户宏程序,20,变量用于地址数据时,被引用变量的值根据地址的最小设定单位自动地四舍五入,例:G01X#1;当#1赋值为12.3456时,实际指令值为G01X12.346;设定单位1/1000mm(IS-B),改变引用变量的值的符号时,要把负号放在#的前面,例:G00X-#1;,用户宏程序,21,当引用未定义的变量时,变量及地址字都被忽略,例:G00X#1Y#2;当#1=0,#2为空时实际指令为G00X0;,程序号、顺序号和任选程序段跳转号不能使用变量.以下表述是错误的.,O#1;N#3Y200.0;/#2G00X10.;,用户宏程序,22,参数6008#0为0时,最大值,最小值参数6008#0为1时,最大值,最小值超出范围出现PS0111#报警,变量的范围,角度单位为度,角度单位为度(),最小指令单位0.001,用户宏程序,23,六、未定义变量,当变量值未定义时,这样的变量成为变量,变量#0总是空变量,它不能写只能读,未定义变量的引用,当引用一个未定义的变量时,地址本身也被忽略,用户宏程序,24,系统变量与常量可通过变量号指定,也可通过事先准备的系统变量(常量)名称来指定.1.系统变量它由(下划线)开始8个英文字母、数字构成.对轴和刀具补偿,作为名称的标号,可用n(n为整数),n可用即运算格式指定.,七、系统变量与常量的名称,用户宏程序,25,注意:当n指定整数以外的数值时,n小数则按四舍五入处理.,2.系统常量属性R,例#-ABSIO1.4999999:假定此值为#-ABSIO1,也即#5001例#-ABSIO1.5000000:假定此值为#-ABSIO2,也即#5002,用户宏程序,26,八、公共变量的名称,由SETVN指定设定变量名称,即可读取或写入.指令格式如#VAR500,必须以#公共变量名称的格式指定.公共变量名称设定和指令时,可赋值#500#549,共50个,公共变量8个字符,开头必须是字母,断电不消失.例如:SETVNnAVR500,AVR501,AVR502,.;变量号n、n+1、n+2的变量名称:各字符串之间以“,”隔开.字符除了控制出、控制入、EOB,用户宏程序,27,九、设定和指令,用户宏程序,28,单元三、系统变量,用户宏程序,29,接口信号刀具补偿坐标系偏移(T)CNC报警时钟和零件数时间信息自动运行控制设定,单元三、系统变量,用户宏程序,30,模态信息位置信息刀具长度补偿值伺服位置、手轮中断、剩余运动量工件原点偏移,系统变量读取CNC内部信息数据,如模态信息、坐标位置、刀具补偿等,系统变量对自动化程序和通用程序十分重要.系统变量及常量.n表示标号,属性R表示只读、W表示只写、R/W表示可读/可写.,用户宏程序,31,一、接口信号,用户宏程序,32,用户宏程序,33,用户宏程序,34,用户宏程序,35,用户宏程序,36,用户宏程序,37,举例,用户宏程序,38,用户宏程序,39,1.变量范围:#2001#2800、#10001#13400(属性R/W)2.刀补A:参数8136#6为13.刀补小于等于200个,变量使用范围#2001#2200,二、刀具补偿量(M),用户宏程序,40,4.刀补400个:补偿个数为400,#10001#10400,用户宏程序,41,刀具补偿(M),刀具补偿存储器A,参数8136#6,为0i-D适用,用户宏程序,42,刀补补偿存储器C,参数8136#6=0;6000#3=0,用户宏程序,43,刀补补偿存储器C,刀补补偿存储器C,参数8136#6=0;6000#3=1,用户宏程序,44,无刀具形状/磨损补偿器,参数8136#6=1刀具补偿个数小于等于64个,刀具补偿(T),用户宏程序,45,刀具形状/磨损补偿器,参数8136#6=0,刀具补偿(T),用户宏程序,46,刀补C长度补偿,参数8136#6=0,补偿个数小于等于200个,参数6000#3=0.长度补偿参数6000#3=1,补偿个数小于等于200个.长度补偿(F10/F11),用户宏程序,47,刀具半径补偿,参数8136#6=0,补偿个数小于等于200个,参数6000#3=16004#5=1(F10/F11)半径补偿,用户宏程序,48,补偿个数为400个(小于等于200个也可使用#2001#2800),参数6000#3=0,用户宏程序,49,参数6000#3=1,用户宏程序,50,长度补偿举例,写入,读取,用户宏程序,51,范围:#20012964、#10001#19200(属性R/W)无刀具形状和磨损补偿器:8136#6=1,补偿个数小于等于64个,刀具补偿量(T),用户宏程序,52,用户宏程序,53,补偿个数200个,补偿个数小于等于64个,也可使用#2001#2499.,用户宏程序,54,有刀具形状和磨损补偿器:8136#6=1,刀补个数小于等于64个磨损补偿,用户宏程序,55,几何补偿,用户宏程序,56,补偿个数200个,补偿个数小于等于64个,也可使用#2001#2964.,用户宏程序,57,工件坐标系偏移(T),三、工件坐标系偏移(T),可以利用系统变量#2501读取X轴的工件坐标系偏移量的值,利用#2601读取Z轴的工件坐标系偏移量的值。此外,将值代入系统变量,可以改变X轴和Z轴的工件原点坐标系偏移量。,#2501、#2601(属性:R/W)工件坐标系偏移量,用户宏程序,58,工件坐标系偏移量,读取,写入,用户宏程序,59,四、CNC报警,参数6008#1=0表达式后为不超过26个字符的报警信息屏幕上显示报警号和报警信息,报警号为#3000的值加上3000,#3000=1(WRONGDATAINPUT);,屏幕显示:,3001WRONGDATAINPUT,例:,注释:,用户宏程序,60,CNC报警有以下两种使用情况:参数MCA(No.6008#1)=0时#3000=n(ALARMMESSAGE);(n:0200)将3000与变量#3000的值相加的报警号和报警信息一起在画面上显示出来。(例)#3000=1(ALARMMESSAGE);报警画面上显示出“3001ALARMMESSAGE”。参数MCA(No.6008#1)=1时#3000=n(ALARMMESSAGE);(n:04095),继MC后,画面上显示出#3000报警号和报警信息。(例)#3000=1(ALARMMESSAGE);报警画面上显示出“MC0001ALARMMESSAGE”。,用户宏程序,61,时钟控制例如:2009年1月20日下午4时17分5秒#3011=20090112#3012=161705,五、时钟和零件数,用户宏程序,62,零件数刀补存储器(M)#3980主程序号,主程序号#4000(属性:R),MDI及DNC方式#4000的值就改变为此时指定的0号.#4000不管出在哪个层次的子程序内,始终读取主程序号,用户宏程序,63,六、时间信息,计时器地址#3001、#3002(属性:R/W),用户宏程序,64,用户宏程序,65,七、自动运行控制,#3000#3008,时钟计时器,用户宏程序,66,自动运行控制,当电源接通时复位,#3003的值为0.当单程序段停止无效时,即使操作面板上的单程序段开关设为ON,也不执行单程序段停止.当不指定等待辅助功能(M、S和T功能)完成信号时,在辅助功能完成之前程序执行到下列程序段,而且分配完成信号DEN不输出.注意不要在没有等待完成信号下指令下一个辅助指令.,#3003(属性R/W),用户宏程序,67,可通过变量名称实现个别控制.,例钻孔循环(增量编程)宏程序调用指令(相当于G81),用户宏程序,68,准确停止方式G09G61,#3004(属性R/W)复位被清除,用户宏程序,69,变量名称指令,用户宏程序,70,变量名称指令,用户宏程序,71,当电源接通时,#3003和#3004的值为0.当进给暂停无效时.1当进给暂停按钮被按下时,机床在单段停止方式停止,但是当用变量#3003使单程序段方式无效时,单程序段停止不执行.2当进给暂停按钮压下又松开时,进给暂停灯亮但是机床不停止,程序继续执行,并且机床停在进给暂停有效的第一个程序段.当进给速度倍率无效时,总是100%的倍率,而不管机床操作面板上的进给速度倍率开关的设置如何.,#3003=1#3004=1时的运行情况,用户宏程序,72,攻丝案例,攻丝宏程序,用户宏程序,73,八、SETTING值,#3005(属性:R/W)处理的数值为将二进制转换成十进制的数值,用户宏程序,74,伴随信息同时停止,#3006(属性W)宏指令发出#3006=1(MESSAGE),程序即可在一个程序段停止,控制输入输出字符26个字符以内,并使用括弧括起来.,用户宏程序,75,镜像状态,#3007(属性:R)镜像的状态,通过读取#3007,即可得知每个轴在该时刻的镜像(设定或DI)的状态,轴与二进制显示时的各位(bit)对应:,用户宏程序,76,用户宏程序,77,9、模态信息,1.#4001#4130程序段前指定的模态信息2.#4201#4330当前正在执行的程序段的模态信息3.#4401#4530被中断型用户宏程序中断的程序段之前指定的模态信息,用户宏程序,78,模态信息(M),用户宏程序,79,模态信息,用户宏程序,80,模态信息(M),用户宏程序,81,模态信息(M),用户宏程序,82,模态信息(T),用户宏程序,83,用户宏程序,84,模态信息分类(M),分类:之前的程序段、执行中的程序段、被中断的程序段,用户宏程序,85,用户宏程序,86,模态信息分类(T),分类:之前的程序段、执行中的程序段、被中断的程序段,用户宏程序,87,用户宏程序,88,例如,用户宏程序,89,十、位置信息,用户宏程序,90,位置信息,#5001#5065(属性:R)位置信息包括程序段的终点位置、当前位置(机械坐标系、工件坐标系)、跳过信号位置,用户宏程序,91,用户宏程序,92,位置信息,例:读取X轴的位置信息,程序指令,X轴坐标位置,变量地址号,用户宏程序,93,十一、刀具长度补偿(M),用户宏程序,94,刀具长度补偿(M),#5081#5085(属性:R)当前正在执行的程序段中的刀具长度补偿量,用户宏程序,95,刀具长度补偿,例:使用刀具长度补偿(M),用户宏程序,96,刀具位置偏置(T),用户宏程序,97,刀具位置偏置(T),#5081#5085(属性:R),用户宏程序,98,刀具位置偏置(T),#5081#5085,#5121#5125(属性:R),用户宏程序,99,用户宏程序,100,刀补C几何补偿磨损补偿,用户宏程序,101,伺服位置偏差,#5101#5105(属性:R)伺服位置偏差值,十二、伺服位置手轮中断剩余移动,用户宏程序,102,手轮中断,#5121#5125(属性R)手轮中断值(T),用户宏程序,103,剩余移动量,剩余移动量#5181#5185(属性R),用户宏程序,104,十三、工件原点偏移(基本)M系列/T系列,用户宏程序,105,工件原点偏移,#5201#5325(属性:R/W)工件原点偏移,用户宏程序,106,工件原点偏移(M/T),写入,读出,用户宏程序,107,(M),用户宏程序,108,用户宏程序,109,(T),用户宏程序,110,用户宏程序,111,附加坐标系(M),用户宏程序,112,附加坐标系(M),#7001#7945(属性R/W)附加坐标系系统变量号=7000+(坐标系号-1)20+轴号,用户宏程序,113,系统变量号=14000+(坐标系号-1)20+轴号工件坐标系组数追加48组,设定为有效参数N0.8136#2=0有效,#14001#14945附加坐标系,用户宏程序,114,用户宏程序,115,单元四、运算指令,表达式运算命令的种类运算顺序关于加工精度宏语句与NC语句的区别,用户宏程序,116,运算指令右边的可以是常量、变量、函数或算符的组合表达式中使用不带小数点的常量,一、表达式,用户宏程序,117,二、运算命令的种类,加减乘除,用户宏程序,118,注:三角函数的角度单位为度()。如:9030表示为90.5,三角函数,用户宏程序,119,反三角函数的取值范围,#1=SIN90;#1=COS90;#1=TAN45;#1=ATAN1/1;#1=ATAN-1/-1;,1,0,1,45,225,#1#1#1#1#1,反三角函数,用户宏程序,120,#2=2;#1=SQRT#2;,1.414,#1,其它函数,用户宏程序,121,下取整(FIX):舍去小数点以下部分上取整(FUP):将小数后部分进位到整数部分ROUND函数:在算术运算或逻辑运算指令中使用时,在第1个小数位置四舍五入在NC语句地址中使用时,根据地址的最小设定单位将指定值四舍五入,数据处理函数,用户宏程序,122,1.0,2.0,-1.0,-2.0,1.0,1.2346,-2.0,1.6794,计算相应的变量值#1,下取整(FIX):舍去小数点以下部分上取整(FUP):将小数后部分进位到整数部分,用户宏程序,123,三、运算顺序,函数乘除运算(,/,AND)加减运算(+,-,OR,XOR),#1=#2+#3SIN#4;,用户宏程序,124,可以利用来改变运算顺序,可嵌套5次,可以使用函数名前面的两个字母来指定该函数。ROUNDROFIXFI,注意,用户宏程序,125,四、关于加工精度,参数6008#0=0需要注意的是,当绝对值被减掉时,不能将相对误差控制在低于10-15,原因在于用户宏程序变量只有10进制15位的控制精度.加减法的运算EQNEGTLTGELE基本上与加减法运算相同,需要注意其误差.逻辑关系例如:IF#1EQ#2IFABS#1-#2LT0.1,必须评价此时的误差,如果#1和#2的差在该误差的范围内,则可以认为其值相等.三角函数在三角函数运算后进行乘法除法运算时需要引起注意.,注意事项,用户宏程序,126,FIX函数FIX函数也要同样注意其精度.N1#1=0.002;N2#2=#1*1000;N3#3=FIX#2;此时#3不见得就成为2,为了预防此情况,应按照如下指定N3#3=FIX#2+0.001,用户宏程序,127,用户宏程序,128,注意:误差还会来自使用6个条件表达式,例IF#1EQ#2受#1和#2的误差影响,可能导致判断错误.因此,如IFABS#1-#2LT0.001所示,求出两个变量之差,如果该差值不超过允许值(例子中为0.001),则可以这两变量的值相等.对一个数值进行只舍不入时,应十分小心例#1=0.001计算#2=#1*1000;时,#2的结果不正好是2,而是1.99999997.此时,如果指定#3=FIX#2;变量#3的结果不正是2.0而是1.0.在这种情况下,进行误差修正之后,对该值应进行只舍不入或四舍五入,使结果大于预期的整数值.#3=FIX#2+0.001;#3=ROUND#2;,用户宏程序,129,表达式括号的使用,在表达式中使用的括号为方括号,注意圆括号()用于程序注释.除法运算中分母为”0”时,则会出现(PS0112#报警).当指定超出控制轴数时,则会出现(PS0115#报警变量号超限).括号的嵌套超过5位,则会出现(PS0118#报警).自然对数,当逆对数(#j)小于等于0时,则会出现(PS0119#报警).指数函数,运算结果溢出时,则会出现(PS0119#报警).,用户宏程序,130,五、用户宏程序的特点,含运算指令(=)的程序段含控制指令(如GOTODOEND)的程序段含宏指令(由G65G66G67G代码或M代码的宏指令的程序段。除宏语句以外的程序段称为NC语句.即使在单程序段方式,机床也不会停止,但是,当参数SBM(N0.6000#5)设为1时,在单程序运行方式中机床停止。在刀具半径补偿方式中,宏程序语句段不作为不移动程序段处理。,用户宏程序,131,含有子程序调用指令(例如用M98或其它M代码或用T代码调用子程序)但没有除O,N或L地址之外的其它地址指令的NC语句其性质与宏程序相同不包含除O、N、P或L以外的指令地址的程序段,其性质与宏程序语句相同,与宏程序语句有相同性质的NC语句,用户宏程序,132,单元五、控制指令,无条件转移(GOTO语句)条件转移(IF语句)条件表达式循环(WHILE语句)限制,用户宏程序,133,改变流程,1在程序中,可以使用GOTO语句和IF语句等来改变程序的流程.2转移和重复有下列三种,用户宏程序,134,一、无条件转移(GOTO语句),GOTOn;n:程序段号(1-99999),该语句使程序无条件地转移到程序段n去。例如,n也可用变量或表达式来代替例如GOTO#10;当顺序号在199999范围以外,就会出现(PS1128#报警)警告:不可在一个程序中指定多个相同顺序号的程序段,若是这样,利用GOTO语句转移时,转移目的地不确定,这样十分危险.,GOTO10;,用户宏程序,135,顺序号存储型GOTO在执行控制指令GOTO语句时,对于以前执行并存储的顺序号,高速地进行顺序号检索,以前执行并存储的顺序号,指就所执行的顺序号在相同程序内没有重复的顺序号以及子程序调用的顺序号,CNC对此进行存储,用户宏程序,136,存储的顺序号在下列情况下将被取消通电、复位、程序的登录和编辑(含后台及MDI的程序编辑)时,请勿在一个程序中指定多个相同的程序段号。这样十分危险。,用户宏程序,137,IFGOTOn;,若满足,则下步操作转移到程序段号为n的程序段去若不满足,执行下个程序段。,二、条件转移(IF语句),IFTHEN;,若满足,执行THEN后的宏程序语句,只执行一个语句。例:IF#1EQ#2THEN#3=0;,用户宏程序,138,条件表达式,条件不满足时执行的操作,条件满足时,是,否,IF,GOTO,用户宏程序,139,用户宏程序,140,注:#j和#k也可用来代替。,三、条件表达式,用户宏程序,141,程序例子,用户宏程序,142,四、循环(WHILE语句),WHILEDOm;(m=1,2,3),条件成立时执行的程序,ENDm;,DOm和ENDm必须成对使用,并以其中的m作为识别号相互识别。m的范围为1,2,3。可以根据需要多次使用。,用户宏程序,143,用户宏程序,144,识别号(1,2,3)可多次使用,当重复的循环相互交叉时,会发出PS0124#报警,用户宏程序,145,DO的区域不能交叉下列表达是错误的,DO一定要在END之前规定下列表达是错误的,END1;程序WHILEDO1;,用户宏程序,146,DO循环可以嵌套3级,用户宏程序,147,可以从DO区域的内部向外部转移,例如,不可以从DO区域的外部向内部转移,例如下列表达是错误的,用户宏程序,148,常用格式,(当前值)=(初值);WHILE(当前值)比较(目标值)DOm;(执行循环操作);(当前值)=(当前值)1;ENDm;,用户宏程序,149,五、控制语句的使用限制,无限循环:当指定DOm而省略WHILE语句时,程序则在DO到END之间无限循环。处理时间:当要转移到GOTO语句中指定的顺序号时,程序先检索顺序号,反向处理数据比正向要用较长的时间,为了缩短处理时间,作为重复指令,请使用WHILE语句。未定义的变量:在使用EQ、NE的条件表达式中,空值和0(零)有不同的效果,在别的条件表达式中,空值被看成0。,用户宏程序,150,程序例子求110之和,用户宏程序,151,G00G91X100.0;Y100.0;,要求:对以上动作重复执行三次。,设#1为动作执行次数,初始值为零。,#1=0;G00G91X100.0;Y100.0;#1=1;G00G91X100.0;Y100.0;#1=2;G00G91X100.0;Y100.0;#1=3;,#1=0;WHILE#1LT3DO1;G00G91X100.0;Y100.0;#1=#1+1;END1;,用户宏程序,152,单元六、程序案例,粗铣圆内腔粗车外圆自动设定坐标系,用户宏程序,153,一、粗铣圆内腔,#5:圆半径的增量#18:最终圆弧半径,O9999;#5=10.0;#18=45.0;#1=0;#2=0;WHILE#1LT#18DO1;#1=#1+#5;IF#1LE#18GOTO1;#1=#18;G01G91Y#1-#2F300;G02J-#1;#2=#1;END1;M30;,N1,当次圆弧半径,前次圆弧半径,用户宏程序,154,程序案例,O0099G00G90G54X0Y0G43Z5.H1S1500M3G1Z-5F300#5=10#18=45#1=0#2=0WHILE#1LT#18DO1#1=#1+#5IF#1LT#18GOTO1#1=#18N1G1G91Y#1-#2F300G2J-#1#2=#1END1G00Z100M5M30,用户宏程序,155,二、粗车外圆,WHILE#26GT0DO1;#26=#26-#6;IF#26GE0GOTO1;#6=#6+#26;G00W-#6+#4;G01U-#24F#9;#4=#3;G00U#4*2W#4;U#24-#4*2;END1;M30;,O9999;#3=1.0;#4=0;#6=10.0;#9=300.0;#24=20.0;#26=48.0;,#26,#3,#6,#24,#3:空程量#6:每次切削量#9:切削速度#24:X方向切削量#26:Z方向切削量,N1,用户宏程序,156,程序案例,O0202T0101G00X50.Z0G98S2000M3#3=1.#4=0#6=10.#9=300.#24=20.#26=48.WHILE#26GT0DO1#26=#26-#6IF#26GE0GOTO1#6=#6+#26,N1G00W-#6+#4G1U-#24F#9#4=#3G00U#4*2W#4U#24-#4*2END1G00X50.Z0M5M30,用户宏程序,157,O1210G00G54G90X0Y0G31X100.F200#500=#5061G00X0G31X-100.F200#501=#5061#502=#500+#501/2G10G91L2P1X#502M30,三、自动设定坐标系,用户宏程序,158,O9999IF#4111EQ0GOTO9;#1=#5043;G00G90G43Z50.0;M00;#11000+#4111=#5043;G00G49Z#1;M30;N9#3000=9(OFFSET#ERROR);,操作步骤,#2200+#4111,手动刀具长度测量,用户宏程序,159,用户宏程序,160,用户宏程序,161,单元七、用户宏程序调用,非模态调用G65两种形式的自变量赋值规定系统变量的存储模态调用G66G、M代码调用宏程序M、T代码调用子程序使用M代码计算刀具使用时间利用特定代码的子程序,用户宏程序,162,一、宏程序调用限制,用户宏程序,163,O9999;#21=90.0;#22=120.0;N1G01G91X#21F300;N2Y#22;N3X-#21;N4Y-#22;M30;,简单的四边形铣削,用户宏程序,164,简单的四边形铣削,O0001;M98P9999;M30;,O9999;#21=90.0;#22=120.0;N1G01G91X#21F300;N2Y#22;N3X-#21;N4Y-#22;M99;,O0001;M98P9999#21=90.0#22=120.0;M30;,O0001;G65P9999U90.0V120.0;M30;,用户宏程序,165,G65PpLl自变量赋值;,要调用的程序号,重复次数,用G65指令,把由P指令的宏程序体调用L次指定的重复次数的范围为1999999999,L的缺省值为1按照自变量赋值的规定,将自变量的实际数值调到相应的程序体中宏程序调用有2类:宏程序调用和子程序调用,MDI方式也有效,二、非模态调用G65,用户宏程序,166,O0001;G65P9010L2A1.0B2.0;M30;,O9010;#3=#1+#2;IF#3GT360GOTO9;G00G90X#3;N9M99;,指定重复次数时,在地址L后,指定重复次数(1999999999)的范围,简单调用(G65),用户宏程序,167,三、自变量赋值规定,自变量赋值自变量赋值,用户宏程序,168,自变量赋值,用户宏程序,169,对字母A-Z后加数值来赋值,但G,L,N,O,P除外I,J,K须按字母顺序指定,用户宏程序,170,G65P9003X30.Y45.Z-3.F300;,#9=300;,#24=30.0;,#25=45.0;,#26=-3.0;,用户宏程序,171,自变量赋值,注意:I,J,K的下标代表自变量赋值的顺序,在实际编程中不写,用户宏程序,172,限制,用户宏程序,173,G65A1.0B2.0I-3.0I4.0D5.0P1000;,CNC内部自动识别自变量赋值和自变量赋值。如果自变量赋值和自变量赋值混合指定的话,后指定的自变量类型有效,自变量指定的混合,注意:MDI方式运行程序同样可以调用程序,用户宏程序,174,四、系统变量的存储,O0001;N10G00G90X100.0Y50.0;N11G65P9999U90.0V120.0;N12X200.0Y100.0;M30;,O9999;N1G01G91X#21F300;N2Y#22;N3X-#21;N4Y-#22;M99;,O9999;#30=#4001;#31=#4003;#32=#4109;N1G01G91X#21F300;N2Y#22;N3X-#21;N4Y-#22;G#30G#31F#32;M99;,用户宏程序,175,例:倾斜的四边形加工,O0001;G92X0Y0;G00G90X100.0Y50.0;G65P9999U100.0V50.0A30.0;M30;,用户宏程序,176,O9999;#30=#4001;#31=#4003;#32=#4109;#10=#21*COS#1;#11=#21*SIN#1;#12=#22*COS90+#1;#13=#22*SIN90+#1;N1G01G91X#10Y#11F300;N2X#12Y#13;N3X-#10Y-#11;N4X-#12Y-#13;G#30G#31F#32;M99;,用户宏程序,177,例:深孔钻削,O0001;G00G90Z50.0;G65P9999Z-25.0R3.0Q-10.0F300;M30;,O9999;#1=#18;#2=#18;#3=0;WHILE#1GT#26DO1;#1=#1+#17;IF#1GE#26GOTO1;#1=#26;G00G90Z#2+#3;G01Z#1F300;G00Z#18;#2=#1;#3=1.0;END1;M30;,N1,用户宏程序,178,例:内圆铣削,O9999;#30=#4001;#31=#4003;#32=#4109;#1=#13000+#7;#2=#18-#1;IF#2LE0GOTO9;#3=#2/2;N1G01G91X#3Y#3F#9;N2G02G17X#3Y-#3R#3;N3I-#2;N4X-#3Y-#3R#3;N5G01X-#3Y#3;G#30G#31G#32;M99;N9#3000=1(OFFSETERROR);,O0001;G92X0Y0Z0;G65P9999R50.0D1F300;M30;,R:圆半径(#18)D:刀具半径补偿号(#7)F:进给速度(#9),用户宏程序,179,用户宏程序,180,例:圆周上等距钻孔,B,B,B,X:圆心坐标(#24)Y:圆心坐标(#25)Z:孔的深度(#26)R:钻孔初始高度坐标(#18)U:圆弧半径(#21)A:起始角度(#1)B:角度增量值(#2)H:孔的个数(#11)F:进给速度(#9),用户宏程序,181,调用格式,用户宏程序,182,调用的宏程序,O0002G0G90G54X0Y0G65P9100X100Y50R30Z-50F500I100A0B45H5M30,用户宏程序,183,用户宏程序,184,例:程序案例,用户宏程序,185,O0001;G92X0Y0;G65P9999U100.0R80.0A1.0F300;M30;,例:椭圆插补,O9999;#30=#4001;#31=#4003;#32=#4109;#5=#1;#24=#5001;#25=#5002;WHILE#5LE360DO1;#2=#24+#21*COS#5;#3=#25+#18*SIN#5;G01G90X#2Y#3F#9;#5=#5+#1;END1;G#30G#31F#32;M99;,用户宏程序,186,O9999;#30=#4001;#31=#4003;#32=#4109;#1=300;#2=100;G28G91Z0;#4=#5003;,例:自动刀具长度测量,G00G90G53X200.0Y150.0;G91G43Z-#1H#11;#5=#5003-#2;G31Z-#2*2F300;G00G90G49Z#4;#6=#5063-#11000+#11;IF#6LE#5-#2GOTO9;#11000+#11=#5063-#5;G#30G#31F#32;M99;N9#3000=1(CANNOTMEASURE);,用户宏程序,187,O9500;#1=#4001;#3=#4003;#9=#4019;G28G91Z0;G28X0Y0;G53G90X100.0Y50.0;G31G91Z-200.0F200;#5=#5063;#2000+#11=#5;G53G90G49G00Z0;IF#5EQ200.0GOTO9;G28G91Z0;G28X0Y0;G#1G#3F#9;M99;N9#3000=1;,用户宏程序,188,例:车床钻孔宏程序,调用宏程序,O0002T0101;G98G0X0Z102S1000M3G65P9100Z50K20F150G0X100Z200M5M30,用户宏程序,189,用户宏程序,190,五、模态调用G66,G66PpLl自变量赋值;G67;,轴每移动一次,调用一次用户宏程序,p:要调用的宏程序号l:重复次数(默认值为1)G67:取消模态调用指令,用户宏程序,191,O0001;G66P9100L2A1.0B2.0;G00G90X100.0;Y200.0;X150.0Y300.0;G67;M30;,O9100;G00Z-#1;G01Z-#2F300;M99;,程序案例,用户宏程序,192,限制,用户宏程序,193,用户宏程序,194,用户宏程序,195,例:车床切槽使用G66,调用宏指令的程序,宏指令(被调用的程序),用户宏程序,196,G指令调用,六、G、M指令进行宏程序方式调用,G65P9010X100.Y20.R3.Z-20.F300;,G81X100.Y20.R3.Z-20.F300;,将宏程序调用指令G65P901用G来代替宏程序号901与G代码之间的对应关系由参数指定在被调用的宏程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作为普通的G、M代码处理,变量赋值,用户宏程序,197,如果设定了负的G代码,成为模态调用(相当于G66)用户不必改变加工程序即可调用用户宏程序创建的固定程序与简单调用一样,两类自变量指定:第一类自变量指定和第二类自变量指定,类型根据所用地址自动识别,用户宏程序,198,将参数No.6050设为81,G代码调用宏程序时,程序和参数对应关系,用户宏程序,199,用户宏程序,200,利用G代码进行的宏程序调用(多个指定),用户宏程序,201,用户宏程序,202,用M指令调用用户宏程序,G65P9020A1.0B2.0;,M50A1.0B2.0;,将宏程序调用指令G65P902用M来代替宏程序号902与M代码之间的对应关系由参数指定在被调用的宏程序中不能再使用M、G代码调用宏程序,程序体中的M、G代码作为普通的M、G代码处理,变量赋值,用户宏程序,203,利用M代码调用宏程序,注释:调用方法与G65调用相同。自变量指定方法与简单调用一样,两类自变量指定方法:第一类自变量指定法和第二类自变量指定法的类型根据所用地址自动识别。,用户宏程序,204,限制,用来调用宏指令的M代码必须指定在程序的开头。由M代码调用的程序中调用其他程序时可以使用G65、G66、M98指令。参数6008#6=1时,可由M代码调用的程序中执行利用G代码的调用。,用户宏程序,205,将参数No.6080设为50,M代码调用宏程序时,用户宏程序,206,利用M代码调用宏程序,用户宏程序,207,用户宏程序,208,用G代码模态调用宏程序,用户宏程序,209,M指令调用,七、M、T指令进行子程序方式调用,M98P9001;,M03;,将子程序调用指令M98P900用M来代替宏程序号900与M代码之间的对应关系由参数指定在被调用的子程序中不能再使用G、M代码调用宏程序,程序体中的G、M代码作为普通的G、M代码处理,不能进行变量赋值,注释:,用户宏程序,210,将参数No.6071设为03,M代码调用子程序时,用户宏程序,211,当参数No.6071设为06时,用户宏程序,212,利用M代码调用多个子程序,用户宏程序,213,用户宏程序,214,用T指令调用子程序,当参数No.6001#5设为1时,使用T代码可调用O9000程序,T代码所指定的数值自动赋值给变量#149,用户宏程序,215,限制,通常在由T代码调用的程序中调用其他程序时可以使用G65、G66、M98指令。参数6008#6=1时,可以在由T代码调用的程序中执行G代码的调用。,用户宏程序,216,八、使用M代码计算刀具使用时间,条件,注释,用户宏程序,217,参数的设定:参数6071=3,参数6072=5,变量值的设定;变量#501#505中事先设定为0,调用宏指令的程序,O0001T01M06M03M05#501发生变化T05M06M03M05#505发生变化M30,用户宏程序,218,用户宏程序,219,计算刀具T1T5使用时间的程序,O9001;IF#4120LE0GOTO9;IF#4120GT5GOTO9;#3002=0;N9M03;M99;,O9002;IF#4120LE0GOTO9;IF#4120GT5GOTO9;#500+#4120=#500+#4120+#3002;N9M05;M99;,参数No.6071设为03,参数No.6072设为05,用户宏程序,220,九、利用特定地址调用子程序,用户宏程序,221,M系列的特定地址,注:在设置地址L时,不可指定重复次数,用户宏程序,222,T系列的特定地址,注:在设置地址L时,不可指定重复次数,用户宏程序,223,参数号、程序号和公共变量对应关系如下所示,注意:不允许自变量指定,限制,通常在由特定地址调用的程序中调用其他程序时可以使用G65、G66、M98指令。参数6008#6=1时,可在由特定地址调用的程序中执行利用G代码的调用。,用户宏程序,224,加工工件数量,O9003;M01;#1100=0;#501=#501+1;IF#501LT#500GOTO9;#1100=1;N9M30;,No.6073参数设为30,O0001;G04X5.;M30;,用户宏程序,225,单元八、处理宏语句,不缓冲的程序段不含刀具半径补偿缓冲的程序段含刀具半径补偿外部输出命令,用户宏程序,226,处理宏语句,为了平稳加工,CNC要预读下一步要执行的NC语句。这种操作称为缓冲。在AI先行控制/AI轮廓控制方式的插补前加/减速中,可进行多次缓冲。在M系列的刀具半径补偿方式(G41、G42)中,即使没有处在插补前加/减速中,至少预读3个程序段的NC语句,并进行交点的计算。但是,运算式子和条件转移的宏语句一旦被缓冲,即可被处理。因此,执行宏语句的时机并不一定按照所指定的顺序。M00、M01、M02、M30和参数34113420;34213432中的缓冲的M代码、或者用来控制G31、G53等缓冲的G代码的程序段中,则不能进行预读。因此,在执行完这些M代码、G代码之前,可以确保不执行后面的宏语句,用户宏程序,227,一、不缓冲的程序段,控制缓冲的有M代码和G31指令,用户宏程序,228,二、不含刀具半径补偿缓冲的程序段,非刀具半径补偿(G41、G42)方式,在执行N1程序段的同时,将下一个NC语句N4读入缓冲器。在执行N1程序段的过程中,处理夹在其间的的宏语句(N2、N3)程序段。,注释,用户宏程序,229,三、含刀具半径补偿缓冲的程序段,M系列:刀具半径补偿(G41、G42)方式时,用户宏程序,230,注释,在执行N1程序段的同时,将后3个NC语句(N7)读入缓冲器中。在执行N1程序段的过程中处理夹在其间的宏语句(N2、N4、N6)程序段。,用户宏程序,231,四、登录用户宏程序,用户宏程序,232,五、外部输出命令,除指定标准的用户宏程序指令外,还可使用以下宏指令。称之为外部输出指令,如:BPRNT、DPRNT、POPEN、PCLOS这些指令通过阅读机/穿孔机接口输出变量的数值和字符,用户宏程序,233,用户宏程序,234,用户宏程序,235,用户宏程序,236,用户宏程序,237,用户宏程序,238,用户宏程序,239,用户宏程序,240,用户宏程序,241,用户宏程序,242,限制,用户宏程序,243,M系列,EDIT方式,用户宏程序,244,用户宏程序,245,单元九、中断型用户宏程序,中断型用户宏程序功能的适应控制应用条件指定功能细节用户宏程序中断NC语句使用用户宏程序中断信号有效/无效的条件用户宏程序中断信号(UNIT)从用户宏程序中断返回用户宏程序中断和模态信息,用户宏程序,246,当一个程序正在执行时,从机床输入一个中断信号(UINT),就可以调用另外一个程序。这一功能称为中断型用户宏程序功能,(1)通过外部信号启动刀具异常检测时的处理。(2)在一连串的加工过程中,不用取消当前执行之中的加工来中断其他加工。(3)以一定的间隔读当前正在进行的加工信息。,注释,用户宏程序,247,一、中断型用户宏程序功能的适应控制应用,当在程序中指定M96Pxxxx时输入中断信号(UINT),则中断后续程序的执行,而执行指定为Pxxxx的程序。中断程序执行中以及M97以后的中断信号(如图所示)的UINT*以及UINT*将被忽略。,用户宏程序,248,二、条件指定,指定方法用户宏程序中断即可在程序执行中利用,1.选择存储器运行、D
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防汛知识培训目的课件
- 防汛知识培训
- 特许经营合同
- T-CSAA 24.2-2023 基础研究项目综合绩效评价指南 第2部分:成果内容要素
- 第三方支付市场需求分析与发展策略与市场标准
- 智能制造业发展现状与分析
- 目标跟踪与识别-洞察及研究
- 防恐知识培训班课件
- 2025年委托保证合同2篇
- 锅炉购销合同-锅炉购销合同样本6篇
- 降低口腔炎发生率的品管圈实践
- 呼吸专科护士培训课件
- 三腔空肠营养管构造及护理
- 2025年(数学学科)中考模拟测试卷(三模)附参考答案
- 传感器应用技术 课件全套 梁长垠 项目1-8 传感器认知与测量系统搭建- 无线传感器网络应用电路设计与调试
- 《烟花爆竹生产经营单位重大生产安全事故隐患判定标准(试行)》解读与培训
- 矿山买卖居间协议书
- 2025年(第一季度)电网工程设备材料信息参考价(加密)
- 2025小学音乐教育新教材培训学习心得体会
- 中国传统木工工艺课件
- 社区两委测试卷及答案
评论
0/150
提交评论