您好,欢迎访问三七文档
宏程序跳转及重复指令GOTOS:跳回到程序开始GOTOB:以程序开始方向的带跳转目标的跳转指令。GOTOF:以程序末尾方向的带跳转目标的跳转指令。GOTO:带跳转目标查找的跳转指令。查找先向程序末尾方向进行,然后再从程序开始处进行查找。GOTOC:与GOTO有区别的是,报警14080“跳转目标未找到”被抑制。这表示,在跳转目标查找没有结果情况下不中断程序加工,而以指令GOTOC下面的程序行继续进行。跳转条件允许使用所有的比较运算和逻辑运算(结果:TRUE或者FALSE)。如果这种运算的结果为TRUE,则执行程序跳转。TRUE(真实、准确)FALSE(错误)特殊情况一般情况IF<跳转条件>=TRUEGOTOB<跳转目标>IF<跳转条件>=GOTOB<跳转目标>IF<跳转条件>=TRUEGOTOF<跳转目标>IF<跳转条件>=GOTOF<跳转目标>IF<跳转条件>=TRUEGOTO<跳转目标>IF<跳转条件>=GOTO<跳转目标>IF<跳转条件>=TRUEGOTOC<跳转目标>IF<跳转条件>=GOTOC<跳转目标>程序分支(CASE...OF...DEFAULT...)CASE功能可以检测一个变量或者一个计算函数当前值(类型:INT),根据结果跳转到程序中的不同位置。句法:CASE(表达式)OF常量_1GOTOF跳转目标_1常量_2GOTOF跳转目标_2...DEFAULTGOTOF跳转目标_n常量:变量或者计算函数首先规定的恒定值DEFAULT:对于变量或者计算函数没有采用规定值的情况,可以用DEFAULT指令确定跳转目标。N20DEFINTVAR1VAR2VAR3N30CASE(VAR1+VAR2-VAR3)OF7GOTOFLabel_19GOTOFLabel_2DEFAULTGOTOFLabel_3N40Label_1:G0X1Y1N50Label_2:G0X2Y2N60Label_3:G0X3Y3CASE指令由N30定义下列程序分支可行性:1.如果计算函数值VAR1+VAR2-VAR3=7,则跳转到带有跳转标记定义的程序段Label_1(→N40)。2.如果计算函数值VAR1+VAR2-VAR3=9,则跳转到带有跳转标记定义的程序段Label_2(→N50)。3.如果计算函数VAR1+VAR2-VAR3的值既不等于7也不等于9,则跳转到带有跳转标记定义的程序段“Label_3”(→N60)。程序部分重复(REPEAT,REPEATB,ENDLABEL,P)功能:程序部分重复是指在一个程序中,可以任意组合重复已经编写的程序部分。需要重复的程序行或程序段落带有跳转标记(标签)。REPEATB:重复程序行的指令REPEAT:重复程序段落的指令1、重复单个程序行跳转标记:......REPEATB跳转标记P=n...2.重复跳转标记和REPEAT指令之间的程序段落:跳转标记:......REPEAT跳转标记P=n...3.重复两个跳转标记间的段落:起始跳转标记:......结束跳转标记:......REPEAT起始跳转标记结束跳转标记P=n...说明REPEAT指令不能被括在这两个跳转标记之间。如果在REPEAT指令前找到了起始跳转标记,但在REPEAT指令前没有找到结束跳转标记,则重复起始跳转标记和REPEAT指令之间的程序段落。4.重复跳转标记和ENDLABEL间的段落:跳转标记:......ENDLABEL:......REPEAT跳转标记P=n...说明REPEAT指令不能被括在跳转标记和ENDLABEL之间。如果在REPEAT指令前找到了跳转标记,但在REPEAT指令前没有找到ENDLABEL,则重复跳转标记和REPEAT指令之间的程序段落。示例1:重复单个程序行N10POSITION1:X10Y20N20POSITION2:CYCLE(0,,9,8);位置循环N30...N40REPEATBPOSITION1P=5;执行程序段SATZN10五次N50REPEATBPOSITION2;执行程序段N20一次N60...N70M30示例2:重复跳转标记和REPEAT指令之间的程序段落N5R10=15N10Begin:R10=R10+1;宽度N20Z=10-R10N30G1X=R10F200N40Y=R10N50X=-R10N60Y=-R10N70Z=10+R10N80REPEATBEGINP=4;执行N10到N70程序部分四次N90Z10N100M30示例3:重复两个跳转标记间的段落程序代码注释N5R10=15N10Begin:R10=R10+1;宽度N20Z=10-R10N30G1X=R10F200N40Y=R10N50X=-R10N60Y=-R10N70END:Z=10N80Z10N90CYCLE(10,20,30)N100REPEATBEGINENDP=3;执行N10到N70程序部分三次N110Z10N120M30示例4:重复跳转标记和ENDLABEL间的段落N10G1F300Z-10N20BEGIN1:N30X10N40Y10N50BEGIN2:N60X20N70Y30N80ENDLABEL:Z10N90X0Y0Z0N100Z-10N110BEGIN3:X20N120Y30N130REPEATBEGIN3P=3;执行N110到N120程序部分三次N140REPEATBEGIN2P=2;执行N50到N80之间的程序部分两次N150M100N160REPEATBEGIN1P=2;执行N20到N80之间的程序部分两次N170Z10N180X0Y0N190M30示例5:铣削加工、采用不同的工艺加工钻孔位置N10ZENTRIERBOHRER();换上定中钻头。N20POS_1:;钻孔位置1N30X1Y1N40X2N50Y2N60X3Y3N70ENDLABEL:N80POS_2:;钻孔位置2N90X10Y5N100X9Y-5N110X3Y3N120ENDLABEL:N130BOHRER();更换钻头和钻孔循环。N140GEWINDE(6);换上螺纹钻M6和螺纹循环。N150REPEATPOS_1;重复程序部分一次,自POS_1到ENDLABEL,N160BOHRER();更换钻头和钻孔循环。N170GEWINDE(8);换上螺纹钻M8和螺纹循环。N180REPEATPOS_2;重复程序部分一次,自POS_2到ENDLABEL。N190M301、程序部分重复可以嵌套调用。每次调用占用一个子程序级。2、如果在执行程序重复过程中编程了M17或者RET,则程序重复被停止。程序接着从REPEAT指令行之后的语句开始运行。3、在当前的程序显示中,程序重复部分作为单独的子程序级显示。4、如果在执行程序部分重复过程中取消该级别,则在调用程序部分执行之后,继续加工该程序。示例6N10G1F300Z-10N20BEGIN1:N30X=10N40Y=10N50GOTOFBEGIN2N60ENDLABEL:N70BEGIN2:N80X20N90Y30N100ENDLABEL:Z10N110X0Y0Z0N120Z-10N130REPEATBEGIN1P=2N140Z10N150X0Y0N160M30说明:REPEAT指令应位于运行程序段之后。1、控制结构和程序部分重复可以组合使用。但是,两者之间不得产生重叠。一个程序部分重复应该位于一个控制结构分支之内,或者一个控制结构位于一个程序部分重复部分之内。2、如果跳转和程序重复部分交织在一起,则程序段按次序执行。比如说,程序重复部分有一个跳跃,则一直进行加工,直至找到编程的程序结束部分。带选项的程序循环(IF,ELSE,ENDIF)IF条件...ELSE...ENDIF...当查询循环应包含一个可选的程序块时,可使用带IF和ELSE的结构:如果满足IF条件,则执行IF内的程序块。如果IF条件不满足,则执行ELSE内可选的程序块。说明:如果不需要选择,则IF循环也可以不带ELSE指令,并对ELSE后的程序块编程。计数循环(FOR...TO...,ENDFOR)功能:当一个带有一个确定值的操作程序被循环重复,计数循环就会被运行。FOR变量=初值TO终值...ENDFOR...FOR:引入计数循环。ENDFOR:一旦还没有得到计数终值,则标记循环结束处并跳转到循环开头。变量:计数变量从初值开始向上计数,直到终值且在每次运行时提高值“1”。示例1:整数变量作为计数变量:DEFINTiVARIABLE1R10=R12-R20*R1R11=6FORiVARIABLE1=R10TOR11;计数变量=整数变量R20=R21*R22+R33ENDFORM30示例2:R参数作为计数变量:R11=6FORR10=R12-R20*R1TOR11;计数变量=R参数(实数变量)R20=R21*R22+R33ENDFORM30示例3:加工一个固定的零件数DEFINTSTUECKZAHLFORSTUECKZAHL=0TO100G01…ENDFOR;计数循环结束M30用名称“STUECKZAHL”定义的INT型变量引入计数循环。变量“STUECKZAHL”从初值“0”向上计数,直到终值“100”。在循环开始处带有条件的程序循环(WHILE,ENDWHILE)功能:WHILE循环的开始是有条件的。一旦满足条件,WHILE循环即开始运行。句法注释WHILE条件...ENDWHILE...WHILE:引入程序循环。条件:必须满足条件,只有这样WHILE循环才能运行。ENDWHILE:标记循环结束处并跳转到循环开头。示例(方法1):R参数赋值R1=1WHILER1-10G90G1Z=-R1F169R1=R1+1ENDWHILE示例(方法2):变量赋值WHILE$AA_IW[钻削轴]-10;调用WHILE循环,当前的钻削轴WKS额定值必须大于-10。G1G91F250AX[钻削轴]=-1ENDWHILE在循环结束处带有条件的程序循环(REPEAT,UNTIL)句法注释功能REPEAT;...UNTIL...;...调用REPEAT循环。检查是否已满足条件。REPEAT循环的结束是有条件的。REPEAT循环一旦被执行会不断重复,直到满足条件为止示例:带层叠控制结构的程序示例LOOPIFNOT$P_SEARCH;没有程序段搜索G01G90X0Z10F1000WHILE$AA_IM[X]=100G1G91X10F500;钻孔图Z–F100Z5ENDWHILEZ10ELSEMSG(“在搜索过程中不钻孔”)ENDIF$A_OUT[1]=1;下一个钻孔板G4F2ENDLOOPM30
本文标题:宏程序应用指令
链接地址:https://www.777doc.com/doc-2498088 .html