宏程序应用指令.docx

上传人:b****5 文档编号:5135029 上传时间:2022-12-13 格式:DOCX 页数:10 大小:18.57KB
下载 相关 举报
宏程序应用指令.docx_第1页
第1页 / 共10页
宏程序应用指令.docx_第2页
第2页 / 共10页
宏程序应用指令.docx_第3页
第3页 / 共10页
宏程序应用指令.docx_第4页
第4页 / 共10页
宏程序应用指令.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

宏程序应用指令.docx

《宏程序应用指令.docx》由会员分享,可在线阅读,更多相关《宏程序应用指令.docx(10页珍藏版)》请在冰豆网上搜索。

宏程序应用指令.docx

宏程序应用指令

宏程序跳转及重复指令

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<常量_1>GOTOF<跳转目标_1><常量_2>GOTOF<跳转目标_2>...DEFAULTGOTOF<跳转目标_n>

常量:

变量或者计算函数首先规定的恒定值

DEFAULT:

对于变量或者计算函数没有采用规定值的情况,可以用DEFAULT指令确定跳转目标。

N20DEFINTVAR1VAR2VAR3

N30CASE(VAR1+VAR2-VAR3)OF7GOTOFLabel_19GOTOFLabel_2DEFAULTGOTOFLabel_3

N40Label_1:

G0X1Y1

N50Label_2:

G0X2Y2

N60Label_3:

G0X3Y3

CASE指令由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=

...

2.重复跳转标记和REPEAT指令之间的程序段落:

<跳转标记>:

...

...

REPEAT<跳转标记>P=

...

3.重复两个跳转标记间的段落:

<起始跳转标记>:

...

...

<结束跳转标记>:

...

...

REPEAT<起始跳转标记><结束跳转标记>P=

...

说明

REPEAT指令不能被括在这两个跳转标记之间。

如果在REPEAT指令前找到了<起始跳转标记>,但在REPEAT指令前没有找到<结束跳转标记>,则重复<起始跳转标记>和REPEAT指令之间的程序段落。

4.重复跳转标记和ENDLABEL间的段落:

<跳转标记>:

...

...

ENDLABEL:

...

...

REPEAT<跳转标记>P=

...

说明

REPEAT指令不能被括在<跳转标记>和ENDLABEL之间。

如果在REPEAT指令前找到了<跳转标记>,但在REPEAT指令前没有找到ENDLABEL,则重复<跳转标记>和

REPEAT指令之间的程序段落。

示例1:

重复单个程序行

N10POSITION1:

X10Y20

N20POSITION2:

CYCLE(0,,9,8);位置循环

N30...

N40REPEATBPOSITION1P=5;执行程序段SATZN10五次

N50REPEATBPOSITION2;执行程序段N20一次

N60...

N70M30

示例2:

重复跳转标记和REPEAT指令之间的程序段落

N5R10=15

N10Begin:

R10=R10+1;宽度

N20Z=10-R10

N30G1X=R10F200

N40Y=R10

N50X=-R10

N60Y=-R10

N70Z=10+R10

N80REPEATBEGINP=4;执行N10到N70程序部分四次

N90Z10

N100M30

示例3:

重复两个跳转标记间的段落

程序代码注释

N5R10=15

N10Begin:

R10=R10+1;宽度

N20Z=10-R10

N30G1X=R10F200

N40Y=R10

N50X=-R10

N60Y=-R10

N70END:

Z=10

N80Z10

N90CYCLE(10,20,30)

N100REPEATBEGINENDP=3;执行N10到N70程序部分三次

N110Z10

N120M30

示例4:

重复跳转标记和ENDLABEL间的段落

N10G1F300Z-10

N20BEGIN1:

N30X10

N40Y10

N50BEGIN2:

N60X20

N70Y30

N80ENDLABEL:

Z10

N90X0Y0Z0

N100Z-10

N110BEGIN3:

X20

N120Y30

N130REPEATBEGIN3P=3;执行N110到N120程序部分三次

N140REPEATBEGIN2P=2;执行N50到N80之间的程序部分两次

N150M100

N160REPEATBEGIN1P=2;执行N20到N80之间的程序部分两次

N170Z10

N180X0Y0

N190M30

示例5:

铣削加工、采用不同的工艺加工钻孔位置

N10ZENTRIERBOHRER();换上定中钻头。

N20POS_1:

;钻孔位置1

N30X1Y1

N40X2

N50Y2

N60X3Y3

N70ENDLABEL:

N80POS_2:

;钻孔位置2

N90X10Y5

N100X9Y-5

N110X3Y3

N120ENDLABEL:

N130BOHRER();更换钻头和钻孔循环。

N140GEWINDE(6);换上螺纹钻M6和螺纹循环。

N150REPEATPOS_1;重复程序部分一次,自POS_1到ENDLABEL,

N160BOHRER();更换钻头和钻孔循环。

N170GEWINDE(8);换上螺纹钻M8和螺纹循环。

N180REPEATPOS_2;重复程序部分一次,自POS_2到ENDLABEL。

N190M30

1、程序部分重复可以嵌套调用。

每次调用占用一个子程序级。

2、如果在执行程序重复过程中编程了M17或者RET,则程序重复被停止。

程序接着从REPEAT指令行之后的语句开始运行。

3、在当前的程序显示中,程序重复部分作为单独的子程序级显示。

4、如果在执行程序部分重复过程中取消该级别,则在调用程序部分执行之后,继续加工该程序。

示例6

N10G1F300Z-10

N20BEGIN1:

N30X=10

N40Y=10

N50GOTOFBEGIN2

N60ENDLABEL:

N70BEGIN2:

N80X20

N90Y30

N100ENDLABEL:

Z10

N110X0Y0Z0

N120Z-10

N130REPEATBEGIN1P=2

N140Z10

N150X0Y0

N160M30

说明:

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:

整数变量作为计数变量:

DEFINTiVARIABLE1

R10=R12-R20*R1R11=6

FORiVARIABLE1=R10TOR11;

计数变量=整数变量

R20=R21*R22+R33

ENDFOR

M30

示例2:

R参数作为计数变量:

R11=6

FORR10=R12-R20*R1TOR11;

计数变量=R参数(实数变量)

R20=R21*R22+R33

ENDFOR

M30

示例3:

加工一个固定的零件数

DEFINTSTUECKZAHL

FORSTUECKZAHL=0TO100

G01…

ENDFOR;计数循环结束

M30

用名称“STUECKZAHL”定义的INT型变量

引入计数循环。

变量“STUECKZAHL”从初值“0”向上计数,直到终值“100”。

在循环开始处带有条件的程序循环(WHILE,ENDWHILE)

功能:

WHILE循环的开始是有条件的。

一旦满足条件,WHILE循环即开始运行。

句法

注释

WHILE<条件>

...

ENDWHILE

...

WHILE:

引入程序循环。

<条件>:

必须满足条件,只有这样WHILE循环才能运行。

ENDWHILE:

标记循环结束处并跳转到循环开头。

示例(方法1):

R参数赋值

R1=1

WHILER1>-10

G90G1Z=-R1F169

R1=R1+1

ENDWHILE

示例(方法2):

变量赋值

WHILE$AA_IW[钻削轴]>-10;

调用WHILE循环,当前的钻削轴WKS额定值必须大于-10。

G1G91F250AX[钻削轴]=-1

ENDWHILE

在循环结束处带有条件的程序循环(REPEAT,UNTIL)

句法

注释

功能

REPEAT;

...

UNTIL...;

...

调用REPEAT循环。

检查是否已满足条件。

REPEAT循环的结束是有条件的。

REPEAT循环一旦被执行会不断重复,直到满足条件为止

示例:

带层叠控制结构的程序示例

LOOP

IFNOT$P_SEARCH;没有程序段搜索

G01G90X0Z10F1000

WHILE$AA_IM[X]<=100

G1G91X10F500;钻孔图

Z–F100

Z5

ENDWHILE

Z10

ELSE

MSG(“在搜索过程中不钻孔”)

ENDIF

$A_OUT[1]=1;下一个钻孔板

G4F2

ENDLOOP

M30

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 艺术

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1